检查JavaScript中的变量是否为空?

时间:2015-11-28 14:16:03

标签: javascript variables is-empty

有两种用于调查空/完整变量的JavaScript代码:

if(variable == ''){}

if(!variable){}

我测试了它们,我取得了相同的结果。现在我想知道,(首先)它们是否相同?并且(第二)哪一个更适合检查空/满变量?

var variable1 = 'string';
var variable2 = 12;
var variable3 = true;


if(variable1 == ''){alert('empty-one');}
if(variable2 == ''){alert('empty-one');}
if(variable3 == ''){alert('empty-one');}

if(!variable1){alert('empty-two');}
if(!variable2){alert('empty-two');}
if(!variable3){alert('empty-two');}

如您所见,没有alert

3 个答案:

答案 0 :(得分:3)

在javascript null,'',0,NaN,undefined中,在javascript中考虑 falsey

从某种意义上说,你可以双向检查空白

但是您的第一个代码是''

你的第二个条件是检查你的价值是(null,'',0,NaN,undefined)

在我看来,你的第二个条件比第一个更好,因为我不必单独检查null,'',0,NaN,undefined

答案 1 :(得分:3)

首先不是标准的,它只适用于定义的空字符串。

如果价值不是真实的(意味着有意义的话),那么其他将起作用

例如var a;

a == '' will give false result
! a     will produce true

e.g。 var a = null;

a == '', // false
! a      // true

var a = false;

a == '' // fase
! a     // true

var a = NaN

a == ''  // false
! NaN     // true

true == 'true' // false, Boolean true is first converted to number and then compared

0 == '' // true, string is first converted to integer and then compared

==使用The Abstract Equality Comparison Algorithm来比较两个操作数

有关详细信息,请访问http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3

答案 2 :(得分:1)

不,他们不相同。如果首先它检查variable的值是否等于空字符串('')。因此,如果variable的值为'',则情况首先为真。但对于所有虚假的值,即 false, 0, '', null, undefined,第二种情况都是正确的。