ES6语法
2021/6/26 23:28:17
本文主要是介绍ES6语法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
ES6
- 1、新增声明命令let和const
- 2、模板字符串
- 3、箭头函数
- 4、剩余参数
- 5、Object.keys()、Object.assign()
- 6、for...of 循环
- 7、import和export
- 8、Promise对象
- 9、解构赋值
- 10、Set数据结构
- 11、class
- 12、async、await
- 13、修饰器
- 14、Symbol
- 15、Proxy
简介:ES:全称是 ECMAScript , 它是由 ECMA 国际标准化组织,制定的一项脚本语言的标准化规范。
ES6好处:
- 变量提升特性增加了程序运行时的不可预测性
- 语法过于松散,实现相同的功能,不同的人可能会写出不同的代码
1、新增声明命令let和const
-
声明变量let
• let关键字就是用来声明变量的 • 使用let关键字声明的变量具有块级作用域(一对大括号 { } 产生的作用域) • 在一个大括号中 使用let关键字声明的变量才具有块级作用域 var关键字是不具备这个特点的 • 防止循环变量变成全局变量 • 使用let关键字声明的变量没有变量提升 • 使用let关键字声明的变量具有暂时性死区特性
-
声明常量const
• const声明的变量是一个常量 • 既然是常量不能重新进行赋值,如果是基本数据类型,不能更改值,如果是复杂数据类型,不能更改地址值 • 声明 const时候必须要给定值(赋值) • 具有块级作用域
-
let const var 区别
2、模板字符串
用一对反引号``标识,可以当作普通字符串使用,也可以用来定义多行字符串,也可以在字符串中嵌入变量、js表达式或函数。
3、箭头函数
( 形参 ) => { 函数体 } (匿名函数、简化函数定义语法)
- 箭头函数中不绑定this,箭头函数中的this指向是它所定义的位置,可以简单理解成,定义箭头函数中的作用域的this指向谁,它就指向谁
- 箭头函数的优点在于解决了this执行环境所造成的一些问题。比如:解决了匿名函数this指向的问题(匿名函数的执行环境具有全局性),包括setTimeout和setInterval中使用this所造成的问题
注意:
• 函数体中只有一句代码,且代码的执行结果就是返回值,可以省略大括号 function sum(num1, num2) { return num1 + num2; } //es6写法 const sum = (num1, num2) => num1 + num2; • 如果形参只有一个,可以省略小括号 function fn(v) { return v; } //es6写法 const fn = v => v; • 箭头函数不绑定this关键字,箭头函数中的this,指向的是函数定义位置的上下文this (thia指向window) • 箭头函数不能使用arguments,但可以使用剩余参数…args let arg = (...args) => { console.log(args); } arg(1, 2, 3);//结果为 [1, 2, 3] • 自调用函数写法( )( ) (function() { console.log('自调用函数'); })(); 等同于 (() => { console.log('箭头函数'); })()
4、剩余参数
…args
剩余参数语法允许我们将一个不定数量的参数表示为一个数组,不定参数定义方式,这种方式很方便的去声明不知道参数情况下的一个函数
5、Object.keys()、Object.assign()
- Object.keys()
获取对象的所有属性名或方法名,返回一个数组 - Object.assign()
assign方法将多个原对象的属性和方法都合并到了目标对象上,可以接收多个参数,第一个参数是目标对象,后面都是源对象
6、for…of 循环
var arr=["a","b","c"] for(var v of arr){ console.log(v) }//a b c
7、import和export
ES6模块化规范(浏览器端和服务器端通用)
①. 每个js文件都是一个独立的模块
②. 暴露:export关键字
③. 导入:import关键字
(package.json文件中加上: “type”: “module”)
8、Promise对象
promise:处理异步程序,主要解决异步深层嵌套问题
回调地狱(横向金字塔):大量使用回调函数进行异步操作,但异步操作什么时候返回结果是不可控的,所以我们希望几个异步请求按照顺序来执行,就将异步操作嵌套起来,嵌套的层数特别多,即回调地狱。
回调地狱解决方案:
①. promise
②. async/await
③. generator
事件发布/监听模式
三种状态:
①最初状态:pending 等待中,此时promise的结果为undefined
②当resolve(value)调用时,达到最终状态之一:fulfilled,(成功的)完成,此时可以获取结果value
③当reject(error)调用时,达到最终状态之一:reject,失败,此时可以获取错误信息error
9、解构赋值
解构赋值:从数组和对象中提取值,对变量进行赋值
• 解构赋值就是把数据结构分解,然后给变量进行赋值 • 如果解构不成功,变量跟数值个数不匹配的时候,变量的值为undefined • 数组解构用中括号包裹,多个变量用逗号隔开:let [ 变量,变量]; • 对象解构用花括号包裹,多个变量用隔开: let {属性:变量,属性:变量…… }。属性名和变量名一样时,变量名可以省略不写,只写属性名。 作用:让我们方便的去取对象中的属性跟方法,减少代码量
10、Set数据结构
Set数据结构:类似于数组,但是成员的值都是唯一的,没有重复的值
实例方法: • add(value):添加某个值,返回 Set 结构本身 • delete(value):删除某个值,返回一个布尔值,表示删除是否成功 • has(value):返回一个布尔值,表示该值是否为 Set 的成员 • clear():清除所有成员,没有返回值 • size():数据的长度
应用:数组去重
11、class
class类的继承
12、async、await
使用async、await,搭配promise,可以通过编写形似同步的代码来处理异步流程,提高代码的简洁性和可读性
async用于声明一个function是异步的
await用于等待一个异步方法执行完成
13、修饰器
@decorator是一个函数,用来修改类甚至于是方法的行为
修饰器本质就是编译时执行的函数
14、Symbol
symbol是一种基本类型,通过调用symbol函数产生,接收一个可选的名字参数,该函数返回的symbol是唯一的
15、Proxy
使用代理监听对象的操作
这篇关于ES6语法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-01一个基于注解驱动的可视化的DDD架构-超越COLA的设计
- 2025-01-01PlantUML 时序图 基本例子
- 2025-01-01plantuml 信号时序图
- 2025-01-01聊聊springboot项目如何优雅进行数据校验
- 2024-12-31自由职业者效率提升指南:3个时间管理技巧搞定多个项目
- 2024-12-31适用于咨询行业的项目管理工具:提升跨团队协作和工作效率的最佳选择
- 2024-12-31高效协作的未来:2024年实时文档工具深度解析
- 2024-12-31商务谈判者的利器!哪 6 款办公软件能提升春节合作成功率?
- 2024-12-31小团队如何选择最实用的项目管理工具?高效协作与任务追踪指南
- 2024-12-31数据赋能,智慧养老:看板软件如何重塑养老服务生态