ES6新特性

本文详细介绍了ES6的13项重要特性,包括let const声明、模板字符串、解构赋值、函数默认参数、箭头函数、for of循环、类(class)、模块导入导出、Promise异步处理、async/await、Set集合、Spread/Rest操作符以及Symbol的独特用法,旨在帮助开发者更好地掌握ES6的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ES6新特性

  • let const
  • 模板字符串
  • 解构
  • 函数传参默认值
  • 箭头函数
  • for of
  • class类
  • 导入导出
  • promise
  • async/await
  • Set集合
  • Spread/Rest操作符
  • Symbol

1.let const

let 表示申明变量。const 表示申明常量

  • 常量定义了就不能改了。对象除外,因为对象指向的地址没变。
  • const在申明必须赋值。
  • 两者都为块级作用域。
    块级作用域与函数作用域。任何一对花括号({和})中的语句集都属于一个块,在这之中定义的所有变量在代码块外都是不可见的,我们称之为块级作用域。函数作用域就好理解了,定义在函数中的参数和变量在函数外部是不可见的。
const a = 1

2.模板字符串``

使用反引号 `` 进行字符串拼接,${ }引用。

var a = 'hellow world'
var b = `你好${a}`
console.log(b)

3.解构

使用{ }对数组和对象进行解构。

//创建数组
const list = ['aaa','bbb','ccc'];
//数组解构
const [list1,list2,list3] = list;

//创建对象
const person = {
	name:'张三',
	age:12
}
//对象解构
const {name,age} = person;

4.函数传参默认值

函数传参可以有默认值

function hText(text = 'default'){
	console.log(text);
}

5.箭头函数

  • 不需要 function 关键字来创建函数
  • 不能用new
  • 省略 return 关键字
  • this始终指向函数申明时所在作用域下的this值
//es5
var fun = function() {
}

//es6
var fn = () => {
}

6.for of

  • for of遍历的是键值对中的值
  • for in遍历的是键值对中的键

7.class类

ES6 中支持 class 语法,不过,ES6的class不是新的对象继承模型,它只是原型链的语法糖表现形式。

class Student {
  constructor() {
    console.log("I am a student.");
  }
 
  study() {
    console.log('study!');
  }
 
  static read() {
    console.log("Now.");
  }
}
 
console.log(typeof Student); // function
let stu = new Student(); // "I am a student."
stu.study(); // "study!"
stu.read(); // "Now."

8.导入导出

  • 导入improt
  • 导出export default (可一次导入多个)

9.promise

Promise 用于更优雅地处理异步请求。

<script>
    new Promise((resolve,reject) => {
      setTimeout(function() {
        resolve('成功了!')
      },1000)
      // reject("失败了,wuwu")
    }).then(data => {
      console.log(data)
    }).catch(err => {
      console.log(err)
    })
  </script>

10.async/await

比promise更好地解决了回调。

async function() {
  awiat fn()
}

1、Async—声明一个异步函数(async function someName(){…})

  • 自动将常规函数转换成Promise,返回值也是一个Promise对象
  • 只有async函数内部的异步操作执行完,才会执行then方法指定的回调函数
  • 异步函数内部可以使用await

2、Await—暂停异步的功能执行(var result = await someAsyncCall();)

  • 放置在Promise调用之前,await强制其他代码等待,直到Promise完成并返回结果
  • 只能与Promise一起使用,不适用与回调
  • 只能在async函数内部使用

11.Set集合

存储任何类型的唯一值,即集合中所保存的元素是不重复的。类数组结构。

arr = [1,2,3,1]
let arrNew = new Set(arr)
arrNew = [1,2,3]

类数组不是数组,要转化为数组Array.form(arrNew)这样arrNew才是数组了。

12.Spread/Rest操作符 …

Spread / Rest 操作符指的是 …,具体是 Spread 还是 Rest 需要看上下文语境。

  • 当被用于迭代器中时,它是一个 Spread 操作符:迭代器 (Iterator)是按照一定的顺序对一个或多个容 器 中的元素行进遍历的一种机制
function foo(x,y,z) {
  console.log(x,y,z);
}
 
let arr = [1,2,3];
foo(...arr); // 1 2 3
  • 当被用于函数传参时,是一个 Rest 操作符:当被用于函数传参时,是一个 Rest 操作符:
function foo(...args) {
  console.log(args);
}
foo( 1, 2, 3, 4, 5); // [1, 2, 3, 4, 5]

13.Symbol

新的基本类型,表示独一无二的值,最大的用法是用来定义对象的唯一属性名。详情

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值