非运算符 !

108 阅读1分钟

平时中这个运算符的用处也很多,今天也用到了,关于单选多选的,就做个小总结。

非运算

  • 返回值一定是布尔值,要么是true,要么是false;
  • 是布尔取反操作,直接放在操作数前,先把操作数转换为布尔值,然后取反,并返回。

数字的非运算

  • 0转换为布尔值是false,所以!0的值是true
  • 1转换为布尔值是true,所以!1的值是false;
  • 6转换为布尔值是true,所以!6的值是false;
  • 除了!0true,别的都是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