Javascript IF-null-ELSE-IF-ELSE的正确语法
我想检查我的json数据是否为空/未定义。我有下面的代码,但它似乎跳过了检查,直接转到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上 这
其他
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
。