词法环境

词法环境(lexicalEnvironment) 是一个用于定义特定变量和函数标识符在 ECMAScript 代码的词法嵌套结构上关联关系的规范类型。一个词法环境由一个环境记录项和可能为空的外部词法环境引用构成。通常词法环境会与特定的 ECMAScript 代码相联系(如 FunctionDeclaration,WithStatement 或者 TryStatement 的 Cat ...

深拷贝&浅拷贝

对于基本数据类型,没有深浅拷贝的区别。深浅拷贝只针对引用数据类型。 > 如果我们要赋值对象的所有属性都是引用类型可以用浅拷贝 概念 浅拷贝:只复制一层对象,当对象的属性都是引用类型时,实质复制的是其引用,当引用值发生改变时,也会跟着改变 深拷贝:另外申请一块内存,内容跟原对象一样,更改原对象,不会改变拷贝对象 原因 基本数据类型存在栈stack, 栈内存上的 ...

Map&Set

字典 一些元素的集合,每个元素都有一个称作key的域,不同元素的key各不相同 集合 由一堆无序的、相关联的,且不重复的内存结构组成的组合 区别 共同点: 集合、字典都可以存储不重复的值 不同点: 集合以[值、值]形式存储,字典以['键', '值']形式存储 Map 是一种字典数据结构 是键值对的有序列表,而键和值都可以是* ...

for-in

循环应该用在遍历非数组对象 从技术上将,可以使用for-in循环数组(因为JavaScript中数组也是对象),但这是不推荐的。 因为如果数组对象已被自定义的功能增强,就可能发生逻辑错误。另外,在for-in中,属性列表的顺序(序列)是不能保证的。所以最好数组使用正常的for循环,对象使用for-in循环。 举例 hasOwnProperty() 当遍历对 ...