-
箭头函数
- 箭头函数,this指向的不是window,是父级(可改变)
- 不能使用arguments对象
- 在vue3中setUp不能使用this
- 不能用作构造函数,不能使用new命令,否则报错
- 不能使用yield命令,因此箭头函数不能用作Generator函数
-
解构赋值
-
数组的解构赋值
-
[a,b,c] = [1,2,3] console.log(a,b,c) [b,a,c] = [1,2,3] console.log(a,b,c) // 123 // 213
-
扩展运算符+解构赋值
-
let [head, ...tail] = [1, 2, 3, 4];
-
不完全结构
-
let [a, [b], d] = [1, [2, 3], 4]; a // 1 b // 2 d // 4
-
结构赋值+默认值
- ES6 内部使用严格相等运算符(===),判断一个位置是否有值。所以,只有当一个数组成员严格等于undefined,默认值才会生效。
-
let [foo = true] = []; foo // true let [x, y = 'b'] = ['a']; // x='a', y='b' let [x, y = 'b'] = ['a', undefined]; // x='a', y='b' let [x = 1] = [null]; x // null
-
-
对象的解构赋值
- 对象的结构赋值等式右边也要是对象
由于解构赋值要求等号右边是一个对象,所以如果等号右边是undefined或null,就会报错,因为它们无法转为对象
- 对象的结构赋值等式右边也要是对象
-
字符串的结构赋值
-
const [a, b, c, d, e] = 'hello'; a // "h" b // "e" c // "l" d // "l" e // "o"
-
-
函数参数结构赋值
-
function move({x = 0, y = 0} = {}) { return [x, y]; } move({x: 3, y: 8}); // [3, 8] move({x: 3}); // [3, 0] move({}); // [0, 0] move(); // [0, 0]
-
-
-
let/const
- let:
1、所声明的变量只在当前命令的代码块内有效
2、在for循环中let只有在循环体内有效
3、不存在变量提升
4、暂时性死区,如果块级作用域存在let命令,他所声明的变量就绑定这个区域不再受外部影响
5、ES6规定,如果块中存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭
6、不允许重复声明,在相同作用域内不能声明同一个变量
7、在ES6中如果函数有两个代码块都声明了同一个变量,那么外层代码不受内层代码块影响,如果使用var定义,那么输出最下面的
var:
1、在for循环体声明是全局内有效
const:
1、声明的常量不能改变,一旦声明常量就必须同时初始化
2、和let一样const声明的常量只在块级作用域内有效
3、先声明后使用
- let:
-
数组api
- https://blog.csdn.net/weixin_45706862/article/details/119569752
-
promise
- 浏览器的事件循环机制
- 封装一个ajax版本的promise
-
async/await
- async/await 是ES7提出的基于Promise的解决异步的最终方案。
- async
- async是一个加在函数前的修饰符,被async定义的函数会默认返回一个Promise对象resolve的值。因此对async函数可以直接then,返回值就是then方法传入的函数。
- await
- await 也是一个修饰符,只能放在async定义的函数内。可以理解为等待。
- await 修饰的如果是Promise对象:可以获取Promise中返回的内容(resolve或reject的参数),且取到值后语句才会往下执行;
- 如果不是Promise对象:把这个非promise的东西当做await表达式的结果。
es6面试准备笔记
最新推荐文章于 2024-08-11 18:40:36 发布
本文主要探讨ES6中的箭头函数,强调其this指向、arguments对象的使用限制以及在Vue3中的应用。同时,解释了解构赋值的原理,包括数组、对象、字符串和函数参数的解构,并详细阐述let、const的特性和使用注意事项。此外,还涵盖了数组API、Promise、浏览器的事件循环机制以及async/await的使用方法。
摘要由CSDN通过智能技术生成