在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>

运行结果:

  

转载于:https://www.cnblogs.com/ronghua/p/10178950.html

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

  1. JavaScript学习总结(四)——逻辑OR运算符详解

    转载自   JavaScript学习总结(四)--逻辑OR运算符详解 在JavaScript中,逻辑OR运算符用||表示 var bTrue = true;var bFalse = false;var ...

  2. JavaScript学习总结(三)——逻辑And运算符详解

    在JavaScript中,逻辑 AND 运算符用双和号(&&)表示 1 var bTrue = true; 2 var bFalse = false; 3 var bResult = ...

  3. C++语法学习笔记二十九: 详解decltype含义,decltype主要用途

    实例代码 // 详解decltype含义,decltype主要用途#include <iostream> #include <functional> #include < ...

  4. python中4j什么意思_Python学习:4.数据类型以及运算符详解

    运算符 一.算数运算: 二.比较运算: 三.赋值运算 四.逻辑运算 五.成员运算 基本数据类型 一.Number(数字) Python3中支持int.float.bool.complex. 使用内置的 ...

  5. MongoDB学习(二)MongoDB 认证详解

    1.启动MongoDB 1.1命令启动 root@wiki:[/root]mongod --config /opt/mongodb/mongodb.conf about to fork child p ...

  6. Linux 网络编程学习笔记——二、IP 协议详解

    目录 一.IP 服务的特点 IP 协议为上层协议提供无状态.无连接.不可靠的服务: 无状态(stateless):指 IP 通信双方不同步传输数据的状态信息,因此所有 IP 数据报的发送.传输和接收都 ...

  7. JavaScript 学习手册二

    JavaScript 学习手册二:JS 数据类型 第1关:JavaScript 数据类型介绍 任务描述 本关任务:在函数 objectTest() 内部定义了六个变量 a.b.c.d.e.f,并已经赋 ...

  8. C语言学习——运算符详解

    C语言学习--运算符详解 一.学习运算符 (1)运算对象的数目 C语言中,运算符的运算对象可以是一个,称单目运算符:运算对象也可以是两个,称双目运算符:运算对象还可以是三个,称三目运算符. (2)运算 ...

  9. Python学习二:词典基础详解

    作者:NiceCui 本文谢绝转载,如需转载需征得作者本人同意,谢谢. 本文链接:http://www.cnblogs.com/NiceCui/p/7862377.html 邮箱:moyi@moyib ...

最新文章

  1. 生成式AI,引领AI从“换脸”到“造脸”
  2. asp用于取代什么技术_.NET的未来:关于.NET5,每个.Net开发人员必须知道什么
  3. 2015年部分互联网公司笔试综合题及答案
  4. 自写图片遮罩层放大功能jquery插件源代码,photobox.js 1.0版,不兼容IE6
  5. 2011年计算机基础知识试卷,2011年计算机一级考试理论试题:第六部分多选题
  6. Hystrix中的批量(折叠)请求
  7. 济宁与华为企业云战略合作携手推进云计算产业发展
  8. java m查询_javassm框架
  9. 12306网上买火车票怎么选择上中下铺
  10. JS日历控件集合----附效果图、源代码【转:http://www.cnblogs.com/yank/archive/2008/08/14/1267746.html】...
  11. Modbus协议介绍与仿真器Modbus Poll、Modbus Slave、Mod_Rssim 使用指南
  12. Mac使用VMware虚拟机安装CentOS系统无法获取IP地址联网问题
  13. 简单粗暴理解【阿姆达尔定律】
  14. [设计模式]行为模式-模板方法(C++描述)
  15. Windows 下编译 OpenSSL
  16. 多表联查时的条件筛选
  17. Canvas制作简易涂鸦板
  18. C4996 ‘strlwr’:The POSIX name for this item is deprecated.Instead,use the ISO C and C++ comformant
  19. 【STM32】stm32独立看门狗(IWDG)
  20. qnx linux usb驱动,QNX USB device与host模式下驱动脚本详解

热门文章

  1. C++语言之继承类型
  2. 图像处理与计算机视觉开源软件库及学习站点
  3. 28条有关人工智能的名言,靠不靠谱你来看!
  4. softmax函数理解
  5. OPENCV中的数据结构总结
  6. 计算机组成原理知识点概叙
  7. 短时能量法代码c语言,[蓝桥杯][算法提高]能量项链 (Python代码)
  8. 多重if,嵌套if和switch case如何区别使用
  9. 029_SpringBoot整合JPa
  10. python 编写一个函数来验证输入的字符串是否是有效的 IPv4 或 IPv6 地址_产品 | 工信部发声IPv6即将部署,你的路由需要更换吗?...