我知道下面是JavaScript中检查变量是否为空的两种方法,但我不知道哪一种是最佳实践。
我应该:
if (myVar) {...}
or
if (myVar !== null) {...}
我知道下面是JavaScript中检查变量是否为空的两种方法,但我不知道哪一种是最佳实践。
我应该:
if (myVar) {...}
or
if (myVar !== null) {...}
当前回答
你在这里列出的两个条件语句并不比另一个更好。您的使用方法取决于具体情况。顺便说一下,在第二个例子中有一个错别字。感叹号后面只能有一个等号。
第一个示例确定myVar中的值是否为true,并执行{…}中的代码
第二个例子计算myVar是否不等于null,如果为真,它将在{…}中执行你的代码。
我建议查看条件语句以获得更多技巧。一旦你熟悉了它们,你就可以决定什么时候需要它们。
其他回答
如果myVar为空,则如果block不执行,否则将执行。
if (myVar != null){…}
它们不相等。如果myVar为真(即在条件中为真),第一个将执行if语句后面的块,而第二个将在myVar为任何值而不是null时执行块。
在JavaScript中唯一不是真值的值是以下(又名假值):
零 未定义的 0 ""(空字符串) 假 南
看看这个帖子:http://enterprisejquery.com/2010/10/how-good-c-habits-can-encourage-bad-javascript-habits-part-2/
它有一些很好的JavaScript技巧,但它确实提到的一件事是你应该检查null,如:
if(myvar) { }
它还提到了你可能没有意识到的“虚假”。
你在这里列出的两个条件语句并不比另一个更好。您的使用方法取决于具体情况。顺便说一下,在第二个例子中有一个错别字。感叹号后面只能有一个等号。
第一个示例确定myVar中的值是否为true,并执行{…}中的代码
第二个例子计算myVar是否不等于null,如果为真,它将在{…}中执行你的代码。
我建议查看条件语句以获得更多技巧。一旦你熟悉了它们,你就可以决定什么时候需要它们。
If(0)表示false, If(-1,或除0之外的任何其他数字)表示true。以下值不是真值,null, undefined, 0, ""(空字符串),false, NaN
永远不要使用id之类的数字类型
if (id) {}
对于可能值为0的id类型,我们不能使用if (id){},因为if(0)将意味着false,无效,这是我们想要的,它意味着有效为true id数。
所以对于id类型,我们必须使用以下方法:
if ((Id !== undefined) && (Id !== null) && (Id !== "")) {
} else {
}
对于其他字符串类型,我们可以使用if (string){},因为null, undefined,空字符串都将计算为false,这是正确的。
if (string_type_variable) { }