【发布时间】:2013-03-01 21:31:16
【问题描述】:
今天我得到了一个关于代码的评论,考虑到我在学校作业中检查变量是真还是假的方式。
我写的代码是这样的:
var booleanValue = true;
function someFunction(){
if(booleanValue === true){
return "something";
}
}
他们说这样写会更好/更整洁:
var booleanValue = true;
function someFunction(){
if(booleanValue){
return "something";
}
}
我得到的关于“=== true”部分的评论是,它不是必需的,可能会造成混乱。
但是我的想法是最好检查变量是否为布尔值,特别是因为 Javascript 是一种松散类型的语言。
在第二个例子中,字符串也会返回“something”;
所以我的问题;以后放开“=== true”部分是否更整洁,或者检查变量的类型是否是一种好习惯。
编辑: 在我的“真实”代码中,布尔值表示图像是否已被删除,因此 boolValue 应该具有的唯一值是 true 或 false。
例如,0 和 1 不应该在该变量中。
【问题讨论】:
-
使用 === 是易读的好习惯
-
+1 表示
=== true。避免混淆! -
@gashu 考虑
[0] === true评估为假。 -
@Jlange 不应该吗?请解释
-
我的意思是,如果您只是想检查“真实”的存在,那么该语句将失败,即使它应该评估为 true( [0] 评估为 true 但不是没有类型转换)。这真的取决于你试图用你的陈述来完成什么。当您需要确保条件完全等于
true时,请使用=== true。
标签: javascript semantics