函数定义空函数函数作用域块级作用域局部作用域作用域链终极版作用域函数参数定义:默认参数可变参数关键字参数组合参数小结高阶函数与函数返回值高阶函数函数返回值lambda与匿名函数mapfilterreducelambda小结装饰器格式装饰器原理带参数的装饰器装饰器应用装饰器小结开放封闭原则闭包概念闭包... ...
分类:
其他好文 时间:
2017-11-03 20:28:41
阅读次数:
237
1.闭包 闭包指有权访问另一个函数作用域中变量的函数,创建闭包最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量,利用闭包可以突破作用域链,将函数内部的变量和方法传递到外部。 闭包的特性: 1>.函数内再嵌套函数 2>.内部函数可以引用外层的参数和变量 3>.参数和变量 ...
分类:
Web程序 时间:
2017-11-01 22:54:02
阅读次数:
225
1.数据存储的方式 1.字面量 2.变量 3.数组项 4.对象成员 2.各自的性能特点 1.访问字面量和局部变量的速度最快,访问数组项和对象成员相对较慢 2.由于局部变量在作用域链的起始位置,因此访问局部变量比访问跨作用域变量更快。变量在作用域链的位置越深,访问的时间就越长。 3.避免使用with和 ...
分类:
编程语言 时间:
2017-10-29 12:58:26
阅读次数:
256
在全局环境下有以下代码 执行foo()时,打印结果为window(object) window(object) 执行foo2.call(oTemp)时,打印结果为oTemp(object) window(object) 原因是,call的功能是在一个特定的作用域中调用函数,所以foo.call(oT ...
分类:
其他好文 时间:
2017-10-27 11:35:12
阅读次数:
167
在理解执行环境的时候,我个人有个理解的方法 可以把整个执行环境当作是一个地球,我们都在这里面活动,各自拥有着某些特性跟技能. 那么全局执行环境,我们可以看做是整个地球,那么在web浏览器当中,就是window对象,因为我们在地球上生活,做的所有事情,都被视作为是它的属性跟方法. 当我们在地球上消失了 ...
分类:
编程语言 时间:
2017-10-24 01:33:54
阅读次数:
236
作用域 域,表示的是一个范围,作用域,就是作用范围。 作用域说明的是一个变量可以在什么地方被使用,什么地方不能被使用。 块级作用域 JavaScript中没有块级作用域 上面这段代码在JavaScript中是不会报错的,但是在其他的编程语言中(C#、C、JAVA)会报错。 这是因为,在JavaScr ...
分类:
Web程序 时间:
2017-10-22 01:35:13
阅读次数:
256
1. 什么是作用域 2. 变量的分类和变量作用域的分类 3. 全局变量和全局作用域 在函数外声明的变量为全局变量,全局变量所对应的作用域为全局作用域。看如下代码: 打印结果: 结果分析: 在函数外部声明了一个变量globalEle,因此它为全局变量,拥有全局作用域,全局变量无论在函数内部还是函数外部 ...
分类:
编程语言 时间:
2017-10-20 21:47:19
阅读次数:
226
本文主要介绍js性能优化相关知识。 作用域相关: 1、避免全局查找 我们知道作用域链是局部在前,全局在后的,那么访问全局变量就需要去遍历作用域链,其开销自然就比局部的更大。 2、避免 with语句 with会创建自己的作用域,也就是说会增加其中执行代码的作用域链的长度,会造成额外的作用域链查找。 选 ...
分类:
Web程序 时间:
2017-10-15 22:33:31
阅读次数:
234
一:什么是作用域 作用域指的是变量的适用范围 二:JS的作用域与其他语言区别 在其他语言中比如JAVA,C语言等是以块为作用域{} JS作用域是以函数做为作用域,python也是以函数为作用域。 java中代码 如下代码会直接报错,因为name没有定义,以块为作用域,及在if (){}中name是定 ...
分类:
编程语言 时间:
2017-10-01 15:45:53
阅读次数:
224
1.JavaScript中四种基本数据存取位置:字面量,本地变量,数组元素,对象成员。(四个都是存在于内存中) 一般来说:[字面量,局部变量]运行速度>[数组,对象成员] 2.内部属性包含了一个函数被创建的作用域中对象的集合。这个集合被称为作用域链。(跨作用域频繁取数据会消耗性能) 3.内存泄露的几 ...
分类:
Web程序 时间:
2017-09-28 13:06:19
阅读次数:
236