f()和(f())之间的任何差异
Any difference between f() and (f())?
之间的任何差异
var myfunc = (function () { return function () { ... } }());
和
var myfunc = function () { return function () { ... } }();
这只是一个风格问题,还是第一种形式的()周围有更多?
没有。或者至少在你的例子中没有。
只有当函数关键字是语句中的第一个标记时,外部parens才重要。
// cool
var foo = function(){}();
var foo = (function(){}());
// also cool
(function(){}());
// not cool, syntax error
// parsed as function statement, expects function name which is missing
function(){}();
// also not cool, syntax error
// declares a function, but can't be executed immediately
function foo(){}();
当function
是语句中的第一个令牌时,它是一个函数声明(想想名为函数的),它在所有其他上下文中的行为与function
略有不同。前导paren强制解析将其视为函数表达式(想想匿名函数),从而允许立即执行。
请参阅:在JavaScript中,函数表达式和声明之间有什么区别?
如果您用其他东西(如变量声明)开始行或语句,那么从技术上讲,这根本不重要。
没有区别,尽管Crockford建议使用前者,以确定它被视为函数表达式。
欲了解更多信息,请阅读以下内容:
- 立即调用函数表达式(IIFE)
- 命名函数表达式已解密
没有技术上的区别,这只是一种用于可读性的惯用风格,用于在一开始就表明它是一个自调用函数。
没有区别,只是风格的问题。两者都是执行函数,它们返回变量中返回的任何内容,并且返回一个函数检查一下
目的是避免全局范围,在(function (){ return function(){}}());
前面添加var myfunc =
本质上会破坏的目的
比较两个
(function(){...do something...}());
此函数在括号内的局部作用域中运行。
var myfunc = function(){};
此函数在全局范围内运行。为什么不这样做呢?因为你可能会让自己与其他方法、var
以及插件的var
发生命名冲突,并且var
保存在全局范围内会阻碍你的应用程序性能。
我执行
(function() {})();
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- 是否有任何JavaScript UI组件可以显示字符串之间的差异
- Javascript集:任何覆盖元素之间比较的方法
- 效率:整数数组的一个子集中两个项之间的最大差值
- JavaScriptV5中的绑定和JQuery之间有任何关系吗
- JavaScript:获取MySQL时间戳和当前日期之间的天数差
- Regex,它搜索一个起始字符,介于两者之间的任何字符,然后是一个结束字符
- 返回两个日期时间单元格之间的差值
- Angular JS:使用ng重复计算每行两次之间的差
- 如何在javascript中获得两个原始日期之间的分钟差
- 正则表达式选择任何 html 标记之间的字符串
- jQuery - 删除表格行(如果任何单元格包含介于 X 和 Y 之间的值)
- Reg ex 表示特定字符之后和其他字符之间的任何内容
- 如何编写一个正则表达式,匹配除左括号和右括号以及它们之间的任何内容之外的所有内容
- 坐标之间的音差地理位置距离
- 正则表达式用于在 JavaScript 中查找任何两个数值(范围)之间的所有数字
- 我如何使用 javascript 或 jquery 在单击时在任何 css 属性之间切换
- 什么's是Array.of(n)、Array(n)和Array=[n]之间的差值
- 如何在javascript中计算上午10:00到下午1:00之间的分钟差
- 删除逗号和任何字母之间的空格