javascript:期待真假但是获得数字

时间:2016-06-30 19:38:26

标签: javascript

我有以下内容:

var val = "string";
var testVal = val && val.length;

我希望testVal可以是truefalse,但它是字符串的长度。不知道为什么会这样?

1 个答案:

答案 0 :(得分:0)

逻辑&&运算符不执行类型转换。如果这个操作数是假的,那么它形成的表达式只是被计算到左边的操作数,否则被评估到右边的操作数。

您必须显式转换为布尔值:

var testVal = !!(val && val.length);