标签:
如果脸变的操作有一个不是布尔值的情况下,逻辑与运算就不一定返回布尔值
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