在javascript中,空字符串总是假的布尔值吗?

2022-08-30 02:26:51

在javascript中,

var a = '';
var b = (a) ? true : false;

var b将设置为 。false

这是一个可以依赖的定义行为吗?


答案 1

是的。Javascript 是 ECMAScript 的一种方言,ECMAScript 语言规范明确定义了这种行为:

ToBoolean

如果参数为空字符串(其长度为零),则结果为 false;否则结果为真

摘自 http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf


答案 2

是的。所有 、 、 空字符串和 、 、 和 的计算结果始终为 ;其他一切都是.false0''""NaNundefinednullfalsetrue

在您的示例中,b 是在评估之后。(我想你写错了falsetrue)