标签: javascript
我有以下内容:
var val = "string"; var testVal = val && val.length;
我希望testVal可以是true或false,但它是字符串的长度。不知道为什么会这样?
testVal
true
false
答案 0 :(得分:0)
逻辑&&运算符不执行类型转换。如果这个操作数是假的,那么它形成的表达式只是被计算到左边的操作数,否则被评估到右边的操作数。
&&
您必须显式转换为布尔值:
var testVal = !!(val && val.length);