将null赋给JavaScript变量-最终变成字符串

4

我已经如下初始化了我的变量:

var name = null;

如果我像这样检查它的值,它不会做任何事情:
if(name == null) {
    alert("Name = null");
}

但如果我把if条件改为那样,它就可以工作:

if(name == "null") {
    alert("Name = null");
}

很高兴能够为您提供帮助。


是的,我确定它可以工作。 - matthias
哇,这甚至适用于类型比较。if(name === 'null')也会通过。 - Sterling Archer
精确的代码是什么? - epascarello
@m59不适用,因为原帖作者的断言。 - user2864740
@m59 首先,我不认为总是使用 === 更好。第二,正如我所辩论的那样,这个问题并不适用于此处。 - user2864740
显示剩余7条评论
1个回答

8

很可能你是在全局作用域中运行的,因此name指的是Window.name属性。给这个属性赋值时会自动将该值转换为字符串。例如,尝试打开浏览器控制台并输入以下内容:

var name = 123;
alert(typeof name); 

您最有可能会收到一个警告,内容为string
但是,如果您将其放置在IIFE(立即调用函数表达式)中(并确保您有一个var声明),它会按预期运行:
(function() {
    var name = null;
    if(name == null) {
        alert("Name = null"); // shows alert
    }
})();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接