JavaScript可选参数,我是否需要检查未定义
JavaScript optional argument, do I need to check for undefined?
鉴于此:
function hello(name, option) {
if (option === 'useless') {
return '!!!!';
} else {
return 'Hi, ' + name;
}
}
如果省略option
参数,似乎没有什么不好的事情发生。我真的需要检查吗?
if (typeof option !== 'undefined' && option === 'useless')
您不需要typeof
检查
形式形参总是函数作用域中有效的标识符。
规范中感兴趣的部分:
§10.4.3输入功能代码
9。使用函数代码code和argumentList执行声明绑定实例化,如10.5中所述。
§10.5声明绑定实例化(强调)
4。如果code是函数代码,则
,,[…]
,,d.对于names中的每个String argName,按列表顺序执行
,,,,i.设n为n加1的当前值。
,,,,2如果n大于argCount,则设v为undefined
,否则设v为args中n的第一个元素的值。
,,,,[…]
,,,,v.调用env的SetMutableBinding具体方法,传递argName、v和strict作为参数。
这意味着,对于没有足够参数调用的function f(arg) {}
(例如f()
), arg
绑定将在其执行上下文(又名作用域)中初始化为undefined
。
相关文章:
- 正在检查未定义的值
- 检查未定义的变量
- 检查未定义的变量在 chrome 中不起作用
- 检查未定义的值,但它仍未定义
- 检查未定义是否不起作用
- 检查未定义的 JavaScript 变量
- Javascript检查未定义的语义
- 使用速记检查未定义的对象不起作用
- 填充对象时检查未定义的对象
- 尝试检查未定义json对象的类型时出错
- 最好检查未定义属性或设置为空
- Typescript编译器/Cordova API:检查未定义的全局变量
- 检查未定义和null的不等式(!==)和检查未定义和null的柯夫不等式(!=)之间有区别吗?
- 检查未定义的javascript未命中
- 检查未定义变量的最佳JS实践是什么
- 检查未定义导致未定义错误
- 如何使用下划线检查“未定义”?在javascript
- 复选框.在OnClick事件函数中检查未定义
- $.parseJSON - 未捕获的语法错误 - 如何检查未定义
- JavaScript可选参数,我是否需要检查未定义