javascript - (!value) 是否对所有假值都求值为真?

标签 javascript google-apps-script google-sheets boolean

我明白

if( value ) {

}

如果值不为 null、未定义、NaN、空字符串 ("")、0 或 false,则计算结果为 true

但是,确实 if(!值){} 如果值为 null、未定义、NaN、空字符串 ("")、0 或 false,则计算结果为 true?

我正在使用 Google 脚本,并且正在从电子表格中获取数据,其中某些单元格为空白。对于这些单元格,我想确保值返回为“空字符串”,而不是任何其他可能性,例如未定义(有些单元格当前返回“未定义”,这导致我寻求这个答案)。

我想使用这段代码,只要它能实现我认为的功能:

if (! value ) {value = ""}

(P.S.我从这个线程开始: Is there a standard function to check for null, undefined, or blank variables in JavaScript? ,但答案并没有解决相反的情况)

最佳答案

简而言之,

使用负数 ! 和双负数 !! 将值强制或转换为 boolean 值,这会将所有 false 值转换为 false 并将所有其他值设置为 true,然后只需检查其是否为 true 或 false,知道它们是 boolean 值。

因此,换句话说,如果您想要相反的 boolean 值,只需在前面添加 ! 如果您想要实际值的 boolean 值,则在前面添加 !!

 !"" === true; //inverted
!!"" === false;//actual

关于javascript - (!value) 是否对所有假值都求值为真?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25958492/

相关文章:

javascript - AngularJS:无法将 localStorage 项保存到作用域变量中

javascript - 如何实现Websocket?

javascript - 单击文本框时如何自动取消选中复选框

javascript - 为什么我的阵列可以用于发送电子邮件但不能用于共享

google-sheets - 如何沿着宽格式表查询(遍历)?

javascript - JS : How to concatenate variables inside appendChild()?

javascript - 使用 HTML 表单将数据传递给 Javascript 代码

google-apps-script - 使用 Google Apps 脚本获取其他用户云端硬盘文件的所有权

google-apps-script - 仅修改 Google 表格图表中的一个系列

google-sheets - 谷歌表格 : extract one column of a named range