function foo() {
var p = arguments.length > 0 && arguments[0] !== undefined ? arguments[0]: x + 1;
console.log(p);
}
上面代码中arguments[0] !== undefined
不是已经能保证arguments.length>0
了吗?为啥还要先判断前面arguments.length>0
,是因为先判断arguments.length>0
比arguments[0] !== undefined
性能好吗?谢谢
因为foo(undefined)中内部的arguments.length其实是等于1并不等于0