JavaScript进阶——ES6(五)
2022/5/26 1:51:18
本文主要是介绍JavaScript进阶——ES6(五),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
ES6简介
什么是ES6?
ES的全称是ECMAScript,它是由ECMA国际标准化组织,制定的一项脚本语言的标准化规范。
年份 | 版本 |
---|---|
2015年6月 | ES2015 |
2016年6月 | ES2016 |
2017年6月 | ES2017 |
2018年6月 | ES2018 |
... | ... |
ES6实际上是一个泛指,泛指ES2015及其后续的版本。
为什么使用ES6
每一次标准的诞生都意味着语言的完善,功能的加强。JavaScript语言本身也有一些令人不满意的地方。
-
变量提升特性增加了程序运行时的不可预测性。
-
语法过于松散,实现相同的功能,不同的人可能会写出不同的代码。
ES6的新增语法
let
ES6中新增的用于声明变量的关键字。
- let声明的变量只在所处于的块级有效
if(true){ let a = 10 ; } console.log(a) // a is not defind使用let关键字声明的变量才具有块级作用域,使用var声明的变量不具备块级作用域特性。 - 不存在变量提升 ``` console.log(a) // a is not defined let a = 20; ``` - 暂时性死区 ``` var temp = 123; if(true){ temp = 'abc'; let temp; } ```
const
作用:声明常量,常量就是值(内存地址)不能变化的量。
- 具有块级作用域
if(true){ const a = 10; } // a is not defined
- 声明常量时必须赋值
const PI; // Missing initializer in const declaration
- 常量赋值后,值不能更改。
const PI = 3.14; PI = 100; // Assignment to constant variable.
const ary = [100,200]; ary[0] = 'a'; ary[1] = 'b'; console.log(arg); // ['a','b']; ary = ['a','b'] // Assignment to constant variable.
let、const、var的区别
- 使用var声明的变量,其作用域为该语句所在的函数内,且存在变量提升现象。
- 使用let声明的变量,其作用域为该语句所在的代码块内,不存在变量提升。
- 使用const声明的是常量,在后面出现的代码中不能再修改该常量的值。
var | let | const |
---|---|---|
函数级作用域 | 块级作用域 | 块级作用域 |
变量提升 | 不存在变量提升 | 不存在变量提升 |
值可更改 | 值可更改 | 值不可更改 |
解构赋值
ES6允许从数组中,提取值,按照对应位置,对变量赋值。对象也可以实现解构。
数组解构
let[a,b,c] = [1,2,3] console.log('' + a + b + c)
如果解构不成功,变量的值为undefined
let [foo] = []; let[bar,foo] = [1];
按照一定模式,从数组中或对象中提取值,将提取出来的值赋给另外的变量。
对象结构
let person = {name:'zhangsan', agg:19}; let{name, age} = person; console.log(name); // '张三' console.log(age); // 20
let{name:myName, age:myAge} = person; // myName myAge 属于别名 console.log(myName); // 'zhangsan' console.log(myAge); // 19
这篇关于JavaScript进阶——ES6(五)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-19永别了,微服务架构!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?