网站首页 > 技术文章 正文
ECMAScript 6.0(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了。它的目标,是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。 标准的制定者有计划,以后每年发布一次标准,使用年份作为版本。因为ES6的第一个版本是在2015年发布的,又称ECMAScript2015(简称ES2015)。
截止到现在各大浏览器的最新版(IE除外)可以说基本都已经全部支持ES6语法了。具体的浏览器支持情况可以在这个网址查询http://kangax.github.io/compat-table/es6/ ,对于那些不支持ES6的浏览器可使用babel转译成ES5从而在现有环境执行,Babel的具体使用方法此文不做介绍,官网地址http://babeljs.io 中文地址http://babeljs.cn
接下来进入我们的正题。
let 和 const
let的特性
let声明的变量只在其声明的块或子块中可用
在同一个函数或同一个作用域中不可用let重复定义一个变量
let并不会像var一样在全局对象上创造一个属性
不存在变量的提升
let 对比 var
let的作用域是块,而var的作用域是函数
例如下图在一个普通的块级作用域中用var声明的变量在外面也是可以访问的并且会覆盖外部定义的变量,而let声明的只能在作用域内访问。在函数块中声明的变量在外部无法访问。
const的特性
const是块级作用域
const需要被初始化且初始化不可修改
解构
解构赋值 语法是一个Javascript表达式,这使得可以将值从数组或属性从对象提取到不同的变量中。
数组的解构
还可以设置默认值,可以防止取出的值为undefined
大家如果属性算法的话应该知道在冒泡排序中我们会用到两个值得交换
可能看到这里有的同学会问,我想只取第一个和第三个的值怎么办,其实这是我们接下来要说的部分取值
部分取值是不是也很简单,但是数组值少还好,多了这样写也麻烦(那么可以适当使用数组函数),还有一个问题就是如果要把剩余的值都赋值给一个变量该怎么呢?so easy
注意:如果剩余元素右侧有一个逗号(let [a, ...b , ]),会抛出语法错误的异常,因为剩余元素必须是数组的最后一个元素。
接下来我们说说不能解构的情况
如果等号的右边不是数组(或者严格地说,不是可遍历的结构),那么将会报错,详见下图
对象的解构
对象的解构其实就是从对象中读取对应的属性赋值给变量
注意:当通过解构一个对象字面量来无需声明赋值变量时必须给表达式加上"(..)",{a, b} = {a: 1, b: 2}不是有效的语法,因为{a, b}被认为是一个代码块而不是对象字面量,但是({a, b} = {a: 1, b: 2})是有效的,相当于var {a, b} = {a: 1, b: 2}
那么想给变量取不同的名字该怎么办呢?so easy
同样对象的解构跟数组的解构一样也是支持默认值,规则一样。
最后,提一句我们常用的小技巧
好了今天就写到这里,后期会继续把ES6的相关知识写完。有什么写的不对的地方,希望大家海涵。
吐槽一句,今日头条的编辑器真心难用,写代码只能通过贴图了
猜你喜欢
- 2024-09-20 Vue.js常见的20道前端面试题及答案
- 2024-09-20 AI面试官:我能胜任React(二)(我能胜任这份工作吗)
- 2024-09-20 70个JavaScript知识点详细总结(上)【实践】
- 2024-09-20 ReactDOM.render和ReactDOM.createPortal的区别
- 2024-09-20 学会使用Vue JSX,一车老干妈都是你的
- 2024-09-20 字节P8大佬爆肝整理,一文带你梳理React面试题!
- 2024-09-20 2024前端面试真题之—VUE篇(2020web前端经典面试题 vue)
- 2024-09-20 JS事件绑定的常用方式实例总结(js事件绑定的四种方式)
- 2024-09-20 JavaScript 的基本术语大全(javascript的基本概念)
- 2024-09-20 React18内核探秘:手写React高质量源码迈向高阶开发(超清完结)
- 1514℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 563℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 508℃MySQL service启动脚本浅析(r12笔记第59天)
- 486℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 485℃启用MySQL查询缓存(mysql8.0查询缓存)
- 465℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 445℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 442℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)