JavaScript学习总结(二)——逻辑Not运算符详解

Stella981
• 阅读 638

在JavaScript 中,逻辑NOT运算符与C和Java中的逻辑 NOT 运算符相同,都由感叹号(!)表示。与逻辑 OR 和逻辑 AND 运算符不同的是,逻辑 NOT 运算符返回的一定是 Boolean 值

逻辑 NOT 运算符的行为如下:

  • 如果运算数是对象,返回 false
  • 如果运算数是数字 0,返回 true
  • 如果运算数是 0 以外的任何数字,返回 false
  • 如果运算数是 null,返回 true
  • 如果运算数是 NaN,返回 true
  • 如果运算数是 undefined,发生错误

**测试脚本如下:
**

 1  <script type="text/javascript">
 2      var bFalse = false;//运算数是bool类型的数
 3      var sRed = "red";//运算数是字符串
 4      var iZero = 0;//运算数是0
 5      var iThreeFourFive = 345;//运算数是 0 以外的任何数字
 6      var oObject = new Object();//对象
 7      var oNull=null;//运算数是null
 8      var oUndefined;//运算数是undifined
 9      var oNaN=parseInt("abc");//使用parseInt方法把尝试字符串abc转换成整数,因为abc不是数字,因此是转不了的,所以返回的结果就是NaN
10     
11      /*
12      writeln() 方法与 write() 方法几乎一样,差别仅在于是前者将在所提供的任何字符串后添加一个换行符。在HTML中,这通常只会在后面产生一个空格;
13      不过如果使用了 <PRE> 和 <XMP> 标识,这个换行符会被解释,且在浏览器中显示。
14      */
15     document.writeln("<XMP>");
16     document.writeln("oNaN=parseInt(\"abc\")返回的结果是"+oNaN);
17     document.writeln("bool类型的数false与!运算符运算之后的结果是:" + (!bFalse));
18     document.writeln("字符串sRed与!运算符运算之后的结果是: " + (!sRed));
19     document.writeln("数字0与!运算符运算之后的结果是:" + (!iZero));//如果运算数是数字 0,返回 true 
20     document.writeln("数字345与!运算符运算之后的结果是:" + (!iThreeFourFive));//如果运算数是 0 以外的任何数字,返回 false 
21     document.writeln("对象oObject与!运算符运算之后的结果是:" + (!oObject));//如果运算数是对象,返回 false 
22     document.writeln("NaN与!运算符运算之后的结果是:" + (!oNaN));//如果运算数是NaN,返回 true 
23     document.writeln("null与!运算符运算之后的结果是:" + (!oNull));//如果运算数是 null,返回 true 
24     document.writeln("undifined与!运算符运算之后的结果是:" + (!oUndefined));
25     //document.writeln("未定义的字符串sBule与!运算符运算之后的结果是:" + (!sBule));//sBule前面没有定义,也就是sBule运算数是 undefined,因此这里发生错误 
26     document.writeln("</XMP>");
27   </script>

运行结果:

  判断JavaScript变量的Boolean 值时,也可以使用逻辑NOT运算符。这样做需要在一行代码中使用两个 NOT 运算符。无论运算数是什么类型,第一个NOT运算符返回 Boolean值,第二个NOT将对该Boolean值取反,从而给出变量真正的Boolean值。使用not运算符判断JavaScript变量的Boolean值是一个非常有用的技巧,只要知道了变量的boolean值,那么当使用变量进行&&或者||运算时,就可以很快知道运算的结果了。

测试脚本如下:

 1  <script type="text/javascript">
 2      var bFalse = false;//运算数是bool类型的数
 3      var sRed = "red";//运算数是字符串
 4      var iZero = 0;//运算数是0
 5      var iThreeFourFive = 345;//运算数是 0 以外的任何数字
 6      var oObject = new Object();//对象
 7      var oNull=null;//运算数是null
 8      var oUndefined;//运算数是undifined
 9      var oNaN=parseInt("abc");//使用parseInt方法把尝试字符串abc转换成整数,因为abc不是数字,因此是转不了的,所以返回的结果就是NaN
10     /*
11     判断JavaScript 变量的 Boolean 值时,也可以使用逻辑 NOT 运算符。这样做需要在一行代码中使用两个 NOT 运算符。
12     无论运算数是什么类型,第一个 NOT 运算符返回 Boolean 值。第二个 NOT 将对该 Boolean 值取反,从而给出变量真正的 Boolean 值。
13     */
14     document.write("<PRE>");
15     document.writeln("布尔数false 的逻辑值是 " + (!!bFalse));
16     document.writeln("字符串sRed 的逻辑值是 " + (!!sRed));
17     document.writeln("数字0 的逻辑值是 " + (!!iZero));
18     document.writeln("数字345 的逻辑值是 " + (!!iThreeFourFive));
19     document.writeln("对象Object 的逻辑值是 " + (!!oObject));
20     document.writeln("NaN的逻辑值是 :" + (!!oNaN));
21     document.writeln("null 的逻辑值是 " + (!!oNull));
22     document.writeln("undefined 的逻辑值是 " + (!!oUndefined));
23     document.write("</PRE>");
24   </script>

运行结果:

点赞
收藏
评论区
推荐文章
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
Go之关系运算符、逻辑运算符、进制数、杂项
一:关系运算符,和php的一致,略。二:逻辑运算符,和已知的php一致,略。三:进制数,已在php中学习,略。四:Golang中不存在三元运算符。五:源码,反码,补码。对于有符号的而言:①:二进制的最高位是符号,0表示正数,1表示负数。②:正数的源码,反码,补码都一样。  1\补码:00000001,反码:0000
Wesley13 Wesley13
3年前
C#位运算
在C中可以对整型运算对象按位进行逻辑运算,按位进行逻辑运算的意义是:依次取被运算对象的每个位,进行逻辑运算,每个位的逻辑运算结果是结果值的每个位,C支持的位逻辑运算符如下表。!(https://oscimg.oschina.net/oscnet/e3ff3ca0d8190d7cf6a5c8269feaab32004.jpg)1、位逻辑非运算
Wesley13 Wesley13
3年前
LUA教程表达式逻辑运算符
Lua中的逻辑操作符有and,or,以及not。 和控制结构一样,所有的逻辑操作符把false和nil都作为假,而其它的一切都当作真。andornot逻辑运算符认为false和nil是假(false),其他为真,0也是true.and和or的运算结果不是true和false,而是和它的两个操
Wesley13 Wesley13
3年前
Java运算符
Java中的运算符分类:算术运算符二元运算符,,\,/,%一元运算符,赋值运算符\扩展运算符,,\,/关系运算符\,<,,<,,! instanceof逻辑运算符&&,||,!,^位运算符&,|,^,~,,<<,条件运算符
Stella981 Stella981
3年前
Object Pascal 运算符,常量,变量
不区分大小写赋值运算符:(Java里是)例如varI:Integer;I:30;比较运算符\,<,<,,<,特别注意:判等是(Java里是)判不等是<(Java里是!)逻辑运算符andornot算术运算符,,\,/(浮点数),
Stella981 Stella981
3年前
Lua 运算符
Lua运算符运算符是一个特殊的符号,用于告诉解释器执行特定的数学或逻辑运算。Lua提供了以下几种运算符类型:算术运算符关系运算符逻辑运算符其他运算符算术运算符下表列出了Lua语言中的常用算术运算符,设定A的值为10,B的值为20:操作符
小万哥 小万哥
1年前
Python 运算符
运算符用于对变量和值执行操作。在下面的示例中,我们使用运算符将两个值相加:pythonprint(105)Python将运算符分为以下几组:算术运算符赋值运算符比较运算符逻辑运算符身份运算符成员运算符位运算符算术运算符算术运算符用于对数字值执行常见的数
小万哥 小万哥
10个月前
C# 运算符详解:包含算术、赋值、比较、逻辑运算符及 Math 类应用
运算符用于对变量和值执行操作。在C中,有多种运算符可用,包括算术运算符、关系运算符、逻辑运算符等。算术运算符算术运算符用于执行常见的数学运算:csharpintx10050;//加法,结果为150intyx30;//减法,结果为120intzx2;//乘