【问题标题】:Assign null to javascript var - ends up as String [duplicate]将 null 分配给 javascript var - 最终为 String [重复]
【发布时间】:2014-09-18 19:08:00
【问题描述】:

我已将我的变量初始化如下:

var name = null;

如果我像这样检查它的值,它不会做任何事情:

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

但是,如果我将 if 子句更改为此,它会起作用:

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

乐于助人。

【问题讨论】:

  • 是的,我确定它有效。
  • 报告的行为不正确。 null == "null" 是假的。
  • 哇,这甚至可以用于类型比较。 if(name === 'null') 也会通过
  • 具体代码是多少?

标签: javascript null


【解决方案1】:

您可能在全局范围内运行它,在这种情况下,name 指的是Window.name 属性。为该属性赋值会自动将值转换为字符串,例如,尝试打开浏览器的控制台并输入以下内容:

var name = 123;
alert(typeof name); 

您很可能会收到一条显示为string 的警报。

但是,如果您将其放在 IIFE 中(并确保您有 var 声明),它的行为将符合预期:

(function() {
    var name = null;
    if(name == null) {
        alert("Name = null"); // shows alert
    }
})();

【讨论】:

    猜你喜欢
    • 2012-12-24
    • 2018-10-02
    • 2012-07-21
    • 1970-01-01
    • 2017-10-10
    • 2020-11-05
    • 1970-01-01
    • 2022-11-12
    • 2019-01-08
    相关资源
    最近更新 更多