首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JavaScript -未定义为参数传递是否等同于省略参数?

JavaScript -未定义为参数传递是否等同于省略参数?
EN

Stack Overflow用户
提问于 2018-08-09 05:30:57
回答 1查看 49关注 0票数 0

很简单的问题。例如,这些是等价的吗?

window.open('http://someurl.com')

window.open('http://someurl.com', undefined)

我怀疑它可能依赖于函数本身,但我不确定。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-09 05:35:10

简而言之:在绝大多数情况下,传递undefined相当于省略了参数。

但是,在函数中,您可以区分省略的参数和作为undefined传递的参数。虽然我从来不建议使用这种区别来更改行为,但如果您在函数中访问特殊的arguments变量,您可以看到两者之间的区别:

代码语言:javascript
复制
function logNumArgs() {
  console.log(arguments.length)
}

logNumArgs() // 0
logNumArgs(undefined, undefined) // 2

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51755922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档