详解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 相关文章推荐
用jQuery简化JavaScript开发分析
Feb 19 Javascript
jQuery技巧总结
Jan 01 Javascript
jQuery获取URL请求参数的方法
Jul 18 Javascript
jQuery右侧选项卡焦点图片轮播特效代码分享
Sep 05 Javascript
JavaScript中的函数(二)
Dec 23 Javascript
JS对象的深度克隆方法示例
Mar 16 Javascript
Javascript中八种遍历方法的执行速度深度对比
Apr 25 Javascript
基于VUE选择上传图片并页面显示(图片可删除)
May 25 Javascript
JS实现点击循环切换显示内容的方法
Oct 19 Javascript
vue 全选与反选的实现方法(无Bug 新手看过来)
Feb 09 Javascript
vue项目实战总结篇
Feb 11 Javascript
JS highcharts实现动态曲线代码示例
Oct 16 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
火影忍者:这才是千手柱间和扉间的真正死因,角都就比较搞笑了!
2020/03/10 日漫
ueditor 1.2.6 使用方法说明
2013/07/24 PHP
PHP使用trim函数去除字符串左右空格及特殊字符实例
2016/01/07 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
需要做特殊处理的DOM元素属性的访问
2010/11/05 Javascript
Jquery 模拟用户点击超链接或者按钮的方法
2013/10/25 Javascript
extjs4 treepanel动态改变行高度示例
2013/12/17 Javascript
取消选中单选框radio的三种方式示例介绍
2013/12/23 Javascript
jquery退出each循环的写法
2014/02/26 Javascript
jquery实现表单验证并阻止非法提交
2015/07/09 Javascript
JavaScript编程中的Promise使用大全
2015/07/28 Javascript
浅谈addEventListener和attachEvent的区别
2016/07/14 Javascript
jQuery 判断元素整理汇总
2017/02/28 Javascript
Angular2使用Augury来调试Angular2程序
2017/05/21 Javascript
JS遍历DOM文档树的方法实例详解
2018/04/03 Javascript
angular 未登录状态拦截路由跳转的方法
2018/10/09 Javascript
vue-cli构建vue项目的步骤详解
2019/01/27 Javascript
详解Vue前端对axios的封装和使用
2019/04/01 Javascript
Vue项目配置跨域访问和代理proxy设置方式
2020/09/08 Javascript
原生JavaScript实现幻灯片效果
2021/02/19 Javascript
python中map、any、all函数用法分析
2015/04/21 Python
用Python实现最速下降法求极值的方法
2019/07/10 Python
python实现上传文件到linux指定目录的方法
2020/01/03 Python
Python基于当前时间批量创建文件
2020/05/07 Python
scrapy中如何设置应用cookies的方法(3种)
2020/09/22 Python
HTML5中的postMessage API基本使用教程
2016/05/20 HTML / CSS
浅谈html5 响应式布局
2014/12/24 HTML / CSS
严选全球尖货,立足香港:Bonpont宝盆
2018/07/24 全球购物
世界上最好的足球商店:Unisport
2019/03/02 全球购物
美国中西部家用医疗设备商店:Med Mart(轮椅、踏板车、升降机等)
2019/04/26 全球购物
应届毕业生个人自我评价
2013/09/20 职场文书
大专自我鉴定范文
2013/10/23 职场文书
工商管理专业大学生职业生涯规划范文
2014/03/09 职场文书
禁毒宣传标语
2014/06/19 职场文书
毕业设计论文致谢词
2015/05/14 职场文书
2017春节晚会开幕词
2016/03/03 职场文书