学习时间 完成时间 ✅ 重难点 疑问/遗漏
复习时间

立即执行函数

自动执行,执行完成以后立即释放 IIFE immdiately-invoked function

  1. (function(){
  2. })();
  3. (function(){
  4. }())
  5. 一定是表达式才能被执行符号执行
  6. 函数声明变成表达式的方法
  7. 函数声明之前加 + - 或者加个1&&运算 ||
  8. +function test() {
  9. }();
  10. 此时test也会立即执行
  11. function test() {
  12. var arr=[];
  13. var i=0;
  14. for(;i<10;) {
  15. arr[i]=function() {
  16. document.write(i+' ')
  17. }
  18. i++;
  19. }
  20. return arr;
  21. }
  22. var myArr=test();
  23. for(var j=0;j<10;j++){
  24. myArr[j](); //打印 十个10,形成闭包
  25. }
  26. 改造
  27. function test() {
  28. var arr=[];
  29. for(var i=0;i<10;i++){
  30. (function(j){
  31. arr[j]=function(){
  32. document.write(j)
  33. }
  34. })(i)
  35. }
  36. return arr;
  37. }
  38. var myArr=test();
  39. for(var j=0;j<10;j++){
  40. myArr[j](); //打印 0 1 2 3 4 5 6 7 8 9
  41. }
  42. var num=(1,2)
  43. console.log(num) 2 //逗号运算符,返回的永远是最后一个
  44. var fn=(
  45. function test1() {return 1},
  46. function test2() {return 2}
  47. )()
  48. console.log(typeof(fn)) 'number'
  49. ----------------
  50. var a=10
  51. if(function b(){}){ //(function b(){}) 这个是个表达式,表达式b就被忽略了
  52. a+=typeof(b) a=a+'undefined'
  53. }
  54. console.log(a) //10undefined