详解JavaScript逻辑Not运算符


Posted in Javascript onDecember 04, 2015

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

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

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

测试脚本如下:

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

运行结果:

详解JavaScript逻辑Not运算符

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

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

详解JavaScript逻辑Not运算符

以上就是关于JavaScript逻辑Not运算符的详细信息,希望对大家的学习有所帮助。

Javascript 相关文章推荐
个人总结的一些关于String、Function、Array的属性和用法
Jan 10 Javascript
关于viewport,Ext.panel和Ext.form.panel的关系
May 07 Javascript
通过JS 获取Mouse Position(鼠标坐标)的代码
Sep 21 Javascript
JQuery为textarea添加maxlength属性的代码
Apr 07 Javascript
javascript实现自动输出文本(打字特效)
Aug 27 Javascript
纯js代码实现未知宽高的元素在指定元素中垂直水平居中显示
Sep 12 Javascript
原生JS实现圣旨卷轴展开效果
Mar 06 Javascript
微信小程序中页面FOR循环和嵌套循环
Jun 21 Javascript
vue+webpack实现异步组件加载的方法
Feb 03 Javascript
vue cli构建的项目中请求代理与项目打包问题
Feb 26 Javascript
ES6函数实现排它两种写法解析
May 13 Javascript
原生js实现简单轮播图
Oct 26 Javascript
简要了解jQuery移动web开发的响应式布局设计
Dec 04 #Javascript
jQuery1.9.1源码分析系列(十六)ajax之ajax框架
Dec 04 #Javascript
jQuery使用$.ajax进行异步刷新的方法(附demo下载)
Dec 04 #Javascript
Jquery1.9.1源码分析系列(十五)动画处理之外篇
Dec 04 #Javascript
写给小白的JavaScript引擎指南
Dec 04 #Javascript
jQuery实现ajax调用WCF服务的方法(附带demo下载)
Dec 04 #Javascript
jQuery旋转木马式幻灯片轮播特效
Dec 04 #Javascript
You might like
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
2014/10/30 PHP
在Nginx上部署ThinkPHP项目教程
2015/02/02 PHP
PHP使用glob方法遍历文件夹下所有文件的实例
2018/10/17 PHP
jQuery温习篇 强大的JQuery选择器
2010/04/24 Javascript
javascript学习笔记(四) Number 数字类型
2012/06/19 Javascript
js弹出确认是否删除对话框
2014/03/27 Javascript
详谈javascript中DOM的基本属性
2015/02/26 Javascript
js解决movebox移动问题
2016/03/29 Javascript
BootStrap实现鼠标悬停下拉列表功能
2017/02/17 Javascript
从零学习node.js之搭建http服务器(二)
2017/02/21 Javascript
ES6中的rest参数与扩展运算符详解
2017/07/18 Javascript
highCharts提示框中显示当前时间的方法
2019/01/18 Javascript
vuex vue简单使用知识点总结
2019/08/29 Javascript
使用Taro实现小程序商城的购物车功能模块的实例代码
2020/06/05 Javascript
JavaScript实现点击自制菜单效果
2021/02/02 Javascript
[06:36]吞吞映像top1
2014/06/20 DOTA
Python爬取读者并制作成PDF
2015/03/10 Python
Python抓取手机号归属地信息示例代码
2016/11/28 Python
pygame加载中文名mp3文件出现error
2017/03/31 Python
Django中login_required装饰器的深入介绍
2017/11/24 Python
Python Selenium Cookie 绕过验证码实现登录示例代码
2018/04/10 Python
python 平衡二叉树实现代码示例
2018/07/07 Python
Python3.5 Pandas模块之DataFrame用法实例分析
2019/04/23 Python
python中append实例用法总结
2019/07/30 Python
python实现几种归一化方法(Normalization Method)
2019/07/31 Python
Python Numpy库常见用法入门教程
2020/01/16 Python
在spyder IPython console中,运行代码加入参数的实例
2020/04/20 Python
通过Python实现一个简单的html页面
2020/05/16 Python
Pymysql实现往表中插入数据过程解析
2020/06/02 Python
英国打印机墨盒销售网站:Ink Factory
2019/10/07 全球购物
保加利亚服装和鞋类购物网站:Bibloo.bg
2020/11/08 全球购物
幼儿园老师寄语
2014/04/03 职场文书
单位活动策划方案
2014/08/17 职场文书
农村文化建设标语
2014/10/07 职场文书
读《方与圆》有感:交友方圆有度
2020/01/14 职场文书
MySQL创建定时任务
2022/01/22 MySQL