一元操作符
一元操作符:就是只能操作一个值的操作符
自增和自减操作符
自增和自减操作符分两种:前置和后置。
前置类型
-
自增
var number = 20; ++number; //等同于 var number = 20; number = number + 1;
-
自减
var number = 20; --number; // 等同于 var number = 20; number = number - 1;
前置类型的自增和自减,变量都是在语句被求值以前发生改变。
var number = 20;
var result = ++age + 2;
console.log(number); // 21
console.log(result); // 23
上述例子中,result
的初始值在number
前置自增以后加的2,所以++age + 2
即21 + 2
,结果是23
。
var number1 = 10;
var number2 = 20;
console.log(number1-- + number2); // 30 -- 等同于 10 + 20
console.log(number1 + number2); // 29 -- 此时number1变成了 9,9 + 20
位操作符
位操作符可以作为拓展,这里不做详细解释
布尔操作符
逻辑非(!)
逻辑非:在JavaScript
中的非用!
表示。
规则:
- 如果值是一个对象,返回
false
; - 如果值是一个空字符串,返回
true
; - 如果值是一个非空字符串,返回
false
- 如果值是0,返回
true
; - 如果值是非0的一个数,返回
false
; - 如果值是
null
,返回true
; - 如果值是
NaN
,返回true
; - 如果值是
undefined
,返回true
。
console.log(!false);// true
console.log(!"string");// false
console.log(!0);// true
console.log(!NaN);// true
console.log(!"");// true
console.log(!1);// false
逻辑与(&&)
逻辑与操符可以总结为一假即假,双真即为真,也就是说要求两个条件都为真,结果才会是真。例如:
var result = a > b && a > c;
&&
与&
不同的是&&
判断a > b
的结果是false的时候,就不会去判断a > c
,直接返回结果为false
,但是&
会将两个都判断一次。
可以用下面的例子来验证一下:
var flag = true;
var result = flag && undefinedSign;// 发生错误
console.log(result);
上面的例子中,因为flag
是true
,所以flag && undefinedSign
要判断undefinedSign
的值,但是undefinedSign
并没有定义,所以会出错。
var flag = false;
var result = flag && undefinedSign;// 不发生错误
console.log(result);
上面的例子中,因为flag
是false
,所以flag && undefinedSign
不会去判断undefinedSign
的值,所以不会发生错误。
逻辑或(||)
逻辑或总结为一句话就是一真即真,双假才会假。
var flag = true;
var result = flag && undefinedSign;// 不发生错误
console.log(result);
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。