Noob问题。
在Google Apps脚本中,我有一个if语句,用于检查数组中项目的值,该值可以是数字,也可以是空白:
var array = new Array();
array[0] = 1;
if (array[0] == '') {
// this dos not execute
}
array[0] = 0;
if (array[0] == '') {
// this executes
}
执行第二个if语句的内容,因为它似乎将0视为空字符串。当我在调试器中查看array [0]的值时,它显示0.0(所以它肯定是一个数字变量)。
我首先考虑使用:
if (array[0] != 0 || array[0] == '')
但我无法使用它,因为实际的if语句是一个OR运算符链,如下所示:
if (array[0] == '' || array[1] == '' || array[2] == '')
并且数组中的其他值实际上是字符串,而不是数字。
如何编写if语句以区分0数值和无数据(空白)?
答案 0 :(得分:4)
使用===
0 == '' // true
0 === '' // false
Which equals operator (== vs ===) should be used in JavaScript comparisons?
答案 1 :(得分:0)
在javascript 0
中,''
,false
被称为falsy。如果你在两个假值上使用==
运算符 - 它总是正确的。除非您使用===
运算符。
答案 2 :(得分:-2)
您可以使用===
例如:
var array = new Array();
array [0] = 0;
if(array [0] ===''){//这不执行}
if(array [0] ==''){// this execution}