在Javascript中是否检查值是否为空且不是空字符串?我正在使用以下一个:
var data; //get its value from db
if(data != null && data != '') {
// do something
}
Run Code Online (Sandbox Code Playgroud)
但我想知道是否还有其他更好的解决方案.谢谢.
Ger*_*api 102
如果你真的想确认一个变量不是null而不是一个特殊的空字符串,你会写:
if(data !== null && data !== '') {
// do something
}
Run Code Online (Sandbox Code Playgroud)
请注意,我更改了您的代码以检查类型相等(!==| ===).
但是,如果您只想确保代码仅针对"合理"值运行,那么您可以像其他人已经说过的那样编写:
if (data) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
因为在javascript中,空值和空字符串都等于false(即null == false).
这两部分代码之间的区别在于,对于第一部分,每个非特定空值或空字符串的值都将进入if.但是,在第二个,每一个真正的十岁上下的价值将进入if:false,0,null,undefined和空字符串,不会.
小智 13
两个null和一个空字符串都是JS中的虚假值.因此,
if (data) { ... }
Run Code Online (Sandbox Code Playgroud)
完全足够了.
旁边的注释:我会避免在我的代码中有一个可以在不同类型中显示的变量.如果数据最终将是一个字符串,那么我最初将使用空字符串定义我的变量,因此您可以这样做:
if (data !== '') { ... }
Run Code Online (Sandbox Code Playgroud)
没有null(或任何奇怪的东西data = "0")阻碍.
而不是使用
if(data !== null && data !== '' && data!==undefined) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
您可以使用以下简单代码
if(Boolean(value)){
// do something
}
Run Code Online (Sandbox Code Playgroud)
我经常测试真值以及字符串中的空格:
if(!(!data || data.trim().length === 0)) {
// do something here
}
Run Code Online (Sandbox Code Playgroud)
如果您有一个由一个或多个空格组成的字符串,它将评估为真。
if (data?.trim().length > 0) {
//use data
}
Run Code Online (Sandbox Code Playgroud)
所述?. 可选的链接操作者将短路和返回undefined如果数据是nullish(null或undefined),其将计算为在虚假if表达。
| 归档时间: |
|
| 查看次数: |
214592 次 |
| 最近记录: |