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

或||

时间:2016-01-24 06:59:55      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:

如果脸变的操作有一个不是布尔值的情况下,逻辑与运算就不一定返回布尔值

1.第一个操作数是对象,则返回第一个操作数;

var box = {} || false;
alert(box);//[object object]
alert(typeof box);//object

2.第一操作数的求值结果为false,则返回第二个操作数;

var box = false || {};
alert(box);//[object object]
var box = false ||undefined;
alert(box);//undefined

3.两个操作数都是对象,则返回第一个操作数;

var box = {
	toString:function(){
		return ‘1‘;
	}||{
		toString:function(){
			return ‘2‘;
		}
	}
}
alert(box);

4.两个操作数都是null,则返回null;

var box = null || null;
alert(box);

5.两个数都是NaN,则返回NaN;

var box = NaN || NaN;
alert(box);//NaN

6.两个数都是undefined,则返回undefined;

var age;
var box = undefined || age;
alert(box);//undefined

逻辑或运算避免为变量赋null或undefined

总结:

1.第一个操作数为非true的类型数据,则返回第二个操作;

2.第一个操作数为true或对象,则返回第一个操作数;

 

或||

标签:

原文地址:http://www.cnblogs.com/liangcheng11/p/5154501.html

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