回答

收藏

JavaScript 中的!!是不是运算符?

技术问答 技术问答 287 人阅读 | 0 人回复 | 2023-09-11

我看到一些代码似乎使用了我不知道的操作符,以两个感叹号的形式出现,如下所示:!. 有人能告诉我操作员在做什么吗?
% Z: p" o! O1 T7 p+ u) [我看到的背景是,
0 E, j/ X* u4 ]0 }! P; K- Mthis.vertical = vertical !== undefined ? !!vertical : this.vertical;                * O7 e7 `+ A% {+ `+ N9 B5 A9 m
    解决方案:                                                                . T3 o' H5 _1 d8 J# ~7 O( a
                                                                转换Object为boolean. 如果是falsey(例如0,null,undefined等等),这将是false,否则,true。4 {* @. I. @, w' P( v1 e) g3 [
!oObject  // inverted boolean!!oObject // non inverted boolean so true boolean representation所以!!不是运算符,只是!运算符两次。
, z! `) `1 q. P& y* E$ c$ F0 g8 t! k% L, c现实世界示例测试 IE 版本”:0 [4 K; q7 ^* C4 C8 a+ z+ S" V+ O
const isIE8 = !! navigator.userAgent.match(/MSIE 8.0/);  console.log(isIE8); // returns true or false 如果你?) C7 b8 n$ ^/ S! O# F6 p: q
console.log(navigator.userAgent.match(/MSIE 8. / / / returns either an Array or null  但是如果是你的话  }# A! D+ K; a1 J3 e5 @
console.log(!!navigator.userAgent.match(/MSIE 8. / / / returns either true or false
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则