② 不允许在非函数的代码块里声明函数,比如if里面,for循环里,但是可以调用
高阶函数
高阶函数是对其他的函数进行操作的函数,它接收函数作为参数或函数作为返回值输出
函数也是一种数据类型...,同样可以作为参数,传递给另一个参数使用.最典型的就是作为回调函数....我们还可以让外面的作用域访问fn内部的局部变量:
做了一下分析,但是可能会看不懂,画的有点乱,我文字解释一下:首先就是调用了fn这个外层的函数,然后声明赋值了num这个变量,由于没有调用fun函数...,所以直接跳到了return fun;此时就将整个函数,赋值给了fn(),又因为f接收了函数fn()的返回的值,所以此时f = function fun(){......}...,因为立即执行函数里面的任意一个函数都可以使用它的i这个变量
这里解决的我很久的疑惑,就是为什么这样的的写法是错误的,不管点击哪个li打印出来的索引都是4,这里其实是同步和异步的关系,onclick