一 前提小知识
返回为true的有 对象 非空字符串 非零数字 true;
返回为false的有 “” 0 null undefine NaN false;
二 &&
逻辑与,短路操作
全部为真时返回最后一项
存在为假时返回为假的第一项,后面几项变成短路操作
例子1:均为真
var a1 = "i am a1";
var a2 = "i am a2";
var a3 = "true"; //弹出 true;
//var a3 = true; 弹出 true;
//var a3 = "i am a3"; 弹出 i am a3;
//var a3 = "false"; 弹出 false;
var res = a1 && a2 && a3;
alert (res);
例子2 :存在假
var a1 = "i am a1";
var a2 = "i am a2";
var a3 = false //弹出 false
//var a3 = "false"; 弹出 false; 和上面完全一样,注意!
var res = a1 && a2 && a3;
alert (res);
例子3 :短路
var a1; //Firefox中弹出框为空白 该类型为undifine
var a2 = 0; //若此为第一项 弹出 0
var a3 = NaN; //若此为第一项 弹出 NaN
var res = a1 && a2 && a3;
var a4 = typeof(a1);
alert (a4);
alert (res);
三 ||
逻辑或
存在为真,则返回为真的第一项,后面短路
全部为假,则返回最后一项。
例子1:全部为假
var a1 ; var a2 = 0; var a3 = NaN; var res = a1 || a2 || a3; alert (res); //弹出NaN
例子二: 存在真
var a1 ; var a2 = 1; var a3 = true; var res = a1 || a2 || a3; alert (res); //弹出1
四 常用方法(不断补充)
1 逻辑判断
var a = “”;
var b = "b";
var res = a||b;
如果第一项无意义,则返回第二项,否则返回第一项。
var a = 1;
var b = "b";
var res = (a == 1)&& b; // 弹出b
如果a为1 则返回b 否则返回false
啰嗦一下 == 与=== 区别
== 转化为同类型进行,再比较值是否相等 相等为真不等为假
=== 直接比较 类型不同 则为假
所以,此例中
var res = (a == “1”)&& b; // 弹出b
var res = (a === “1”)&& b; //弹出为false
个人认为尽量用 ===
新闻热点
疑难解答