向函数传递未定义参数-检查变量是否存在
Passing undefined parameter to function - check if variable exists
考虑以下Javascript:
function getType(obj){
return(typeof(obj))
}
alert(typeof(obj)) //alerts "undefined" correctly
alert(getType(obj)) //throws an error: ReferenceError: obj is not defined
为什么会发生这种情况?有什么变通办法吗?我试图写一个函数,检查是否存在一个变量。
问题与typeof无关。问题是你不能将未定义的变量传递给函数。
function doNothing(obj){
}
doNothing(obj);
这段代码也会导致错误:Uncaught ReferenceError: obj is not defined
所以不管你在函数里面写什么代码,因为它不会被调用。错误发生在函数调用之前。
typeof
是运算符,而不是函数。这就是为什么它的行为方式与函数不同。
typeof
是操作符,而不是函数,因此具有函数所不能具有的功能。没有办法做你想做的事。
当你试图传递一个未定义的对象时,你的函数就会失败。不能封装typeof()
函数。你可以,但是当传递未定义的对象时,它总是会抛出错误。
相关文章:
- 如何在JavaScript中检查变量是否为null和/或未定义
- 检查变量是否为字符串的简单方法
- JavaScript:检查变量是否等于两个或多个值之一的简单方法
- Selenium-检查变量中的字符
- 检查变量并将它们添加到逗号分隔的列表中
- 通过字符串形式的名称检查变量是否存在于本地作用域内
- 检查变量是否大于某物,但不是未定义的
- jQuery - 检查变量是否为 dom 元素
- 检查变量是否未定义不起作用
- 如何在 Javascript 中检查变量是否是数组(noesis.Javascript)嵌入在C#中
- Javascript 检查变量
- 如何检查变量是否为节点
- JavaScript 函数,用于检查变量是否存在以避免错误
- 如何在 JavaScript 中检查变量类型
- 这是检查变量是否被定义的最佳方法,而不是 null 并等于 “” 或其他任何内容
- 我可以创建一个承诺来检查变量是否设置为角度吗?
- 检查变量是否为 SVG.js 元素实例
- 表单点击功能可在提交前检查变量
- 如何在 JavaScript 中检查变量是局部变量还是全局变量
- JavaScript:检查变量或对象是否存在