Javascript变量声明,为什么这是合法的?

标签 javascript syntax declaration

我刚刚第一次遇到这种变量声明语法。

var myVar = (function() {
    return 1;
})();

我的两个主要问题是..

它叫什么?为什么它是合法的?

如果以前有人问过这个问题,请原谅我,我尝试四处搜索,但我不知道这个符号叫什么,所以我找不到任何东西。

另外,我要补充一下,这两组括号的作用是什么?第一个包含函数,第二个为空。

最佳答案

自执行函数通常用于封装上下文并避免名称串通。您在 (function(){..})() 内定义的任何变量都不是全局的。

以下代码:

var same_name = 1;

var myVar = (function() {
    var same_name = 2;
    console.log(same_name);
})();

console.log(same_name);

产生以下输出:

1
2

通过使用此语法,您可以避免与 javascript 代码中其他地方声明的全局变量发生冲突。

关于Javascript变量声明,为什么这是合法的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23718743/

相关文章:

c - 为什么指针 (*) 和数组 ([]) 符号绑定(bind)到变量名而不是键入变量声明?

javascript - 作为开发人员如何禁用鼠标手势?

javascript - 如何将数组传递给 map ?句法

php - 这个带有插入符号的 PHP 语法是什么,它有什么作用?

mysql - php/mysql 查询连接

haskell - (共)递归定义如何在 Haskell 中工作?

c# - 声明中缺少部分修饰符..存在这种类型的另一个部分声明。我是初学者,只是在看书

javascript 在博主帖子中不起作用

javascript - 如果切换了侧边栏,则停止滚动/多余空间

javascript - 是否可以查询 !equalTo : null on Firebase?