在JavaScript中,是一个空string总是false作为一个布尔值?
在JavaScript中,
var a = ''; var b = (a) ? false : true; // fixed!
var b将被设置为true 。
这是一个可以依赖的定义的行为吗?
是。 Javascript是ECMAScript的一种方言,ECMAScript语言规范明确地定义了这种行为:
ToBoolean
如果参数是空string(长度为零),则结果为false。 否则结果是真的
是。 所有false , 0 ,空string''和"" , NaN , undefined和null总是被评估为false ; 一切都是true 。
在你的例子中,评估后b是false 。 (我认为你错误地写了true )
var b将被设置为false 。 这是因为一个空string在JavaScript中被视为一个“假”值,就像其他一些值一样。
可以转换为false的expression式的例子是评估为null,0,空string(“”)或未定义的expression式。 (请参阅MDN参考 )
var a = ''; var b = (a) ? false : true; // fixed! console.log(b); // => true