相关疑难解决方法(0)

使用"let"和"var"在JavaScript中声明变量有什么区别?

ECMAScript 6介绍了该let声明.我听说它被描述为"本地"变量,但我仍然不太确定它与var关键字的行为有何不同.

有什么区别?何时应该let使用var

javascript scope var let ecmascript-6

4199
推荐指数
28
解决办法
111万
查看次数

JavaScript中的(function(){})()构造是什么?

我曾经知道这意味着什么,但我现在正在努力...

这基本上是说document.onload吗?

(function () {

})();
Run Code Online (Sandbox Code Playgroud)

javascript iife

739
推荐指数
13
解决办法
27万
查看次数

将整个Javascript文件包装在"(function(){...})()"之类的匿名函数中的目的是什么?

我最近一直在阅读很多Javascript,并且我注意到要导入的.js文件中的整个文件包含如下所示.

(function() {
    ... 
    code
    ...
})();
Run Code Online (Sandbox Code Playgroud)

这样做的原因是什么,而不是一组简单的构造函数?

javascript scope coding-style iife

572
推荐指数
6
解决办法
10万
查看次数

解释封装的匿名函数语法

摘要

你能解释一下JavaScript中封装的匿名函数语法背后的原因吗?为什么这样做:(function(){})();但这不是:function(){}();


我知道的

在JavaScript中,可以创建一个这样的命名函数:

function twoPlusTwo(){
    alert(2 + 2);
}
twoPlusTwo();
Run Code Online (Sandbox Code Playgroud)

您还可以创建匿名函数并将其分配给变量:

var twoPlusTwo = function(){
    alert(2 + 2);
};
twoPlusTwo();
Run Code Online (Sandbox Code Playgroud)

您可以通过创建匿名函数来封装代码块,然后将其包装在括号中并立即执行:

(function(){
    alert(2 + 2);
})();
Run Code Online (Sandbox Code Playgroud)

这在创建模块化脚本时非常有用,可以避免使当前作用域或全局作用域混乱,并且可能存在冲突的变量 - 例如Greasemonkey脚本,jQuery插件等.

现在,我理解为什么会这样.括号包含内容并仅公开结果(我确定有更好的方法来描述),例如with (2 + 2) === 4.


我不明白

但我不明白为什么这也不起作用:

function(){
    alert(2 + 2);
}();
Run Code Online (Sandbox Code Playgroud)

你能解释一下吗?

javascript syntax anonymous-function

364
推荐指数
4
解决办法
7万
查看次数

围绕对象/函数/类声明的括号是什么意思?

我是JavaScript和YUI的新手.在YUI库示例中,您可以找到此构造的许多用法:

(function() {
    var Dom = YAHOO.util.Dom,
    Event = YAHOO.util.Event,
    layout = null,
        ...
})();
Run Code Online (Sandbox Code Playgroud)

我认为最后几个括号是在声明之后执行该函数.

...但是围绕函数声明的前一组括号怎么样?

我认为这是一个范围问题; 这是将内部变量隐藏到外部函数和可能的全局对象中.是吗?更一般地说,这些括号的机制是什么?

javascript syntax

286
推荐指数
6
解决办法
11万
查看次数

用于自动执行匿名JavaScript函数的括号的位置?

我最近将当前版本的json2.js与我在项目中的版本进行了比较,并注意到函数表达式的创建和自我执行方式有所不同.

用于在括号中包装匿名函数然后执行它的代码,

(function () {
  // code here
})();
Run Code Online (Sandbox Code Playgroud)

但现在它将自动执行的函数包含在括号中.

(function () {
  // code here
}());
Run Code Online (Sandbox Code Playgroud)

有通过CMS在接受答案的注释解释JavaScript的封装匿名函数的语法是"既:(function(){})();(function(){}());有效."

我想知道有什么区别?前者是否通过绕过全局匿名函数来占用内存?括号应该放在哪里?

javascript syntax anonymous-function iife

105
推荐指数
3
解决办法
1万
查看次数

这个符号在JavaScript中意味着什么?

这是什么?

这是一系列关于JavaScript中语法的问题.这也是社区Wiki,因此邀请每个人参与维护此列表.

为什么是这样?

Stack Overflow不允许搜索特定字符.因此,在搜索运算符和其他语法标记时,很难找到许多关于运算符和其他语法标记的问题.这也使得关闭重复更加困难.以下列表是为了解决此问题.

主要思想是在Stack Overflow上链接现有问题,因此我们更容易引用它们,而不是复制ECMAScript规范中的内容.

此外,这是PHP符号引用的公然副本.我们需要一个JS.


请帮忙.编辑并添加指向其他运算符/语法参考的链接,或者如果您无法在特定语法上找到好的问题/答案,请添加此问题的答案并将其链接

javascript

86
推荐指数
1
解决办法
14万
查看次数

(function(){})()构造如何工作以及人们为什么使用它?

(function() {})()并且它的jQuery特定表亲(function($) {})(jQuery)一直在Javascript代码中弹出.

这些结构如何工作,它们解决了哪些问题?

举例赞赏

javascript

78
推荐指数
7
解决办法
5803
查看次数

什么!function($){$(function(){})}(window.jQuery)呢?

我正在使用twitter bootstrap创建一个站点,并试图初始化工具提示.除了添加如下内容:

 $("[rel=tooltip]").tooltip()  
在application.js中,除非我保留,在bootstrap文档中使用以下代码,我的工具提示不会初始化.

!function ($) {

  $(function(){  

  })

}(window.jQuery)

上面的代码是做什么的?

jquery jquery-tooltip

61
推荐指数
1
解决办法
3万
查看次数

这种做法在JavaScript中被称为什么?

当您将JavaScript代码包装在这样的函数中时:

(function(){

  var field = ...;
  function doSomthing(){...
  ...


})();
Run Code Online (Sandbox Code Playgroud)

我注意到这在很多网页上为我修复了范围问题.这种做法叫做什么?

javascript design-patterns terminology

57
推荐指数
5
解决办法
4057
查看次数