! preceding function in javascript?
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
What does the exclamation mark do before the function?
今天我第一次看到这样的函数:
1 | !function(){}(); |
前面的感叹号是用来做什么的?我假设它的功能与:
1 | (function(){})(); |
但是…这是怎么回事?
前面的
1 2 3 4 5 | function(){}(); SyntaxError: Unexpected token ( !function(){}(); >>true |
我试过了,结果还是真的。函数返回
1 2 3 | !function(){}(); ^ ^ ^ C A B |
- a.
function(){} 是一个空的匿名函数 - b.
() 执行函数(a),返回undefined 。 - c.
! 否定undefined ,变成true 。
我想他们用这个技巧来打代码高尔夫或是模糊的代码。实际使用那是一种坏习惯
在浏览器地址栏中尝试
它只是让JavaScript解析器将其解析为表达式,这是执行它所必需的。