es6语法总结,ES6语法总结概览

马肤

温馨提示:这篇文章已超过450天没有更新,请注意相关的内容是否还可用!

摘要:ES6(ECMAScript 2015)是JavaScript语言的一个重要版本更新,引入了许多新特性和语法改进。它包括了模块导入导出、箭头函数、解构赋值、字符串模板字面量、类与继承等关键特性。这些新特性提高了代码的可读性和可维护性,使得JavaScript开发更加便捷高效。ES6语法为JavaScript开发者提供了更多现代化的编程工具和语法支持。

语法

(1)变量提升(let-var-const)

变量提升JavaScript引擎在代码执行前会提升(把)所有的变量声明提升到当前作用域的顶部,尽管变量的声明被提升了,但赋值(即初始化)仍然保持在原地,如果在初始化之前使用变量,其值将为undefined。

暂时性死区(Temporal Dead Zone,TDZ)在let或const声明的变量被初始化之前,如果尝试访问它们,会抛出一个ReferenceError。

es6语法总结,ES6语法总结概览 第1张

varES5中引入的变量声明方式,声明的变量具有函数作用域或全局作用域,存在变量提升现象。

let和constES6中引入的变量声明方式,声明的变量具有块级作用域,let声明的变量可以重新赋值,而const声明的常量(或称为不可重新赋值的变量)一旦被赋值后,就不能再被重新赋值(但内部对象或数组的元素可以修改)。

(2)箭头函数

箭头函数是ES6中引入的一种更简洁的函数表达式语法,它的语法比传统的函数表达式更简洁,且有一些特殊的行为。

语法(parameters) => { functionBody }

+ parameters:箭头函数的参数列表。

+ =>:表示这是一个箭头函数。

+ functionBody:箭头函数的主体。

es6语法总结,ES6语法总结概览 第2张

示例讲解:

箭头函数与传统的函数表达式相比,更简洁,当函数只有一个参数时,方法的括号也可省略,当函数只用一个return值时,return关键字和大括号也可以省略。

箭头函数没有自己的this,即不绑定this,它捕获其所在上下文的this值,这使得在回调函数、事件处理器和定时器中使用箭头函数更加安全和方便。

(3)模板字符串

在ES6中,模板字符串是一种新的字符串语法,用反引号(``)包围字符串内容,模板字符串可以包含变量,这些变量会被解析并替换为实际的值。

(4)解构赋值

解构赋值对象从对象中提取属性,并将它们赋值给不同的变量,这避免了多次使用点操作符(.)或方括号([])来获取对象属性的值。

解构赋值数组直接从数组中提取元素,按照索引位置直接赋值,如果解构的变量数量超过数组的长度,多余的变量会被赋值为undefined。

(5)展开运算

展开运算符(...)将可迭代对象的元素或属性展开为多个参数或元素,可以简单理解为python中的*args。

es6语法总结,ES6语法总结概览 第3张

+ 对象展开:在对象中使用展开运算符,可以将源对象的所有可枚举属性复制到目标对象中。

+ 数组展开:在数组中使用展开运算符,可以将一个数组的元素插入到另一个数组的指定位置。

+ 函数参数展开:在函数调用时,可以使用展开运算符将一个数组的元素作为单独的参数传递给函数。

(6)模块化

默认导出和导入每个模块中只能有一个默认导出,导入时,可以使用自定义的名称来接收这个导出的成员,未导出的任何类型变量都不能被导入,命名导出:每个模块中可以有多个命名导出,每个导出的成员都需要一个名字,这个名字在导入时也需要被使用。

index.js文件如果文件夹下的js文件叫做index.js,那么导入时就可以省略/index.js,只需要导入到文件夹这层就可以,无论是命名导入还是默认导入都适用。

JS中循环遍历

(1)遍历数组

for循环基于索引遍历数组。

for...of循环ES6中引入的,基于迭代取值。

es6语法总结,ES6语法总结概览 第4张

forEach方法数组内置方法,遍历每个元素。

map方法数组内置方法,根据指定方法,创建一个新数组。

(2)遍历对象

for...in循环遍历对象的可枚举属性(包括原型链上的属性)。

Object.keys方法对象方法,返回对象的所有键值,和for...in一样。

Object.values方法对象方法,只返回对象的所有值,没有键。


0
收藏0
文章版权声明:除非注明,否则均为VPS857原创文章,转载或复制请以超链接形式并注明出处。

相关阅读

  • 【研发日记】Matlab/Simulink自动生成代码(二)——五种选择结构实现方法,Matlab/Simulink自动生成代码的五种选择结构实现方法(二),Matlab/Simulink自动生成代码的五种选择结构实现方法详解(二)
  • 超级好用的C++实用库之跨平台实用方法,跨平台实用方法的C++实用库超好用指南,C++跨平台实用库使用指南,超好用实用方法集合,C++跨平台实用库超好用指南,方法与技巧集合
  • 【动态规划】斐波那契数列模型(C++),斐波那契数列模型(C++实现与动态规划解析),斐波那契数列模型解析与C++实现(动态规划)
  • 【C++】,string类底层的模拟实现,C++中string类的模拟底层实现探究
  • uniapp 小程序实现微信授权登录(前端和后端),Uniapp小程序实现微信授权登录全流程(前端后端全攻略),Uniapp小程序微信授权登录全流程攻略,前端后端全指南
  • Vue脚手架的安装(保姆级教程),Vue脚手架保姆级安装教程,Vue脚手架保姆级安装指南,Vue脚手架保姆级安装指南,从零开始教你如何安装Vue脚手架
  • 如何在树莓派 Raspberry Pi中本地部署一个web站点并实现无公网IP远程访问,树莓派上本地部署Web站点及无公网IP远程访问指南,树莓派部署Web站点及无公网IP远程访问指南,本地部署与远程访问实践,树莓派部署Web站点及无公网IP远程访问实践指南,树莓派部署Web站点及无公网IP远程访问实践指南,本地部署与远程访问详解,树莓派部署Web站点及无公网IP远程访问实践详解,本地部署与远程访问指南,树莓派部署Web站点及无公网IP远程访问实践详解,本地部署与远程访问指南。
  • vue2技术栈实现AI问答机器人功能(流式与非流式两种接口方法),Vue2技术栈实现AI问答机器人功能,流式与非流式接口方法探究,Vue2技术栈实现AI问答机器人功能,流式与非流式接口方法详解
  • 发表评论

    快捷回复:表情:
    评论列表 (暂无评论,0人围观)

    还没有评论,来说两句吧...

    目录[+]

    取消
    微信二维码
    微信二维码
    支付宝二维码