猿问

js arguments

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>0arguments[0] !== undefined性能好吗?谢谢


跃然一笑
浏览 487回答 1
1回答

慕后森

因为foo(undefined)中内部的arguments.length其实是等于1并不等于0
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答