# ES 基础知识
# let 和 const
# symbol
- Symbol 是 ES6 中引入的一种新的基本数据类型,用于表示一个独一无二的值,不能与其他数据类型进行运算。它是 JavaScript 中的第七种数据类型
1 2 3 4
| const a = Symbol(); console.log(a);
const a = new Symbol();
|
# class
# 字符串新特性
# 模板字符串
# 字符串新方法
- includes () 判断字符串是否包含参数字符串,返回 boolean 值。
- startsWith () /endsWith (),判断字符串是否以参数字符串开头或结尾。返回 boolean 值。这两个方法可以有第二个参数,一个数字,表示开始查找的位置
- repeat () 方法按指定次数返回一个新的字符串。
1
| console.log("hello".repeat(2)
|
- padStart ()/padEnd (),用参数字符串按给定长度从前面或后面补全字符串,返回新字符串。
# 数组新方法
Array.from () 是内置对象 Array 的方法,实例数组不能调用
includes () 参数:数值 -------- 返回值:true/false
map ()、filter () 参数:函数 -------- 返回值:数组
forEach () 参数:函数 -------- 返回值:undefined
find () 参数:函数 -------- 返回值:数值
some ()、every () 参数:函数 -------- 返回值:true/false
# object 新方法
- Object.is()
- Object.assign()
- Object.keys()
- Object.values()
- Object.entries()
# 对象扩展符
# 拷贝
1 2 3 4 5
| let obj = {name: "xiaoming", age: 18}; let obj1 = {...obj}; console.log(obj1 === obj); obj1.name = "xiaohong"; console.log(obj.name);
|
# 合并
1 2 3 4
| let obj = {name: "xiaoming", age: 18}; let obj1 = {sex: "male"}; let obj2 = {...obj, ...obj1}; console.log(obj2);
|
# 箭头函数
- 箭头函数实现了一种更加简洁的书写方式。箭头函数内部没有 arguments,也没有 prototype 属性,所以不能用 new 关键字调用箭头函数
- 箭头函数和普通函数最大的区别在于其内部 this 永远指向其父级对象的 this。(重点)
# 解构赋值
- 解构赋值是对赋值运算符的扩展。它是一种针对数组或者对象进行模式匹配,然后对其中的变量进行赋值。
字符串、以及 ES6 新增的 Map 和 Set 都可以使用解构表达式
1 2 3 4 5 6 7
| let [a, b, c, d, e] = "Hello"; let { name, age, sex } = { name: "xiaoming", age: 18, sex: "male" };
let [a,b,c] = [1,2,3]; let [a,..b] = [1,2,3]; console.log(a,b); let [foo, [[bar], baz]] = [1, [[2], 3]];
|
# Promise
# async/await 语法糖
# 模块化
# 新增对象
# Set
- 可以理解为后端的 Set 集合对象 (ArrayList)
- Set 对象和 Map 对象类似,但它存储不是键值对。类似数组,但它的每个元素都是唯一的。
- WeakSet
1 2 3 4
| let set = new Set([1,2,3]); set.add(4); set.delete(1); set.has(2);
|
# Map
-
Map 对象用于保存键值对,任何值 JavaScript 支持的值都可以作为一个键(key)或者一个值(value)。与对象不同的是:
-
object 的键只能是字符串或 ES6 的 symbol 值,而 Map 可以是任何值。
-
Map 对象有一个 size 属性,存储了键值对的个数,而 object 对象没有类似属性。
-
WeakMap
1 2 3 4 5 6 7 8 9 10
| let map = new Map(); map.set("name", "xiaoming"); map.set("age", 18); map.set("sex", "male"); map.get("name"); map.has("name"); map.delete("name"); map.has("name"); console.log(map.size); map.clear();
|
# for…of
- for…of 循环是 ES6 引入的一种新的循环机制,用于遍历可迭代对象(如数组、字符串等)的元素。在字符串上使用 for…of 可以方便地遍历字符串中的每个字符。
1 2 3 4
| et str = "Hello"; for (let char of str) { console.log(char); }
|
# for…in
(阮一峰 ECMAScript 6 (ES6) 标准入门教程 第三版)[https://www.bookstack.cn/read/es6-3rd/sidebar.md]