标签:
/与(and)&&
var box = (5>3)&&(4>3); alert(box); //true
如果脸变的操作数有一个操作数不是boolean值得情况下,于运算就不一定返回布尔值。遵循的规则如下:
a.第一个操作数是对象,则返回第二操作数;
var age = {}&&(4>3); alert(age);//true
b.第二个操作数是对象,则第一个操作数返回true,才返回第二个操作数,否则返回false;
var box = (4>3)&&{}; alert(box);//[object object] var age = (3>4)&&{}; alert(age);//false
alert(typeof age);//boolean alert(typeof box);//object
c.有一个操作数是null,则返回null;
var box = null && (3>4); var age = (3>4) && null; alert(age);//flase alert(box);//null
d.有一个操作时undefined,则返回undefined;
var box = undefined && (3>4); var age = (3>4) && undefined; alert(age);//flase alert(box);//undefined
var hight = true && height;
alert(hight);//undefined
e.如果第一个为false,则不执行第二个,直接返回false
var box = false && (3>4); var age = false && undefined; alert(age);//flase alert(box);//undefined
f. 第一个为单独number 或 string,执行第二,否则false
总结:看似有六条规定,实质就两条
1.第一个为false,不用执行第二个,直接返回false
2.第一个为true(包括Number、String、对象)或(null、undefined)。
前者返回第二操作数;后者直接返回null、undefined。
标签:
原文地址:http://www.cnblogs.com/liangcheng11/p/5154491.html