JavaScript中的值是什么'falsey',这意味着它们在表达式中评估为false if(value),value ?并且!value?
关于Stack Overflow上的falsey值的目的已有一些讨论,但没有详尽的完整答案列出所有的falsey值.
我在MDN JavaScript Reference上找不到任何完整列表,我很惊讶地发现在JavaScript中查找完整,权威的虚假值列表时的最佳结果是博客文章,其中一些有明显的遗漏(例如,NaN),并且没有一个像Stack Overflow这样的格式,可以添加评论或替代答案来指出怪癖,惊喜,遗漏,错误或警告.因此,制作一个似乎是有意义的.
为什么JavaScript函数undefined默认返回而不是返回null?规范中这是一个完全任意的选择,还是存在一个更大的ECMAScript行为上下文,可以在其中理解这个特定选择?
function a() {}
a();
// undefined
Run Code Online (Sandbox Code Playgroud)
null和之间有什么区别undefined?是否存在基于规范的原因,为什么它undefined更适合用作默认返回值,或者是一个任意选择?