Javascript IF-null-ELSE-IF-ELSE的正确语法

Javascript IF-null-ELSE-IF-ELSE的正确语法,javascript,Javascript,我想检查我的json数据是否为空/未定义。我有下面的代码,但它似乎跳过了检查,直接转到其他 if (events === null) { container.append(nano(nogig)); } else { events[0].start.good_date = good_date(events[0].start.date); container.append(nano(template, events[0])); } 第385行在这个JSfiddle上 这

我想检查我的json数据是否为空/未定义。我有下面的代码,但它似乎跳过了检查,直接转到
其他

if (events === null) {
    container.append(nano(nogig));
} else {
    events[0].start.good_date = good_date(events[0].start.date);
    container.append(nano(template, events[0]));
}
第385行在这个JSfiddle上

这将检查是否为null和未定义


这将检查空值和未定义。

如果使用
==
运算符而不是
==
运算符,那么针对
空值的测试也将匹配
未定义的
。也就是说,
undefined==null
将返回
true
,而
undefined==null
将返回
false
。所以试试这个:

if (events == null) {
演示:

或者,您可以显式测试这两个值:

if (events === null || events === undefined) {
或者您可以只测试一个falsy值:

if (!events) {

(…也会在
false
0
、空字符串和
NaN
上匹配,但这些值不太可能应用,并且在任何情况下,如果它们发生,您仍然希望
if
大小写匹配。)

如果使用
==
运算符而不是
==
运算符,则针对
null
的测试也将在
未定义的
上匹配。也就是说,
undefined==null
将返回
true
,而
undefined==null
将返回
false
。所以试试这个:

if (events == null) {
演示:

或者,您可以显式测试这两个值:

if (events === null || events === undefined) {
或者您可以只测试一个falsy值:

if (!events) {

(…也会在
false
0
、空字符串和
NaN
上匹配,但这些值不太可能应用,并且在任何情况下,如果它们发生,您仍然希望
if
大小写匹配。)

为什么使用===而不是==?@Kritner:请查看以了解原因。对,但是“null”类型如何匹配在没有对事件进行某种转换的情况下,是否曾经等效于(events)null?使用===运算符,对象将按是进行比较?正如布尔函数所说,这应该会得到预期的结果。也可以读到:我认为它涉及的问题与你所讨论的几乎相同hit@djikay:如果他想同时检查
null
undefined
,那么
==
是正确的解决方案。为什么使用===而不是==?@Kritner:请参阅以了解原因。对,但是“null”的类型如何能够等同于(事件)在没有对事件进行某种转换的情况下为null?使用===运算符,对象将按是进行比较?正如布尔函数所说,这应该会得到预期的结果。也可以读到:我认为它涉及的问题与你所讨论的几乎相同hit@djikay:如果他想检查
null
undefined
,以及
0
false
,则
==
是正确的解决方案,
NaN
'
。如果只想匹配
null
未定义的
,如果OP只想匹配
null
undefined
它们可以使用
==null
而不是
==null
。对于
0
false
,则条件应该类似于
events===undefined
NaN
'
。如果您只想匹配
null
undefined
,如果OP只想匹配
null
undefined
,则条件应该类似于
events===null |而不是
==null