Javascript 不同的生活方式?
两者之间有什么区别吗Javascript 不同的生活方式?,javascript,iife,Javascript,Iife,两者之间有什么区别吗 (function (){alert('')} ()) vs 这两种方法都有效,但我应该在什么时候使用它们?包装括号仅用于强制解析器将构造解析为函数表达式,而不是函数声明。这是必要的,因为调用函数声明是非法的,但调用函数表达式是合法的 为此,调用括号的位置无关紧要。如何强制将函数解析为表达式也无关紧要。以下措施也同样有效: !function () { alert('') }(); ~function () { alert('') }(); //
(function (){alert('')} ())
vs
这两种方法都有效,但我应该在什么时候使用它们?包装括号仅用于强制解析器将构造解析为函数表达式,而不是函数声明。这是必要的,因为调用函数声明是非法的,但调用函数表达式是合法的 为此,调用括号的位置无关紧要。如何强制将函数解析为表达式也无关紧要。以下措施也同样有效:
!function () {
alert('')
}();
~function () {
alert('')
}();
// Any unary operator will work
如果决定使用换行括号(分组运算符),请记住这一点。这只是一种风格上的选择,如果你愿意,你可以忽略它。它们都做同样的事情 JSLint建议您使用第一个,在分组括号中包含执行括号,这样所有内容都可以整齐地分组在一起 值得一提的是,我个人认为您的第二个示例更加清晰,因为在扫描代码时,您可以看到执行从函数表达式中脱颖而出
虽然不是复制品,但覆盖了相似的地面,因此可能值得一看。不,这只是一种风格选择。用你喜欢的。但请注意,@RoyiNamir,偶数运算符也能工作:-)@Barmaley.exe我要试试:-)是的,任何一元运算符都能工作。甚至
无效
,删除
,类型
。。。他们只是不太可读!
!function () {
alert('')
}();
~function () {
alert('')
}();
// Any unary operator will work