10.24 2009-04-24 08:13 采纳率: 0%
浏览 308
已采纳

这是什么! ! (不是) JavaScript 中的操作符?

I saw some code that seems to use an operator I don't recognize, in the form of two exclamation points, like so: !!. Can someone please tell me what this operator does?

The context in which I saw this was,

this.vertical = vertical !== undefined ? !!vertical : this.vertical;

转载于:https://stackoverflow.com/questions/784929/what-is-the-not-not-operator-in-javascript

  • 写回答

26条回答 默认 最新

  • derek5. 2009-04-24 08:18
    关注

    Coerces oObject to boolean. If it was falsey (e.g. 0, null, undefined, etc.), it will be false, otherwise, true.

    !oObject  //Inverted boolean
    !!oObject //Non inverted boolean so true boolean representation
    

    So !! is not an operator, it's just the ! operator twice.

    Real World Example "Test IE version":

    let isIE8 = false;  
    isIE8 = !! navigator.userAgent.match(/MSIE 8.0/);  
    console.log(isIE8); // returns true or false 
    

    If you ⇒

    console.log(navigator.userAgent.match(/MSIE 8.0/));  
    // returns null  
    

    but if you ⇒

    console.log(!!navigator.userAgent.match(/MSIE 8.0/));  
    // returns true or false
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(25条)

报告相同问题?

悬赏问题

  • ¥15 关于#网络安全#的问题:求ensp的网络安全,不要步骤要完成版文件
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥20 使用Photon PUN2解决游戏得分同步的问题
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM