回答

收藏

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

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

我看到一些代码似乎使用了我不知道的操作符,以两个感叹号的形式出现,如下所示:!. 有人能告诉我操作员在做什么吗?" d. T- ?* |) M9 ]. o# `
我看到的背景是,* n- k0 I4 c! X2 M- c/ O
this.vertical = vertical !== undefined ? !!vertical : this.vertical;               
; E6 h) T; r; F/ V8 P- j6 Q$ q& O) ^: D    解决方案:                                                                ( [) u; {/ j, M% _# G
                                                                转换Object为boolean. 如果是falsey(例如0,null,undefined等等),这将是false,否则,true。7 t  X3 U9 M& ]: _5 }; @
!oObject  // inverted boolean!!oObject // non inverted boolean so true boolean representation所以!!不是运算符,只是!运算符两次。
- @5 b- Q2 s' c" ^  B+ N2 m# u  J现实世界示例测试 IE 版本”:! O! @3 X) C! M& }  T" b, ^, p
const isIE8 = !! navigator.userAgent.match(/MSIE 8.0/);  console.log(isIE8); // returns true or false 如果你?
3 P) J) x% n/ ^  G% j/ M- a8 Zconsole.log(navigator.userAgent.match(/MSIE 8. / / / returns either an Array or null  但是如果是你的话  ]6 b% [4 W, k4 n' [& u) q
console.log(!!navigator.userAgent.match(/MSIE 8. / / / returns either true or false
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则