我正在查看其他人编写的一些代码,我注意到这个奇怪的javascript语法..基本上,它看起来像这样:
// This is understandable (but I dont know if it have relevance)
var re = new RegExp("^" + someVar + "_", "i");
// !!~ ??? What is this black magic?
if (!!~varA.search(re)) { ... }
Run Code Online (Sandbox Code Playgroud)
这是难以谷歌的事情之一..任何Javascript gurues可以解释这个?
Poi*_*nty 11
像这样的一元运算符只需要从右到左解释.~是按位"not"运算符,!是布尔逆.那么,那三个:
false或true)这~是最棘手的."搜索"例程(我推测)-1在没有找到任何内容时返回.该~操作者接通-1到0,所以~允许一个解释"搜索"返回值true(非零)如果目标被发现,和false(零)如果不是.
随后的应用!- 两次 - 强制结果为真正的布尔值.它被应用两次以保持true/ falsesense.编辑请注意,在此特定代码中,强制转换为boolean并不是必需的.if只需~运算符的结果,语句的正常语义就可以正常工作.
| 归档时间: |
|
| 查看次数: |
250 次 |
| 最近记录: |