空字符串应该是“假”'

时间:2018-06-05 11:41:23

标签: javascript if-statement conditional-statements

Javascript代码:



var empty = '';
console.warn(typeof(empty && null)); // 'string'




为什么声明"空&&空"返回空字符串?预期结果:错误。

2 个答案:

答案 0 :(得分:1)

关于&&(逻辑和运算符),docs中明确说明了这一点:

  

如果可以转换为false,则返回expr1;否则,返回expr2。因此,当与布尔值一起使用时,&&如果两个操作数都为真,则返回true;否则,返回false。

的确,它会在你的情况下返回第一个表达式 - 空字符串,按设计。在 if 的上下文中,语句被解释为boolean,然后您会得到一个您想要的True / False结果,或者您是否直接进行了演员。

答案 1 :(得分:0)

基本上,您的代码评估为:

如果空是" truthy"在typeof上运行null,否则在empty变量上运行它。 因此empty是假的,因为它是一个空字符串,这就是它运行typeof而不是null的原因。 stringtypeof字符串""