注:Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值。
- ==比较之前会先进行类型转换,即不会对类型进行比较。例如:
- ===会比较数值和类型。例如:
JS在使用运算符号或者对比符时,会自带隐式转换,规则如下:
- 如果对象的属性值之一本身就是一个对象
- 如果属性值中的一个是NaN(在JavaScript中,是不是等于自己唯一的价值?)
- 如果一个属性的值为undefined,而另一个对象没有这个属性(因而计算结果为不确定?)
- 无法再意外创建全局变量。
- 会使引起静默失败(silently fail,即:不报错也没有任何效果)的赋值操抛出异常。
- 试图删除不可删除的属性时会抛出异常(之前这种操作不会产生任何效果)。
- 要求函数的参数名唯一。
- 捕获了一些常见的编码错误,并抛出异常。
- 禁用令人困惑或欠佳的功能。
- 缺失许多开发人员已经习惯的功能。
- 以不同严格模式编写的脚本合并后可能导致问题。
- map: 遍历数组,返回回调返回值组成的新数组
- join: 通过指定连接符生成字符串
- concat: 连接数组,不影响原数组, 浅拷贝
- push:添加新元素到数组末尾,返回数组长度
- pop:移除数组最后一个元素,返回元素本身
- unshift:添加新元素到数组开头,返回数组长度
- shift:移除数组首个元素,返回元素本身
- 能用forEach()做到的,map()同样可以。反过来也是如此。
- map()会分配内存空间存储新数组并返回,forEach()不会返回数据。
各种循环遍历的比较地址:
- typeof: 适合基本的数据类型和函数
- instanceof: 判断对象类型,基于原型链去判断。
- constructor: 返回对创建此对象的函数的引用
存储的值大小不定,可动态调整 | |
由系统自动分配内存空间 | 由开发人员通过代码分配 |
空间大,但是运行效率相对较低 | |
无序存储,可根据引用直接获取 |