在Javascript中空字符串求值为false的原因是什么

ek_*_*_ny 1 javascript

为什么在JavaScript中空字符串的计算结果为false.我知道Douglas Crockford已经在javascript中讲了很多关于truthy和falsy的内容,但这仍然让我感到惊讶:

if("")
    alert("you will never see this");
Run Code Online (Sandbox Code Playgroud)

任何人都知道这种行为的基础是什么.是否按照ECMAScript规范以这种方式实现?我很好奇.

Que*_*tin 6

因为它没有任何内容.空字符串是许多语言中的错误值.根据规范,这是标准的.

如果参数是空String(其长度为零),则结果为false; 否则结果是真的

- Ecma-262第9.2节

  • 因为`===`的意思是它不进行类型转换,而大多数假值都不是'false`(```是假值`false`). (2认同)