我正在尝试编写一个if语句,如果输入已定义,则打印“input is defined”,否则打印undefined。
function isItUndefined(param)
{
console.log(typeof(param))
if (typeof(param) !== undefined)
{
return 'Input is defined'
}
return undefined
}
console.log(isItUndefined(5))
console.log(isItUndefined(null))
console.log(isItUndefined(undefined))
但是,由于即使条件为false,default语句也不会执行,因此上述代码会给出以下输出:
number
Input is defined
object
Input is defined
undefined
Input is defined
3条答案
按热度按时间ia2d9nvy1#
typeof
返回一个string
,因此您的代码应该是:MDN实际上有一个dedicated page,关于如何检测
undefined
的值,以及使用每个方法可能会遇到什么样的问题。例如,使用typeof
实际上可能会导致一个bug,而使用单元测试相对容易捕捉到:如果您在param
中输入错误,则if语句几乎总是true
。2izufjch2#
typeof
operator返回一个字符串,因此要么直接将输入与值undefined
进行比较,要么将typeof param
与字符串'undefined'
进行比较。wpx232ag3#
您不需要
typeof
来执行此操作