开发者社区> 问答> 正文

javascript里两个叹号“!!”表示什么意思

阅读别人的代码,看到了!!foo这样的写法,非常疑惑,Google也不知道怎么才能搜出来,有人能解释下么?

展开
收起
a123456678 2016-03-10 18:25:12 3193 0
2 条回答
写回答
取消 提交回答
  • 叹号是一元运算符,即非、否定,会对值的类型进行转换

    一个叹号表示把值的类型转换为对应相反的boolean值(如,true/false)

    两个叹号表示在把值转换为原始值对应的boolean的值

    2019-07-17 18:58:08
    赞同 展开评论 打赏
  • 返回是true;再加个!

    !!0>1
    就是false了.两个感叹号表示非非,跟没有感叹号的效果一样.
    你想知道的是既然两个感叹号跟没有感叹号的效果一样,为什么要用两个感叹号吧
    两个感叹号可以做类型转换,比如下面这段代码

    !!(a & 16)
    a & 16可能是个数值,如果想返回true和false。两个感叹号这里就其作用了,原因如下:
    0在boolean里面表示false,其余的表示为true;那么如果a & 16 = 1,加两个双引号就返回true,如果为0就返回false.

    2019-07-17 18:58:08
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Javascript中的函数 立即下载
JavaScript函数 立即下载
Javascript中的对象 立即下载