JavaScript中的逻辑运算的返回值(逻辑与&&,逻辑或||,逻辑非!)
标签:
JavaScript
逻辑与的运算规则,左右两者同为true时,为true;有一者为false时,为false。
但是其返回值并非是返回布尔类型的true和false,而是返回其运算符左右两旁的一个值。
- 当有一个false时,返回false一侧的值;
- 当有两个false时,返回运算符之前(左侧)的值;
- 当有两个true时,返回运算符之后(右侧)的值。
这样既保证了在条件判断语句中,逻辑与的运算规则,又给了一个返回值。逻辑与运算属于短路运算,在按从左向右的运算顺序运算时,如果一个为假,即停止运算,并返回为假的值。
条件判断语句则是对返回值的再一次布尔类型判断。
下面这段代码可以看出其返回值及其位置关系:
var a={};
var b=56;
//window.abcdefg为一个不存在的对象,
console.log(window.abcdefg && null); //undefined
console.log(null && window.abcdefg); //null
console.log(a && null); //null
console.log(window.abcdefg && a); //undefined
console.log(a && b); //56
console.log(b && a); //object {}
逻辑或的运算规则,一个为true时为true,一个为false时为false。
其返回值与运算符的关系,正好同逻辑与相反。
- 当有一个true时,返回true一侧的值;
- 当有两个true时,返回运算符之前(左侧)的值;
- 当有两个false时,返回运算符之后(右侧)的值。
逻辑非运算因为只有一个值参与运算,所以比较简单。对运算符右侧的值先转为布尔值,再取反。
然后将结果返回,所以其返回值为布尔值。这一点与逻辑与和逻辑非不同。
有时候在需要一个布尔值时,可以用两次逻辑非运算来获取。
以上内容在《JavaScript高级程序设计》一书中(望远镜封面)有更详细的说明。
转载:http://blog.csdn.net/kevinhjing/article/details/48206787
点击查看更多内容
2人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦