我理解
if( value ) {
}
如果值IS not null,undefined,NaN,空字符串(“”),0或false ,将评估为true
但是,确实如此
if (! value ) {}
如果值为空,未定义,NaN,空字符串(“”),0或false,则求值为true?
我正在使用Google Scripts,我正在从一个电子表格中获取数据,其中一些单元格是空白的。对于那些单元格,我想确保该值返回为“空字符串”,而不是任何其他可能性,例如,undefined,例如(有些正在返回'undefined',这是导致我寻求这个答案的原因)。
我想使用这段代码,只要它符合我的想法:
if (! value ) {value = ""}
(P.S。我从这个帖子开始:Is there a standard function to check for null, undefined, or blank variables in JavaScript?,但答案没有解决相反的情况)
答案 0 :(得分:1)
简而言之,是。
使用否定!
和双重否定!!
强制或将值强制转换为布尔值,这会将所有虚假值转换为false
,将所有其他值转换为true
,然后只需检查它的真或假就知道它们是布尔值。
所以,换句话说,如果你想要相反的布尔值,如果你想要实际值的布尔值,只需要前置!
,前置!!
!"" === true; //inverted
!!"" === false;//actual
答案 1 :(得分:0)
是的,那些将评估为真:
if(!NaN){console.log('true!');}
true!
if(!undefined){console.log('true!');}
true!
if(!null){console.log('true!');}
true!
if(!''){console.log('true!');}
true!
if(!0){console.log('true!');}
true!