一个非常简单的问题。例如,这些等效吗?
window.open('http://someurl.com')
window.open('http://someurl.com', undefined)
我当中有些人怀疑它可能取决于函数本身,但我不确定。
答案 0 :(得分:1)
简而言之:在绝大多数情况下,传递undefined
等同于忽略参数。
但是,在函数中,您可以区分省略的参数和作为undefined
传递的参数。尽管我永远不建议使用这种区别来更改行为,但是如果您访问函数中的特殊arguments
变量,则可以看到两者之间的区别:
function logNumArgs() {
console.log(arguments.length)
}
logNumArgs() // 0
logNumArgs(undefined, undefined) // 2