可能重复:
感叹号在功能之前做了什么?
我今天第一次看到了这样的格式化的函数:
!function(){}();
Run Code Online (Sandbox Code Playgroud)
前面的感叹号是什么?我认为它的功能与:
(function(){})();
Run Code Online (Sandbox Code Playgroud)
但是......这里发生了什么?
Mik*_*wis 43
前面的内容!采用un-parseable语句,并允许JS引擎解析它,然后返回true.
function(){}();
SyntaxError: Unexpected token (
!function(){}();
>>true
Run Code Online (Sandbox Code Playgroud)
Thi*_*ter 13
它只是让JavaScript解析器将其解析为表达式,这是执行它所必需的.
Min*_*ang 12
我试过了,它回来了.该函数返回undefined,并且!undefined为true.
!function(){}();
^ ^ ^
C A B
Run Code Online (Sandbox Code Playgroud)
function(){}是一个空的匿名函数()执行函数(A),返回undefined!否定undefined,成为true我认为他们将这个技巧用于代码高尔夫或混淆代码.实际使用它是一种不好的做法
试试javascript:alert(!function(){}())你的浏览器地址栏吧
| 归档时间: |
|
| 查看次数: |
13109 次 |
| 最近记录: |