布尔操作符-逻辑非(!)

逻辑非(!)

逻辑非操作符由一个叹号(!)表示。

无论这个值是什么数据类型,这个操作符都会返回一个布尔值。逻辑非操作符首先会将它的操作数转换为一个布尔值,然后再将其求反。逻辑非操作符遵循下列规则:

  •如果操作数是一个对象,返回false;

  •如果操作数是一个空字符串,返回true;

  •如果操作数是一个非空字符串,则返回false;

  •如果操作数是数值0,返回true;

  •如果操作数是任意非0数值(包括Infinity),返回false;

  •如果操作数是null,返回true;

  •如果操作数是NaN,返回true;

  •如果操作数是undefiend,返回true;

下面几个例子展示了应用上述规则的结果:

alert(!false);//true
alert(!"blue");//false
alert(!0);//ture
alert(!NuN);//true
alert(!"");//ture
alert(!123465);//false
时间: 2024-10-11 04:50:22

布尔操作符-逻辑非(!)的相关文章

布尔操作符-逻辑与(&&)

逻辑与(&&) 逻辑与操作符由两个和号(&&)表示,有两个操作数. 第一个操作数 第二个操作数 结果 true true true true false false false true false false false false 逻辑与操作可以应用与任何类型的操作数,而不仅仅是布尔值.在有一个操作数不是布尔值的情况下 ,逻辑与操作就不一定返回布尔值,此时,它遵循下列规则: •如果第一个操作数是对象,则返回第二个操作数: •如果第二个操作数是对象,则只有在第一个操作数的

布尔操作符-逻辑或(||)

逻辑或(||) 逻辑或操作符由两个竖线符号(||)表示,有两个操作数. 第一个操作数 第二个操作数 结果 true true true true false true false true true false false false 与逻辑与操作相似,如果有一个操作数不是布尔值,逻辑或也不一定返回布尔值:此时,它遵循下列规则: •如果第一个操作数是对象,则返回第一个操作数: •如果第一个操作数的求值结果为false,则返回第二个操作数: •如果两个操作数都是对象,则返回第一个操作数; •如果两

js布尔操作符小记

为了提高学习效率断了下网,没想到这么渣渣网断了之后就连不上了=.=废话少说,开始正题. 重新看红皮书,重点记一下布尔操作符.布尔操作符有 !,&&,||.  一,逻辑非 先说说 !, 非是布尔操作符中唯一一个会把所有数据类型转换为布尔类型的.拿几个特殊值为例: 如果操作数为 null,则 !null返回 true 如果操作数为 undefined,则 !undefined 返回true 如果操作数为 NaN,则 !NaN 返回true 有了 逻辑非,就可以用两个!!来判断一个数据类型的布尔

Javascript 布尔操作符总结

在一门编程语言中,布尔操作符的重要性堪比相等操作符.如果没有测试两个值关系的能力,那么诸如if...else和循环之类的语句就不会有用武之地了.在像javascript这样弱类型语言更有其妙用,让我们的代码,简捷可靠.布尔操作符一共有3个: 与.或.非. 特性: 非 先来讨论一下,最简单的‘非!’ 相对与和或来说,非更简单一点,先把操作数转换为布尔值,再取反,值不是true,就是false. 结论:逻辑非的返回值最后只有两个:true or false.       与和或: 而与和或并不总是返

JS基本概念 -- 操作符 -- 布尔操作符

布尔操作符一共有三个: 非(Not).与(AND).或(OR) 逻辑非逻辑非操作符由一个叹号(!)表示,可以应用于ECMAScript中的任何值.无论这个值是什么类型,这个操作符都会返回一个布尔值.逻辑非操作符首先将他的操作数转换为一个布尔值,再对其求反. //1.如果操作数是一个对象,返回false var o = { name: "ss" }; alert(!o); //false var o1 = {}; alert(!o1); //false //2.如果操作数是一个空字符串,

js逻辑非同时两次使用 !!null

今天遇到了"!!null"的写法,百度没有找到直接的解释,翻书在<javascript高级设计>P44找到了相应的解释: 同时使用两个逻辑非操作符,实际上就会模拟Boolean()转型函数的行为.其中,第一个逻辑非操作符会基于无论什么操作数返回一个布尔值,而第二个逻辑非操作则对该布尔值求反,于是就得到了这个值真正对应的布尔值.当然最终结果与对这个值使用Boolean()函数效果相同. 所以其实个人认为,!!写法就是Boolean()的一种简便写法. 可以运行下面示例来更形象

布尔操作符解析

在一门编程语言中,布尔操作符的重要性堪比相等操作符.如果没有测试两个值关系的能力,那么诸如if...else和循环之类的语句就不会有用武之地了. 布尔操作符一共有3个: 非.与.或 1.逻辑 非 逻辑非用!表示,可以应用与ECMAScript的任何类型的值,逻辑非操作返回的是一个布尔值(true/false).该操作符首先会将它的操作数转换为一个布尔值,然后再对其求反. 下面说明下Boolean()转型函数的一组规则. 数据类型 转换为true的值 转换为false的值 Boolean true

js中等性操作符(==)、关系操作符(&lt;,&gt;)和布尔操作符(!)比较规则

最近一直在笔试面试,经常碰到例如 123=='123'.'abc'==true等问题,其中有答对的,也有答错的,主要原因还是对ECMAScript的规范没有理解清楚,很多题目没有具体分析所导致.现查阅资料后对此进行一些总结. 等性操作符(==) 1.比较的类型是String.Number.Boolean这几个基本类型时 当是这几中类型进行比较时,会先将两边转换成数字,在进行比较. 1 console.log(1 == true); // true转换成数字为1,因此结果为true 2 3 con

逻辑非!

逻辑非运算符可以用于任何值.无论这个值是什么数据类型,这个运算符都会返回一个boolean. 它的流程是:先将这个值转换成boolean,然后取反,规则如下: 1.操作数是一个对象,返回false: var box =!{}; alert(box);//false 2.操作数是一个空字符串,返回true: var box =!''; alert(box);//true 3.操作数是一个非空字符串,返回false var box =!'lx'; alert(box);//false 4.操作数是数