详解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 Base64编码和解码,实现URL参数传递。
Sep 18 Javascript
javascript中String类的subString()方法和slice()方法
May 24 Javascript
JS实现点击下载的小例子
Jul 10 Javascript
jQuery toggleClass应用实例(附效果图)
Apr 06 Javascript
JavaScript DOM事件(笔记)
Apr 08 Javascript
Angular2表单自定义验证器的实现
Oct 19 Javascript
js中数组的常用方法小结
Dec 30 Javascript
JavaScript代码实现txt文件的上传预览功能
Mar 27 Javascript
JS使用tween.js动画库实现轮播图并且有切换功能
Jul 17 Javascript
Angular路由ui-router配置详解
Aug 01 Javascript
小程序实现列表删除功能
Oct 30 Javascript
Vue一次性简洁明了引入所有公共组件的方法
Nov 28 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
山进SANGEAN ATS-909X电路分析
2021/03/02 无线电
php数组函数序列之array_splice() - 在数组任意位置插入元素
2011/11/07 PHP
腾讯CMEM的PHP扩展编译安装方法
2015/09/25 PHP
laravel5.1框架基础之Blade模板继承简单使用方法分析
2019/09/05 PHP
jQuery选中select控件 无法设置selected的解决方法
2010/09/01 Javascript
用于节点操作的API,颠覆原生操作HTML DOM节点的API
2010/12/11 Javascript
javascript跨域的4种方法和原理详解
2014/04/08 Javascript
全面解析Bootstrap表单使用方法(表单控件)
2015/11/24 Javascript
js和jquery实现监听键盘事件示例代码
2020/06/24 Javascript
js中小数向上取整数,向下取整数,四舍五入取整数的实现(必看篇)
2017/02/13 Javascript
jQuery遮罩层实例讲解
2017/05/11 jQuery
深入理解ES6学习笔记之块级作用域绑定
2017/08/19 Javascript
vue中实现先请求数据再渲染dom分享
2018/03/17 Javascript
微信小程序canvas分享海报功能
2019/10/31 Javascript
微信小程序点击滚动到指定位置的实现
2020/05/22 Javascript
vue同个按钮控制展开和折叠同个事件操作
2020/07/29 Javascript
JavaScript实现动态生成表格
2020/08/02 Javascript
JavaScript数组常用的增删改查与其他属性详解
2020/10/13 Javascript
微信小程序实现锚点跳转
2020/11/23 Javascript
[00:27]DOTA2战队VP、Secret贺新春
2018/02/11 DOTA
本地文件上传到七牛云服务器示例(七牛云存储)
2014/01/11 Python
对python xlrd读取datetime类型数据的方法详解
2018/12/26 Python
NumPy 数组使用大全
2019/04/25 Python
Matplotlib中rcParams使用方法
2021/01/05 Python
termux中matplotlib无法显示中文问题的解决方法
2021/01/11 Python
英国最专业的健身器材供应商之一:Best Gym Equipment
2017/12/22 全球购物
会计自荐书
2013/12/02 职场文书
文言文形式的学生求职信
2013/12/03 职场文书
舞蹈教师自荐信
2014/01/27 职场文书
希特勒的演讲稿
2014/05/23 职场文书
临床医学专业求职信
2014/08/08 职场文书
学校运动会简讯
2015/07/20 职场文书
运动会口号霸气押韵
2015/12/24 职场文书
原生Js 实现的简单无缝滚动轮播图的示例代码
2021/05/10 Javascript
Python使用protobuf序列化和反序列化的实现
2021/05/19 Python
详解Spring Security中的HttpBasic登录验证模式
2022/03/17 Java/Android