码迷,mamicode.com
首页 > 其他好文 > 详细

||或和&&且的高级用法,以及隐式转换和显示转换。

时间:2020-02-13 09:39:24      阅读:305      评论:0      收藏:0      [点我收藏+]

标签:span   隐式转换   并且   逻辑   nan   运算   高级   顺序   undefined   

或的高级用法

console.log(true || true); //   true
console.log(true || false); //  true
console.log(false || true); //   true
console.log(false || false); //  false
console.log(0 || false); //  false
console.log(false || 0); //  0
console.log(0 || true); //true
console.log(true || 0); //true
console.log(1 || false); //1
console.log(false || 1); //1
console.log(1 || true); //1
console.log(true || 1); //true

        总结:0 为false,1为true ,判断语句中,只要有一个是true,则返回的结果为true,否则为false。执行顺序为从上至下,从左至右,如果找到一个结果为true则返回true并且不再往下执行,如果第一个结果为false,则继续往下找,知道true为止,返回true,如果没有true,则返回最后一个false的结果(0或false)

且的高级用法

console.log(true && true); // true
console.log(true && false); // false
console.log(false && true); // false
console.log(false && false); // false
console.log(0 && false); // 0
console.log(false && 0); // false
console.log(0 && true); //0
console.log(true && 0); //0
console.log(1 && false); //false
console.log(false && 1); //false
console.log(1 && true); //true
console.log(true && 1); //1
console.log(2 && true); //true
console.log(true && 2); // true
console.log("" && true); // ""
console.log(true && ""); // ""
console.log("a" && true); // true
console.log(true && "a"); // "a"
console.log({} && true); // true
console.log(true && {}); // {}
console.log([] && true); // true
console.log(true && []); // []
console.log(null && true); // null
console.log(true && null); // null
console.log(undefined && true); // undefined
console.log(true && undefined); // undefined
console.log(NaN && true); // NaN
console.log(true && NaN); // NaN

           总结:0为false,1为true,判断语句中,必须两个条件都为true,返回true,否则返回false,执行顺序自上而下,自左至右,第一个条件不满足时直接返回左边的值false或0,不再往下执行,第一个条件为true或者1时,继续看第二个条件,如果第二个条件也为true或者1时,则返回右边的值true或1,如果第二个条件不满足时,则返回右边的值false或0,

          如果是数值进行比较非0即为true,就是说上面的1都可以替换成非0的任何数字,结果不变。

          如果是字符进行比较的话非""空即为true,就是说""空的话在执行中会转换成false按照false的规则执行,但是结果会显示成""空字符,如果字符""里面有任何东西的话会按照true来执行,但是结果还是显示原来的字符

          如果是数组[],对象,函数{}进行判断的时候会隐式转换成true,在运行的时候遵循true的规则,但是结果还是以前的表达方式
          如果是null,undefined,NaN进行判断的话,隐式转换时,全部按照false的规则进行运算,但是结果依然会是原来的表达方式,

隐士转换与显示转换(简单描述)
这时顺便说一下,在什么情况下,会进行隐士转换?
就是在进行下面这些运算符操作的时候会进行隐式转换:
算数运算符:+ - * / %
比较运算符:== === != !== < > <= >= ?
逻辑运算符:&& || !
隐式转换中,在运算的时候会发生转换,在运算完成之后,根据判断的结果,显示原来的值,不会改变原值
而显式转换呢?
是手动进行转换,会改变要转换的值,再进行运算,一目了然,能看出来,而我们往往犯错就是在隐式转换当中

       记得好好敲代码。

||或和&&且的高级用法,以及隐式转换和显示转换。

标签:span   隐式转换   并且   逻辑   nan   运算   高级   顺序   undefined   

原文地址:https://www.cnblogs.com/goodgoodstudyV/p/12302006.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!