详解JavaScript逻辑Not运算符

 更新时间:2015年12月04日 14:25:00   作者:孤傲苍狼  
这篇文章主要介绍了JavaScript逻辑Not运算符,逻辑NOT运算符与C和Java中的逻辑 NOT 运算符相同,都由感叹号(!)表示,想要深入了解逻辑Not运算符的朋友可以参考一下

在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变量的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运算符的详细信息,希望对大家的学习有所帮助。

相关文章

  • JS 排序输出实现table行号自增前端动态生成的tr

    JS 排序输出实现table行号自增前端动态生成的tr

    一个项目,需要对数据进行排序输出,要求有行号,依次递增1.2.3.4.5,使用前端动态生成的tr
    2014-08-08
  • Javascript实现购物车功能的详细代码

    Javascript实现购物车功能的详细代码

    这篇文章使用js实现购物车的价格计算,商品数量更换,商品删除等功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • 微信小程序实现音乐播放器

    微信小程序实现音乐播放器

    这篇文章主要为大家详细介绍了微信小程序实现音乐播放器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • js实现页面跳转的五种方法推荐

    js实现页面跳转的五种方法推荐

    下面小编就为大家带来一篇js实现页面跳转的五种方法推荐。小编觉得挺不错的。现在分享给大家,让大家参考一下
    2016-03-03
  • ES6扩展运算符的使用方法示例

    ES6扩展运算符的使用方法示例

    es6新增加了一个运算符,叫做扩展运算符,这个运算符用在数组前面,会把数组展开变成各个独立的值,这篇文章主要给大家介绍了关于ES6扩展运算符的相关资料,需要的朋友可以参考下
    2021-07-07
  • javascript中onclick(this)用法介绍

    javascript中onclick(this)用法介绍

    this指触发事件的对象,接下来为大家分享下javascript中onclick(this)的用法,感兴趣的朋友可以参考下哈,希望对你有所帮助
    2013-04-04
  • 微信小程序实现简单的select下拉框

    微信小程序实现简单的select下拉框

    这篇文章主要为大家详细介绍了微信小程序实现简单的select下拉框,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • js自动闭合html标签(自动补全html标记)

    js自动闭合html标签(自动补全html标记)

    假如我有一个DIV,如果没有闭合后面的样式都会乱了,这样的代码可能会影响后面的样式,我希望用JS去自动闭合这种没有闭合的标签
    2012-10-10
  • 使用js获取伪元素的content实例

    使用js获取伪元素的content实例

    下面小编就为大家带来一篇使用js获取伪元素的content实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • js实现登录验证码

    js实现登录验证码

    本文主要介绍了js实现登录验证码的方法,代码简洁明了,具有很好的参考价值,需要的朋友一起来看下吧
    2016-12-12

最新评论