ES6的复习

1. let 和 const 关键字

  1. 存在块级作用域
  1. 不存在变量提升
  1. 不能重复定义相同的变量名
  1. 具有暂时性死区
    以前不是很理解这个暂时性死区, 最近看懂了
    if条件里面定义了 tmp 但是 tmp 赋值为 “abc”
    看似 tmp = ‘abc’ 是调用 var tmp = 123;实际上 let tmp; 的话。
    是不允许这个变量来引用外部变量的,所有会报错
	var tmp = 123;
	if (true) {
	 tmp = 'abc'; // ReferenceError
	 let tmp;
	}

2. 数组的解构赋值

  1. 等价赋值
    let [a,b] = [1,2] // a = 1 b = 2
  1. 多余的解构 undefined
    let [a,b] = [1] // a = 1 b = undefined
  1. 默认赋值
    let [a,b = 3] = [1] // a = 1 b = 3 等价于 let [a,b = 3] = [1, undefined]
    说明了只有 undefined时 默认赋值才会生效
    let [a,b = 3] = [1, null] // a = 1 b = null

3. 对象的解构赋值
如果解构失败,变量的值等于undefined。

  1. 等价解构
    let { foo, bar } = { foo: ‘aaa’, bar: ‘bbb’ };
    foo // “aaa”
    bar // “bbb”
  1. 默认解构
    var {x, y = 5} = {x: 1};
    x // 1
    y // 5
  1. 对象解构也可以解构数组
    let arr = [1, 2, 3];
    let {0 : first, [arr.length - 1] : last} = arr;
    first // 1
    last // 3

对象解构还可以这样
在这里插入图片描述
4. 字符串的解构赋值

const [a, b, c, d, e] = ‘hello’;
a // “h”
b // “e”
c // “l”
d // “l”
e // “o”

字符串也是可以使用for of 遍历的
ES6 为字符串添加了遍历器接口

字符串新增了一些方法

String.raw

String.raw`Hi\nBB`
单纯的 `Hi\nBB`  =
Hi
BB
String.raw`Hi\nBB` = Hi\nBB

String.includes() 返回布尔值,表示是否找到了参数字符串。
startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。

var str = "sasa"
str.includes("a")

String.repeat() 方法返回一个新字符串,表示将原字符串重复n次。

'x'.repeat(3) // "xxx"
'hello'.repeat(2) // "hellohello"
'na'.repeat(0) // ""

String.trimStart()
String.trimEnd()
String.trim()

String.replaceAll()

5. 箭头函数

6. rest参数

7. 迭代器

8. 生成器

9. promise

Promise.then
Promise.catch
Promise.all([ ])
async
await

10. 可选链操作符

11. import (‘./index.js’) 动态导入

这个方法在vue的路由异步加载中有用到的
import(‘@/views/a’/* webpackChunkName: “recommend” */)

12.map

13. set

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,主要用于构建高性能、事件驱动的网络应用程序。如果你正在准备 Node.js 的期末考试,以下是一些关键知识点和复习建议: 1. **核心概念**: - **事件循环(Event Loop)**: Node.js 的异步编程模型依赖于事件循环,理解如何处理回调函数和 Promise。 - **非阻塞 I/O**:Node.js 使用单线程处理网络求,通过事件驱动避免了传统服务器中的阻塞。 2. **Node.js API**: - **fs模块**:文件系统操作,如读写文件、目录操作等。 - **http和https模块**:用于创建网络服务器和客户端。 - **Express框架**:常用于构建 Web 应用程序,理解路由、中间件和模板引擎。 - **WebSocket**:实时通信技术,在 Node.js 中的应用实例。 3. **模块系统**: - 导入和导出模块的方法。 - CommonJS 和 ES6 模块的区别。 4. **Node.js 错误处理**: - try-catch-finally 语句的使用,以及错误对象的处理。 - 使用 `process.on('uncaughtException', handler)` 监听未被捕获的异常。 5. **异步编程**: - Promise 和 async/await 的理解和使用。 - 错误处理与 Promise 的结合。 6. **性能优化**: - 避免回调地狱,使用 Promise 或 async/await。 - 了解 Cluster 和 Worker 模块,如何扩展多进程。 7. **实际项目示例**: - 参考实际的 Node.js 项目案例,如 RESTful API、命令行工具或实时聊天应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值