首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

js中(function(){})()的写法用处

以前看到老师写js的单例模式时疑惑为什么要这么写 var singleton = (function () { var privateVariable; function privateFunction...)... } }; }()); 后来查了下资料,js中(function(){…})()立即执行函数写法理解,终于了解了。...来来来,首先嘛,JS中函数有两种命名方式 1、一种是声明式。 而声明式会导致函数提升,function会被解释器优先编译。即我们用声明式写函数,可以在任何区域声明,不会影响我们调用。...function XXX(){}1 2、一种是函数表达式 函数表达式我们经常使用,而函数表达式中的function则不会出现函数提升。而是JS解释器逐行解释,到了这一句才会解释。...var fn2 = function(){}();//对,就是这样 function fn1(){}();//{}会被忽略 而平常的function(){}则是一种声明式,如果加上()括号后,则会被编译器认为是函数表达式

3.4K00

JS基础测试: a();function a(){console.log(1)}function a(){..}输出是多少?​

预处理会跳过执行语句,只处理声明语句,同样也是按从上到下按顺序进行的。包括变量和函数在内的所有声明都会在任何代码被执行前首先被处理。...注意1:对于声明并赋值的语句,例如 var a = 1,在预处理阶段会把这句话拆成两句: var a; a = 1; 也就是说,赋值或其他逻辑运算是在执行阶段进行的,在预处理阶段会被忽略。...注意2: (1)函数声明的提升优先于变量声明的提升; (2)重复的var声明会被忽略掉,但是重复的function声明会覆盖掉前面的声明。...2.在预处理阶段,声明的变量的初始值是undefined, 采用function声明的函数的初始内容就是函数体的内容。 3.

3.2K20

【说站】js声明变量的提升

js声明变量的提升 1、var声明的变量将提升到当前作用域的顶部,而不是全局。只有声明提升,赋值不提升。不使用var声明的变量默认挂在全局对象window下。...2、如果是函数变量提升,相当于var add; add = function...。...实例 // 变量提升到当前作用域顶部 function add(num1, num2) {     console.log(sum); // undefined     var sum = num1 +...,b为具名函数,函数整体提升 var a = function() {  } function b() {  } 由于变量的增加,sum将被提升到函数的第一行varsum;因此,第一个log是undefined...以上就是js声明变量的提升,希望对大家有所帮助。更多js学习指路:js教程 推荐操作环境:windows7系统、jquery3.2.1版本,DELL G3电脑。

2.2K40

JS学习系列 07 - 标签声明(Label Statement)

可能有的同学会想到这样: function foo () { for (var i = 0; i < 10; i++) { console.log(i); for...这就是goto语句的作用,通过标签声明一个代码块,然后在任何地方都可以执行 goto 'labe' 来进行程序跳转。...也就是说,如果一段代码既能够以语句的方式解析,也能用语法的方式解析,在JS中,会优先按语句来解析。 { a : 1 } 复制代码 上面这段代码,在JS中的执行结果是什么呢?...当把{}当做是代码块的时候,里面的 a : 1,是不是很像C语言goto语句的标签声明呢?...这也是立即执行函数的原理: (function () { console.log('IIFE'); })() 复制代码 小括号把函数声明变成了函数表达式,后面再跟一个小括号表示调用。 4.

2.8K20

JS学习系列 07 - 标签声明(Label Statement)

可能有的同学会想到这样: function foo () { for (var i = 0; i < 10; i++) { console.log(i); for...这就是goto语句的作用,通过标签声明一个代码块,然后在任何地方都可以执行 goto 'labe' 来进行程序跳转。...也就是说,如果一段代码既能够以语句的方式解析,也能用语法的方式解析,在JS中,会优先按语句来解析。 { a : 1 } 上面这段代码,在JS中的执行结果是什么呢? 大家思考2分钟.......当把{}当做是代码块的时候,里面的 a : 1,是不是很像C语言goto语句的标签声明呢?...这也是立即执行函数的原理: (function () { console.log('IIFE'); })() 小括号把函数声明变成了函数表达式,后面再跟一个小括号表示调用。 4.

10810
领券