- 博客(4)
- 收藏
- 关注
原创 JavaScript闭包
闭包:定义在一个函数内部的函数被引用到了外部 本质上,闭包是将函数内部和外部连接起来的桥梁。 通常,函数的作用域和它的所有变量都会在函数执行结束后被销毁,但是,在创建了一个闭包以后,这个函数的作用域会一直保存到闭包不存在为止。 这样说可能不理解,让我们看一个经典闭包案例 function test(){ var arr[]; for (var i = 0 ;i &...
2019-08-09 14:22:22 129
原创 JavaScript立即执行函数
假定现在有以下情况 function a(){ 此处省略100行代码...} 毫无疑问,这是一个巨大的函数,但是在整个的代码块中,它只运行了一次,这样是十分浪费空间的。 我们需要一种执行完立即释放空间的函数来解决这个问题。 这便是JavaScript中特有的立即执行函数。 而且立即执行函数,只要被读到就会立刻执行,毫不含糊。 立即执行函数有两种写法: ...
2019-08-09 09:43:08 169
原创 JavaScript作用域
运行期上下文:当函数执行前一刻,会创建一个AO对象。一个AO定义了一个函数执行时的环境,函数每次执行时对应的AO对象都是独一无二的,所以多次调用一个函数会导致创建多个AO对象,当函数执行完毕,它产生的AO会被销毁。 function test(){} test(); test();//虽然两次调用产生的AO内容一模一样,但是还是属于两个独一无二的AO [[scope]]:每个JavaScri...
2019-08-08 16:29:15 103
原创 JavaScript预编译环节
JS运行三部曲 1.语法分析 2.预编译 3.解释执行 预编译过程发生在函数执行的前一刻 预编译结果:函数声明整体提升,变量声明提升。 1.无论你的函数写在哪,系统在预编译完成后总是会把这些个函数提到逻辑的最前面。 2.变量声明提升,这里需要注意,是变量的声明提升。 eg:var a = 123; //这叫变量声明+变量赋值 预编译只会把var a 提升至最前面。 故 ...
2019-08-08 09:58:45 184
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人