Es6梗概一
Es6 梗概一
Let
** –相当于是完美版的 var.**
声明的变量 不提升(不会像 var 一样)
1 |
|
的作用域在 {花括号} 内部
同一块作用域不能重复声明
可以代替自执行的匿名函数
案例 1
1 |
|
const
常量,不会改变的值,用 const 声明 不可以重复赋值
//1.注意点一。一旦给 const 修饰符的标识符被赋值后,不能修改。
//2.注意点二,在使用 const 定义标识符,必须进行赋值。
//3,注意点三。常量的含义是指向的对象不能修改。但是可以改变对象内部的属性
1 |
|
- 对象中 属性里保存的不是对象(字符串也是对象)。而是这个对象的内存地址
- 用 const 修饰 就相当于绑定了内存地址。但是绑定的内存地址下的子地址(子属性)可以改变
- 在开发中优先使用 const,只用需要改变某一个标识符的时候才使用 let
- 但可以用下标赋值,不能直接 = 赋值。 也不可以在声明前访问。
箭头函数
this的指向 : 作用域父级 this 的指向。指向父作用域
>向外层作用域中,一层一层的往外查找 this,直达找到有 this 定义的。其箭头函数的 this 指向。就是指向该 this。
没有 arguments 对象,但可使用,剩余运算符
(...rest) => void
例子<<
function fun(参数){ code } === (参数) => { code }
–当只有一个参数时,圆括号是可选的:
(singleParam) => { statements }
singleParam => { statements }
–没有参数的函数应该写成一对圆括号。
() => { statements }
==当函数体只有一行代码时, 可以不用写 return。函数体本身就是返回值。
1 |
|
(map 方法不会改变原来的数组,但可用变量存放修改过的复制数组)
箭头函数后如果是对象 要包装在括号中,将其转换为表达式而不是块语句
1 |
|
====
es6 遍历方式
for (key in arr/object)
- 可遍历数组,对象也可以。对象专用
- 遍历对象 key 取的是每个对象的属性名[key]
- 具体的键值还是 使用 object 名[key] 获取
for (key of arr)
(只能遍历数组不能遍历对象,数组专用)
- 但可以使用 Object.keys(对象) 把对象转为一个由 key 组成的数组。
- 再遍历这个数组就对了。具体的键值使用**原对象名[key]**获取
Map 和 Set 以及 iterable
Set
特点就是不重复,去重好帮手
var s = new Set(接受一个数组)
s.add(元素) 添加元素,重复无效
s.delete(元素) 删除元素
s.has(元素) 判断元素是否存在
return [ …new Set(arr) ] – 把 arr 变为一个不重复的数组
Map
Map 是一组键值对的结构,具有极快的查找速度。其 key 不只是 String 类型可以 number 甚至 Object
初始化 Map 需要一个二维数组,或者直接初始化一个空 Map。Map 具有以下方法:
var m = new Map(); // 空 Map
m.set(‘Adam’, 67); // 添加新的 key-value
m.has(‘Adam’); // 是否存在 key ‘Adam’: true
m.get(‘Adam’); // 67
m.delete(‘Adam’); // 删除 key ‘Adam’
m.get(‘Adam’); // undefined
1 |
|
iterable
翻译过来就是可迭代的意思
遍历Array可以采用下标循环,遍历Map和Set就无法使用下标。为了统一集合类型,ES6 标准引入了新的iterable类型,Array、Map和Set都属于iterable类型;
具有iterable类型的集合可以通过新的for … of循环来遍历;
更好的方式是直接使用iterable内置的forEach方法。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!