【发布时间】:2009-04-02 00:40:22
【问题描述】:
我从事的一个开源 JavaScript 项目包括代码:
if (color) {
tapeDiv.style.backgroundColor = color;
// set color here if defined by event. Else use css
}
一个贡献者想把它改成
if (color != null) { // this line changed
tapeDiv.style.backgroundColor = color;
// set color here if defined by event. Else use css
}
color 是一个字符串变量。只能使用超过 0 个字符的字符串来显式设置颜色。
既然 JS 将 "" 和 null 转换为 boolean false,为什么需要比较 != null?
我认为第一种形式与第二种形式一样好(而且短一点)是不是错过了什么?
我经常在 JS 源代码中看到与 null 的比较。当所有 JS 简单对象在转换为布尔值时都具有已知结果时,为什么需要它们?
谢谢,
拉里
ps。我想如果 0(一个整数)是一个有效的情况,那么 if(0) 将是错误的 [一个问题] 并且 if(0 != null) 将是真的 [允许 0 的情况]。还有什么原因吗?
pps。应该提到tapeDiv 是新创建的。所以没有必要将样式重置为“”,因为 div 是全新的。
【问题讨论】:
标签: javascript