Skip to content

基础使用

let 块级作用域,也就是在同一个作用域内,不能够重复声明同一个变量。

js
let name = 'xiaoming'
js
var name = 'xiaoming'

const

在 let 的基础上,声明的变量不能够被重新赋值。

js
const name = 'xiaoming'
js
var name = 'xiaoming'

解构赋值

简化对象获取属性、简化数组获取元素的写法。

js
// 解构数组
const [a, b, c] = [1, 2, 3]

// 解构对象
const { name, age } = { name: 'xiaoming', age: 18 }
js
// 解构数组
var arr = [1, 2, 3]
var a = arr[0]
var b = arr[1]
var c = arr[2]

// 解构对象
var obj = { name: 'xiaoming', age: 18 }
var name = obj.name
var age = obj.age

扩展运算符

把对象的属性、数组的元素拆散成单个。

js
// 数组扩展
const arr = [1, 2, 3]
const arr2 = [...arr]

// 对象扩展
const obj = { name: 'xiaoming', age: 18 }
const obj2 = { ...obj }
js
// 数组扩展
var arr = [1, 2, 3]
var arr2 = [arr[0], arr[1], arr[2]]

// 对象扩展
var obj = { name: 'xiaoming', age: 18 }
var obj2 = { name: obj.name, age: obj.age }

模板字符串

简化字符串拼接 + 写法。

js
const name = 'xiaoming'
const age = 18
const res = `i am ${name}, age is ${age}`
js
var name = 'xiaoming'
var age = 18
var res = 'i am ' + name + ', age is ' + age

箭头函数

注意,箭头函数中没有 this

javascript
// 创建函数
const fn = () => {}

// 函数接收参数并返回值
const fn = (num1) => {
    return num1
}

// 函数接收参数并返回值(简写)
const fn = (num1) => num1

// 函数运算
const fn = (num1, num2) => num1 + num2
javascript
// 创建函数
function fn() {}

// 函数接收参数并返回值
function fn(num1) {
    return num1
}

// 函数运算
function fn(num1, num2) {
    return num1 + num2
}

for...of

循环语句(只能遍历数组),与 for...in 类似, for...in 是返回 key ,而 for...of 是返回 value 。

javascript
for (const value of arr) {
    console.log(value)
}

Promise

异步函数,延迟返回函数结果。

javascript
const score = 80

const p1 = new Promise((resolve, reject) => {
    if (score > 60) {
        resolve('考试通过了')
    } else {
        reject('考试不通过')
    }
})

// 成功
p1.then((res) => {
    console.log(res) // 考试通过了
})

// 失败
p1.then((res) => {
    console.log(res) // 考试不通过
})

Async、Await

异步函数,暂时可以理解为是 Promise 的语法糖(但实际不是),语法糖就理解是简化代码的意思。主要是让异步的代码写起来更像同步代码。

javascript
async function fn() {
    const res = await p1
}

Class

简化使用 function 实现类(构造函数)的写法。

javascript
class Person {
    constructor() {}
    myName() {}
}

ESM 模块化(import、export)

导出(a.js)。

javascript
const name = 'xiaoming'

export { name }

导入(b.js)。

javascript
import { name } from './a.js'

Map

数据结构字典,是一种无序且唯一的数据结构。

javascript
const map = new Map()

map.set('name', 'xiaoming')

Set

数据结构集合,是一种无序且唯一的数据结构。

javascript
const set = new Set()

set.add(1)