我已将变量初始化为以下内容:
var name = null;
如果我检查它的值是这样的,它什么都不做:
if(name == null) {
alert("Name = null");
}
但是如果我将if子句改为,那就可以了:
if(name == "null") {
alert("Name = null");
}
为每一个帮助感到高兴。
答案 0 :(得分: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
}
})();