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

检查JavaScript中的变量是否为空?,javascript,variables,is-empty,Javascript,Variables,Is Empty,有两种JavaScript代码用于调查空/满变量: if(variable == ''){} if(!variable){} 我测试了它们,得到了相同的结果。现在我想知道,(首先)它们是等价的吗?和(第二)哪一个是检查空/满变量的标准 var variable1='string'; 变量2=12; var variable3=真; 如果(variable1=''){alert('empty-one');} 如果(variable2=''){alert('empty-one');} 如果(v

有两种JavaScript代码用于调查空/满变量:

if(variable == ''){}

if(!variable){}
我测试了它们,得到了相同的结果。现在我想知道,(首先)它们是等价的吗?和(第二)哪一个是检查空/满变量的标准

var variable1='string';
变量2=12;
var variable3=真;
如果(variable1=''){alert('empty-one');}
如果(variable2=''){alert('empty-one');}
如果(variable3=''){alert('empty-one');}
如果(!variable1){alert('empty-two');}
如果(!variable2){alert('empty-two');}
如果(.No.3){警报(“空2”);} /代码> < >在JavaScript <代码> null中,'',0,楠,未定义 >在JavaScript中考虑<强> <强> > 

在某种意义上,您可以双向检查空

但是您的第一个代码正在检查它是不是
'

第二个条件是检查您的值是否为其中一个
(null',0,NaN,未定义)


在我看来,您的第二个条件比第一个条件更好,因为我不必分别检查
null',0,NaN,undefined
,第一个条件不是标准条件,它只适用于已定义的空字符串

如果价值不真实(意味着有意义的东西),其他的方法也会起作用

e、 g var a

a == '' will give false result
! a     will produce true
e、 g.var a=零

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

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
=
使用
抽象等式比较算法
比较两个操作数


有关更多详细信息,请访问

否,它们不是等效的。在case first中,它检查
变量
的值是否等于空字符串(“”)。因此,如果变量
的值为”,则case first为true。但第二种情况将适用于所有错误的值,即
false、0',null、未定义的

你对“空”的定义是什么?
变量
总是字符串吗?它可能是一个数字、一个对象、一个数组、一个布尔值、未定义、空值…?可能是关于“更标准”问题的最佳答案的重复(如果存在的话),这取决于它。这取决于您希望使用哪种类型的变量。此外,提供适当类型的“空”变量将对您帮助最大。例如,如果您希望变量
someString
是字符串,那么当您不想传递它时,您仍然应该传递一个空字符串,即
考虑false——术语
false
(和
truthy
)我记得你曾在另一篇文章中指出过这一点。谢谢你的指点。我已经更新了我的答案@Jaromandax我能说什么,我喜欢falsey:pyou错过了一个非常重要的考虑因素,
var a=0
<代码>a=''真的很棒。。说得好。。你能解释一下吗,在比较过程中,如果只有一个操作数是布尔的,那么它会转换成整数,但这里的逻辑是什么?我忘了另一个<代码>变量a=[]
a=''
也是真的你想让我解释一下吗?