var x = a2 || a1;

来源:互联网 发布:淘宝游戏账号查询 编辑:程序博客网 时间:2024/06/12 01:48
再看看实际的应用:
 
function test(a1,a2){
var x = a2 || a1;
//var x = a2===undefined ? a1 : a2;
alert(x);
}
test("abc");
test("abc","def");
第一次执行 test 时只传了一个参数,因此在 test 内部获取的 a2 恒等于 undefined,即类型属于false,或运算将继续执行双 竖线右边的表达式 a1 ,a1的值为字符串"abc",不是false,因此或运算表达式返回 "abc" 并赋值给 x。

对于此类型的表达方法 a2 || a1 可以这样理解:优先取 a2, a1 排后。按这样的理解,看看下面的:
function test(a1,a2,a3,a4,a5){
  var x = a5 || a4 || a3 || a2 || a1;
  alert(x);
}
test("abc","def","ghi");
0 0
原创粉丝点击