第3章:基本概念(二)

3.5 操作符

 

3.5.1 一元操作符

前置递增:

    var age = 25;
    ++age;
    //等价于:age = age + 1;
    console.log(age);

执行操作的时候,在求值之前改变的:

    var age = 25;
    var anotherAge = --age + 2;
    console.log(age);   //24
    console.log(anotherAge);    //26

前置递减:

    var num1 = 5;
    var num2 = 10;
    var num3 = --num1 + num2;
    var num4 = num1 + num2;

    console.log(num3);   //14
    console.log(num4);   //14

 

后置递增:

    var age = 25;
    age++;
    console.log(age);   //26

上面这个代码,说明单独操作的时候,后置递增和前置递增一样。但是,在包含其他语句的时候,求值之后才改变的:

    var num1 = 5;
    var num2 = 10;
    var num3 = num1-- + num2;
    var num4 = num1 + num2;

    console.log(num3);   //15
    console.log(num4);   //14

 

还有一元加、一元减:

//一元加,对数值没有任何影响,对非数值会进行转换。
    var age = 25;
    age = +age; //仍是25

    var a = 5;
    var b = 2;
    var c = true;
    var d = false;
    var e = "huanlei";
    var f = 1.1;
    var g = {
        valueOf: function() {
            return -1;
        }
    };

    a = +a; //5
    b = +b; //2
    c = +c; //1
    d = +d; //0
    e = +e; //NaN
    f = +f; //1.1
    g = +g; //-1
var age = 25;
    age = +age; //仍是25

    var a = 5;
    var b = 2;
    var c = true;
    var d = false;
    var e = "huanlei";
    var f = 1.1;
    var g = {
        valueOf: function() {
            return -1;
        }
    };

    a = -a; //-5
    b = -b; //-2
    c = -c; //-1
    d = -d; //0
    e = -e; //NaN
    f = -f; //-1.1
    g = -g; //1

 

 

 

3.5.2 位操作符

看得想当迷茫,先略过。。。

 

3.5.3 布尔操作符

主要包括:逻辑非(!)、逻辑与(||)、逻辑和(&&)。

    console.log(!false);    //true;
    console.log(!true); //false;
    console.log(!0);    //true
    console.log(!"abc"); //false
    console.log(!4); //false
    console.log(!null); //true
    console.log(!NaN); //true
    console.log(!undefined); //true
    console.log(!""); //true

    console.log(!!false);    //false;
    console.log(!!true); //true;
    console.log(!!0);    //false
    console.log(!!"abc"); //true
    console.log(!!4); //true
    console.log(!!null); //false
    console.log(!!NaN); //false
    console.log(!!undefined); //false
    console.log(!!""); //false

 

    var found = true;
    var result = (found && sum);
    console.log(result);    //报错,sum为定义
    var found = false;  //
    var result = (found && sum);
    console.log(result);    //false;因为第一个是false了,结果必定是false。sum定义没定义已经没意义,
    console.log(25 && null);    //null;
    console.log("fdsf" && undefined);    //undefined;
    console.log(NaN && 33); //NaN
    var found = true;
    var result = (found || sum);
    console.log(result);    //true;第一个为true,第二个就不会执行了。
    var found = false;
    var result = (found || sum);
    console.log(result);    //报错。

 

3.5.4 乘性操作符

乘法:

    console.log(2 * 3);    //6
    console.log("a" * 2);  //NaN
    console.log(-2 * 5);  //-10
    console.log(0 * 5);  //0
    console.log(0 * 0);  //0

除法:

    console.log(6 / 3);    //2
    console.log("a"/ 2);  //NaN
    console.log(5 / 0);  //Infinity
    console.log(0 / 5);  //0
    console.log(0 / 0);  //NaN
    console.log(NaN / 2);  //NaN
    console.log(10 / 3);  //3.3333333333333335    js的Bug

求模:

    console.log(6 % 3);    //0
    console.log("a" % 2);  //NaN

 

3.5.5 加性操作符

 

 

 

 

 

 

 

 

 

 

 

posted @ 2013-12-29 23:25  赵小磊  阅读(151)  评论(0)    收藏  举报
回到头部