平时中这个运算符的用处也很多,今天也用到了,关于单选多选的,就做个小总结。
非运算
- 返回值一定是布尔值,要么是
true,要么是false; !是布尔取反操作,直接放在操作数前,先把操作数转换为布尔值,然后取反,并返回。
数字的非运算
0转换为布尔值是false,所以!0的值是true;1转换为布尔值是true,所以!1的值是false;6转换为布尔值是true,所以!6的值是false;- 除了
!0是true,别的都是false;
其他特殊情况的非运算
console.log(!{}); //如果操作数是对象,则返回false;
console.log(!0);//如果操作数是0,则返回true;
console.log(!(n = 5)); // 如果操作数是非零的任何数字,则返回false;
console.log(! null); // 如果操作数是null,则返回true;
console.log(!NaN); //如果操作数是NaN,则返回false;
console.log(! infinity); //如果操作数是infinity,则返回false;
console.log(!(-infinity)); //如果操作数是-infinity,则返回false;
console.log(! undefined ); //如果操作数是undefined,则返回true;
两次非运算符!!
console.log( ! 0 ); //返回true
console.log( ! ! 0 ); //返回false