JS 逻辑运算符&&与||的运算
2017-03-24 10:26
239 查看
下面代码的输出值是?
正确的结果是 2.
下面是逻辑运算符的说明:
#简介的说就是 【&&返回第一个false,否则结束后返回true】【||返回第一个true,否则结束返回false】【!返回相反】#
能够转换为false的表达式有【false、""(空字符串)、0、NaN、null、undefined】
能够转化为true的值为【true、任何非空字符串、任何非零数字值(包括无穷大)、任何对象】
以上规则已经再次确认,摘自"javascript高级程序设计(第3版)"这本书
也就是说在代码中,第一个值为1,类型是number,该值没有办法转化为false,于是返回第二个值也就是2,这样就可以理解了.
2. 另外JS逻辑计算还有一个短路计算原则
由于逻辑表达式的运算的顺序是从左到右,也可以用以下规则进行"短路"计算:
3.一些简单逻辑运算例子理解
(1)逻辑与
alert(1&&2);
正确的结果是 2.
下面是逻辑运算符的说明:
运算符 | 示例 | 说明 |
---|---|---|
逻辑与 (&&) | expr1&&expr2 | 如果expr1 能转换成false则返回expr1,否则返回expr2. 因此, 在Boolean环境中使用时, 两个操作结果都为true时返回true,否则返回false. |
逻辑或 (||) | expr1||expr2 | 如果expr1能转换成true则返回expr1,否则返回expr2. 因此,在boolean环境(在if的条件判断中)中使用时, 二者操作结果中只要有一个为true,返回true;二者操作结果都为false时返回false. |
逻辑非(!) | !expr | 如果单个表达式能转换为true的话返回false,否则返回true. |
能够转换为false的表达式有【false、""(空字符串)、0、NaN、null、undefined】
能够转化为true的值为【true、任何非空字符串、任何非零数字值(包括无穷大)、任何对象】
以上规则已经再次确认,摘自"javascript高级程序设计(第3版)"这本书
也就是说在代码中,第一个值为1,类型是number,该值没有办法转化为false,于是返回第二个值也就是2,这样就可以理解了.
2. 另外JS逻辑计算还有一个短路计算原则
由于逻辑表达式的运算的顺序是从左到右,也可以用以下规则进行"短路"计算:
false && (anything)短路计算的结果为false.
true || (anything)短路计算的结果为 true
3.一些简单逻辑运算例子理解
(1)逻辑与
a4=false && (3 == 4) // f && f 结果为 false a5="Cat" && "Dog" // t && t 结果为 Dog
a6=false && "Cat" // f && t 结果为 false a7="Cat" && false // t && f 结果为 false a8 = true && 4 && "aaa"; //结果为"aaa" (1)逻辑或
o4=false || (3 == 4) // f || f 结果为 false o5="Cat" || "Dog" // t || t 结果为 Cat o6=false || "Cat" // f || t 结果为 Cat(这个例子非常迷惑人) o7="Cat" || false // t || f 结果为 Cat
相关文章推荐
- 转载:写了10年Javascript未必全了解的连续赋值运算 --> 说明了JS中变量是引用
- 从window.console&&console.log(123)浅谈JS的且运算逻辑(&&)
- Js 逻辑运算&&和||
- js的逻辑运算符&&, || , !
- JS-逻辑运算符&&和||的返回值
- css3 矩阵 js旋转过程运算
- <Js>运算和运算符
- JS的逻辑运算符&& ||
- JavaScript中的逻辑运算符&amp;&amp;和||详解(运算法则、短路实例)
- js双目运算符"&&"和"||"的运算方向
- JS 中的||(或运算)和&&(与运算)
- JS逻辑运算符&&与||的妙用
- J2SE细节—逻辑运算符&&和--的运算顺序与优先级
- JS中的&&和||运算
- 从window.console&&console.log(123)浅谈JS的且运算逻辑(&&)
- js 逻辑运算符&&和||返回值
- js 逻辑运算&& ||
- js中的逻辑运算(&&和||)
- js短路运算&& 和 ||
- js中逻辑运算符&&||!