第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 加性操作符
浙公网安备 33010602011771号