如何触发此“类型(未定义)!= 未定义”错误?未定义不起作用.WSS

How can I trigger this 'typeof(undefined) != undefined' error? Undefined doesn't do the trick... JS

本文关键字:未定义 错误 WSS 不起作用 何触发 类型      更新时间:2023-09-26

我有一个函数:

function goError(thing){
    console.log(typeof(thing)); //RETURNS A STRING 'UNDEFINED'
    if(typeof(thing) != undefined){
        console.log(thing); //RETURNS UNDEFINED
        return thing;
    }
    throw 'Error: ' + thing;
}

我正在尝试处理错误消息。但是当我传递undefined参数时,该函数正常工作,这不是我想要的。

当我控制台出未定义的变量时,我得到undefined,但是当我控制台出来时typeof(thing)我得到一个字符串'undefined'。 这个字符串显然不会导致我的错误开始。

我可以

按如下方式更改函数,然后它工作正常,我可以解决我的错误。

    if(thing != undefined){
        return thing;
    }

但是我可以在不更改功能的情况下导致错误启动吗?

我可以将什么传递给我的函数会导致错误?

要检查thing是否undefined,您必须执行以下操作:

if(typeof thing !== "undefined") {
    // well, it seems to have something
}

如果需要,还有小提琴。

尝试使用此代码

function goError(thing){    
    if(thing){        
        return thing;
    }
    throw 'Error: ' + thing;
}

看到您使用的是 Angular,您可以使用 angular.isDefined 实用程序方法,docs:

function goError(thing){
    if(angular.isDefined(thing)){
        return thing;
    }
    throw 'Error: ' + thing;
}