JavaScript----运算符

##逻辑运算符

&&  ||  !

*  其他类型转boolean

  1、number:0或NaN为假,非0为真

  2、string:除了空字符串(""),其他都是true

  3、null&undefined:都是false

  4、对象:所有对象都是true

代码示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>比较运算符</title>
    <!--
逻辑运算符:
    &&:与(短路)
    ||:或(短路)
    !:非
        *  其他类型转boolean:
            1、number:0或NaN为假,非0为真
            2、string:除了空字符串(""),其他都是true
            3、null&undefined:都是false
            4、对象:所有对象都是true
-->
<script>
    var flag = 3;
    document.write(flag+"<br>");
    document.write(!flag+"<br>");
    document.write("<hr>");
    /*number*/
    var num = 3;
    var num2 = 0;
    var num3 = NaN;
    document.write(!!num+"<br>");
    document.write(!!num2+"<br>");
    document.write(!!num3+"<br>");
    document.write("<hr>");
    /*string*/
    var str1 = "abc";
    var str2 = "";
    document.write(!!str1+"<br>");
    document.write(!!str2+"<br>");
    document.write("<hr>");
    /*null&undefined*/
    var obj1 = null;
    var obj2 = undefined;
    document.write(!!obj1+"<br>");
    document.write(!!obj2+"<br>");
    document.write("<hr>");
    var date = new Date();
    document.write(!!date);
</script>
</head>
<body>

</body>
</html>

##三元运算符

  ? :表达式

  *  语法:

    *  表达式 ? 值1:值2;

    *  判断表达式的值,如果是true则取值1,如果是false则取值2。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>三元运算符</title>
</head>
<script>
    var a =3;
    var b = 4;
    var c = a > b ? 1:2;
    alert(c)
</script>
<body>

</body>
</html>

##一元运算符:只有一个运算数的运算符

  ++,--,+(正号)

  ++  --  :自增(自减)

    *  ++(--)在前,先自增(自减)再运算

<script>
    var num = 3;
    var a = ++ num;
    document.write(num+"<br>");//4
    document.write(a);//4
</script>

    *  ++  (--)在后,先运算,再自增(自减)

<script>
    var num = 3;
    var a = num ++;
    document.write(num+"<br>");//4
    document.write(a);//3
</script>

    *  +(-):正负号

    *  注意:在JS中,如果运算数不是运算符所要求的类型,那么JS的引擎会自动将运算数进行类型转换

      *  其他类型转number:

        *  string转number:按照字面值进行转换。如果字面值不是数字,则转为NaN(不是数字的数字)

<script>
    var b = +"123";
    document.write(typeof (b));/*number*/
    var c = +"abc";
    document.write(c);/*NaN*/
</script>

      *  boolean转number:true转为1,false转为0

##算数运算符

  +  -  *  /  %  ...

<script>
    var a = 3;
    var b = 4;
    document.write(a+b+"<br>");//7
    document.write(a-b+"<br>");//-1
    document.write(a*b+"<br>");//12
    document.write(a/b+"<br>");//0.75
    document.write(a%b+"<br>");//3
</script>

##赋值运算符

  ==  +=  -=  ...

##比较运算符

  >  <  >=  <= ==  ===(全等于)

  *  比较的方式

    1、类型相同:直接比较

      *  字符串:按照字典顺序比较。按位逐一比较,直到得出大小为止。

<script>
    document.write(3 > 4 + "<br>");//false
    document.write(("abc" > "acb") + "<br>");//false
</script>

    2、类型不同:先进行类型转换,在进行比较

      *  ===:全等于。在比较之前,先判断类型,如果类型不一样,直接返回false。

<script>
    document.write(("123" > 123) + "<br>");//false  先把"123"进行类型转换,在比较
    document.write(("123" == 123) + "<br>");//true  先把"123"进行类型转换,在比较
    document.write(("123" === 123) + "<br>");//false
</script>

猜你喜欢

转载自www.cnblogs.com/21seu-ftj/p/12287177.html