Javascript c使用空变量和未定义变量进行组合测试

Javascript c使用空变量和未定义变量进行组合测试,javascript,Javascript,调试这部分代码时,我在控制台中看到: 当我尝试使用这两个变量构建条件时,它从不记录“hello”: const token = localStorage.getItem('accesstoken'); const urlToken = this.getTokenFromUrl(); console.log('urlToken :', urlToken) console.log('token :', token) console.log('type of

调试这部分代码时,我在控制台中看到:

当我尝试使用这两个变量构建条件时,它从不记录“hello”:

    const token = localStorage.getItem('accesstoken');
    const urlToken = this.getTokenFromUrl();
    console.log('urlToken :', urlToken)
    console.log('token :', token)
    console.log('type of token :', typeof(token))
    
    // if(!token && !urlToken){
    // if((token && token !== null)  && urlToken === undefined){
    if (token === null && urlToken === undefined){
       

        console.log('Hello');   
我知道有时候JS在这种情况下是很困难的


我的问题是什么?

您的令牌是一个值为“null”的字符串。所以你的支票没有通过。将其更改为
token===“null”
将修复您的代码。

看起来
token
是字符串“null”,它是
null
。您的控制台日志显示令牌是一个
字符串
null
。因此,
token==“null”
将起作用。@MarkMeyer-最好用答案而不是注释来回答。接得好。大多数控制台都会在字符串周围加引号,但我们可以看到这一行不是最后一行的,所以再次强调,这是一个很好的例子。@Dom-这就是为什么我总是建议使用内置于浏览器和/或IDE中的调试器打开指示灯,而不是在黑暗中使用
console.log
torch。希望调试器能比这个特定的控制台更清楚地显示值。@all:我理解我的错误:标记是字符串,即使chrome显示时没有引号。如果我使用token==“null”,它就会工作。非常感谢你的回答(我在这个问题上花了两个小时)。谢谢