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性能好吗?谢谢
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
因为foo(undefined)中内部的arguments.length其实是等于1并不等于0
不是,你看一下以下代码的调用
arguments.length = 1
arguments[0] = undefined
相信上面的代码尼应该明白意思了