首页 > 解决方案 > if(a) & if(a!=null && a!=undefined) 的区别

问题描述

在 DOM 中填充数据时,我面临很多问题,因为我想使用的对象或数组中没有值。

例如,我有一个对象:

var obj = {
  name: 'rajat',
  age: 20
}

我正在动态填充 HTML 元素上的数据,如下所示:

<p id='paragraph'></p>  

var data = document.getElementById('paragraph');
data.innerHTML = obj.name;

现在,我只想在为 HTML 元素赋值之前添加条件,我对if(obj.a)and感到困惑if(obj.a!=undefined && obj.a!=null)

谁能解释一下两者的区别?

标签: javascripthtml

解决方案


if (obj.a)

测试是否obj.a不是null, undefined, NaN, 0, false, 或""(空字符串)。

if (obj.a != undefined && obj.a != null)

只检查nulland undefined, 和 完全一样

if (obj.a != null)

因为这!=就是定义的方式。事实上,这是使用!=优于. 的少数情况之一!==

[编辑] 在评论中指出,因为-0存在于 JavaScript 中(就像它在所有 IEEE 浮点系统中一样),所以这也是“错误的”。


推荐阅读