详解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 相关文章推荐
javascript 对象的定义方法
Jan 10 Javascript
能说明你的Javascript技术很烂的五个原因分析
Oct 28 Javascript
jquery属性过滤选择器使用示例
Jun 18 Javascript
JS获取url链接字符串 location.href
Dec 23 Javascript
JavaScript实现下拉列表框数据增加、删除、上下排序的方法
Aug 11 Javascript
javascript实现自动输出文本(打字特效)
Aug 27 Javascript
JavaScript知识点总结之如何提高性能
Jan 15 Javascript
利用Javascript实现简单的转盘抽奖
Feb 13 Javascript
jQuery点击头像上传并预览图片
Feb 23 Javascript
JavaScript中的遍历详解(多种遍历)
Apr 07 Javascript
JavaScript实现单例模式实例分享
Dec 22 Javascript
微信分享invalid signature签名错误踩过的坑
Apr 11 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
第五章 php数组操作
2011/12/30 PHP
PHP页面中文乱码分析
2013/10/29 PHP
php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总
2015/04/03 PHP
php实现登录tplink WR882N获取IP和重启的方法
2016/07/20 PHP
PHP中md5()函数的用法讲解
2019/03/30 PHP
JS下高效拼装字符串的几种方法比较与测试代码
2010/04/15 Javascript
动态载入/删除/更新外部 JavaScript/Css 文件的代码
2010/07/03 Javascript
js下将字符串当函数执行的方法
2011/07/13 Javascript
通过Javascript创建一个选择文件的对话框代码
2012/06/16 Javascript
JS获取页面input控件中所有text控件并追加样式属性
2013/02/25 Javascript
JQuery操作Select的Options的Bug(IE8兼容性视图模式)
2013/04/21 Javascript
Jquery uploadify图片上传插件无法上传的解决方法
2013/12/16 Javascript
浅谈javascript函数式编程
2015/09/06 Javascript
基于Phantomjs生成PDF的实现方法
2016/11/07 Javascript
微信小程序 特效菜单抽屉效果实例代码
2017/01/11 Javascript
js实现移动端导航点击自动滑动效果
2017/07/18 Javascript
node.js基于fs模块对系统文件及目录进行读写操作的方法详解
2017/11/10 Javascript
完美解决手机浏览器顶部下拉出现网页源或刷新的问题
2017/11/30 Javascript
微信小程序实现折叠展开效果
2018/07/19 Javascript
小程序实现层叠卡片滑动效果
2019/08/26 Javascript
谈谈node.js中的模块系统
2020/09/01 Javascript
JavaScript canvas实现雨滴特效
2021/01/10 Javascript
[01:52]DOTA2完美大师赛Vega战队趣味视频——kpii老师小课堂
2017/11/25 DOTA
python实现DES加密解密方法实例详解
2015/06/30 Python
基于ID3决策树算法的实现(Python版)
2017/05/31 Python
回调函数的意义以及python实现实例
2017/06/20 Python
python抖音表白程序源代码
2019/04/07 Python
详解python运行三种方式
2019/05/13 Python
拿来就用!Python批量合并PDF的示例代码
2020/08/10 Python
法国二手手袋、手表和奢侈珠宝购物网站:Collector Square
2018/07/05 全球购物
世界顶级户外运动品牌折扣网站:LeftLane Sports
2019/06/12 全球购物
党的群众路线教育实践活动批评与自我批评
2014/02/16 职场文书
运动会班级口号霸气押韵
2015/12/24 职场文书
Pyqt5将多个类组合在一个界面显示的完整示例
2021/09/04 Python
vue实现书本翻页动画效果实例详解
2022/04/08 Vue.js
Golang实现可重入锁的示例代码
2022/05/25 Golang