JS学习笔记
立即执行函数
- 在表达式后加上()就能立即执行
- 只有表达式才能被执行
Ep:
var demo = function test (){}(); 但是这种方式会使得 demo在执行之后 会失去对原来函数的索引 下一次demo执行就不会变成函数失去了定义函数的功能,成一次性
Function test(){} 这只是一种函数声明 不能直接执行
若想执行 需要用到隐式转换 +function test(){…}(); ()是计算符号 会把(function test(){…})变成表达式
所以(function test (){…})() 可以直接执行 数学符号优先级高所以 (function(){…}())也能执行
Function test(){
var arr = []
For(var i=0 :i<10;i++){
arr[i](定义语句)=function (){
console.log(i)(执行语句)
}
}
这个函数因为闭包原因 最后会打印10个10 ,那如何改成0-9
在中间加个立即执行函数,会相当于在里面生成彼此独立的立即执行函数
(function(j){
Arr[j]=function(){
Console.log(j);
}
}(i))
在es6里面 可以用 let替换var 达到一样的效果