| 学习时间 | 完成时间 ✅ | 重难点 | 疑问/遗漏 |
|---|---|---|---|
| 复习时间 | |||
立即执行函数
自动执行,执行完成以后立即释放 IIFE immdiately-invoked function
(function(){})();(function(){}())一定是表达式才能被执行符号执行函数声明变成表达式的方法函数声明之前加 + - ! 或者加个1&&运算 ||+function test() {}();此时test也会立即执行function test() {var arr=[];var i=0;for(;i<10;) {arr[i]=function() {document.write(i+' ')}i++;}return arr;}var myArr=test();for(var j=0;j<10;j++){myArr[j](); //打印 十个10,形成闭包}改造function test() {var arr=[];for(var i=0;i<10;i++){(function(j){arr[j]=function(){document.write(j)}})(i)}return arr;}var myArr=test();for(var j=0;j<10;j++){myArr[j](); //打印 0 1 2 3 4 5 6 7 8 9}var num=(1,2)console.log(num) 2 //逗号运算符,返回的永远是最后一个var fn=(function test1() {return 1},function test2() {return 2})()console.log(typeof(fn)) 'number'----------------var a=10if(function b(){}){ //(function b(){}) 这个是个表达式,表达式b就被忽略了a+=typeof(b) a=a+'undefined'}console.log(a) //10undefined
