位置: 编程技术 - 正文

ES6的新特性概览(es6十大特性)

编辑:rootadmin

推荐整理分享ES6的新特性概览(es6十大特性),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:es6特性总结,es6十大特性,es6新特性promise,es6新特性及作用,es6十大特性,es6新特性promise,es6新增了哪些特性,es6最新特性,内容如对您有帮助,希望把文章链接给更多的朋友!

Nick Justice是GitHub开发者计划的一员。早在ES6语言标准发布之前,他就借助像Babel这样的转译器以及最新版本的浏览器在自己的项目中使用ES6特性。他认为,ES6的新特性将极大地改变JavaScript的编写方式。

ES6(ECMAScript 6)是即将到来的新版本JavaScript语言的标准,代号harmony(和谐之意,显然没有跟上我国的步伐,我们已经进入中国梦版本了)。上一次标准的制订还是年出台的ES5。目前ES6的标准化工作正在进行中,预计会在年月份放出正式敲定的版本。但大部分标准已经就绪,且各浏览器对ES6的支持也正在实现中。

技术虽然发展太快,但是我们不停下学习的步伐,就不会被新技术淘汰,下面我们一起来学习es6的新特征吧。

箭头操作符

如果你会C#或者Java,你肯定知道lambda表达式,ES6中新增的箭头操作符=>便有异曲同工之妙。它简化了函数的书写。操作符左边为输入的参数,而右边则是进行的操作以及返回的值Inputs=>outputs。

我们知道在JS中回调是经常的事,而一般回调又以匿名函数的形式出现,每次都需要写一个function,甚是繁琐。当引入箭头操作符后可以方便地写回调了。请看下面的例子:

类的支持

ES6中添加了对类的支持,引入了class关 键字(其实class在JavaScript中一直是保留字,目的就是考虑到可能在以后的新版本中会用到,现在终于派上用场了)。JS本身就是面向对象 的,ES6中提供的类实际上只是JS原型模式的包装。现在提供原生的class支持后,对象的创建,继承更加直观了,并且父类方法的调用,实例化,静态方 法和构造函数等概念都更加形象化。

下面代码展示了类在ES6中的使用:

增强的对象字面量

对象字面量被增强了,写法更加简洁与灵活,同时在定义对象的时候能够做的事情更多了。具体表现在:

1.可以在对象字面量里面定义原型

2.定义方法可以不用function关键字

3.直接调用父类方法

这样一来,对象字面量与前面提到的类概念更加吻合,在编写面向对象的JavaScript时更加轻松方便了。

字符串模板

字符串模板相对简单易懂些。ES6中允许使用反引号 ` 来创建字符串,此种方法创建的字符串里面可以包含由美元符号加花括号包裹的变量 ${vraible}。如果你使用过像C#等后端强类型语言的话,对此功能应该不会陌生。

解构

自动解析数组或对象中的值。比如若一个函数要返回多个值,常规的做法是返回一个对象,将每个值做为这个对象的属性返回。但在ES6中,利用解构这一特性,可以直接返回一个数组,然后数组中的值会自动被解析到对应接收该值的变量中。

参数默认值,不定参数,拓展参数

默认参数值

现在可以在定义函数的时候指定参数的默认值了,而不用像以前那样通过逻辑或操作符来达到目的了。

ES6的新特性概览(es6十大特性)

不定参数

不定参数是在函数中使用命名参数同时接收不定数量的未命名参数。这只是一种语法糖,在以前的JavaScript代码中我们可以通过arguments变量来达到这一目的。不定参数的格式是三个句点后跟代表所有不定参数的变量名。

比如下面这个例子中,…x代表了所有传入add函数的参数。

拓展参数

拓展参数则是另一种形式的语法糖,它允许传递数组或者类数组直接做为函数的参数而不用通过apply。

let与const 关键字

可以把let看成var,只是它定义的变量被限定在了特定范围内才能使用,而离开这个范围则无效。const则很直观,用来定义常量,即无法被更改值的变量。

for of 值遍历

我们都知道for in循环用于遍历数组,类数组或对象,ES6中新引入的for of循环功能相似,不同的是每次循环它提供的不是序号而是值。

iterator, generator

1.iterator: 它是这么一个对象,拥有一个next方法,这个方法返回一个对象{done,value},这个对象包含两个属性,一个布尔类型的done和包含任意值的value

2.iterable: 这是这么一个对象,拥有一个obj[@@iterator]方法,这个方法返回一个iterator

3.generator: 它是一种特殊的iterator。反的next方法可以接收一个参数并且返回值取决与它的构造函数(generator function)。generator同时拥有一个throw方法

4.generator函数: 即generator的构造函数。此函数内可以使用yield关键字。在yield出现的地方可以通过generator的next或throw方法向外界传递值。generator 函数是通过function*来声明的

5.yield关键字:它可以暂停函数的执行,随后可以再进进入函数继续执行

模块

在ES6标准中,JavaScript原生支持module了。这种将JS代码分割成不同功能的小块进行模块化的概念是在一些三方规范中流行起来的,比如CommonJS和AMD模式。

将不同功能的代码分别写在不同文件中,各模块只需导出公共接口部分,然后通过模块的导入的方式可以在其他地方使用。

这些是新加的集合类型,提供了更加方便的获取属性值的方法,不用像以前一样用hasOwnProperty来检查某个属性是属于原型链上的呢还是当前对象的。同时,在进行属性值添加与获取时有专门的get,set方法。

上面代码我已加了注释,这里进一步解释。对于处理程序,是在被侦听的对象身上发生了相应事件之后,处理程序里面的方法就会被调用,上面例子中我们设置了set的处理函数,表明,如果我们侦听的对象的属性被更改,也就是被set了,那这个处理程序就会被调用,同时通过参数能够得知是哪个属性被更改,更改为了什么值。

Symbols

我们知道对象其实是键值对的集合,而键通常来说是字符串。而现在除了字符串外,我们还可以用symbol这种值来做为对象的键。Symbol是一种 基本类型,像数字,字符串还有布尔一样,它不是一个对象。Symbol 通过调用symbol函数产生,它接收一个可选的名字参数,该函数返回的symbol是唯一的。之后就可以用这个返回值做为对象的键了。Symbol还可以用来创建私有属性,外部无法直接访问由symbol做为键的属性值。

有关ES6的新特性就给大家介绍这么多,希望对大家有所帮助!

ES6中非常实用的新特性介绍 ECMAScript6离我们越来越近了,作为它最重要的方言,Javascript也即将迎来语法上的重大变革,InfoQ特开设深入浅出ES6专栏,来看一下ES6将给我们带来哪些新

JavaScript File分段上传 HTMLformmethod="POST"name="form"action="/mupload/upload/"enctype="multipart/form-data"inputtype='hidden'name='csrfmiddlewaretoken'value=''/inputid='file'type='file'name='file'onchange=""/inputid='butt

TypeScript Type Innference(类型判断) TypeScript是微软开发的JavaScript的超集,TypeScript兼容JavaScript,可以载入JavaScript代码然后运行。TypeScript与JavaScript相比进步的地方包括:加入注释,让编译

标签: es6十大特性

本文链接地址:https://www.jiuchutong.com/biancheng/377474.html 转载请保留说明!

上一篇:JavaScript字符串常用的方法(JAVAscript字符串类型单引号和双引号意一样吗)

下一篇:ES6中非常实用的新特性介绍(es6新方法有哪些)

  • 餐补如何入账
  • 结转本月完工入库产品制造成本,甲产品800台全部完工
  • 计提工会经费的基数是什么
  • 单位交的社保明年能退吗
  • 会计能开收据吗?
  • 基本户被冻结怎么缴投标保证金
  • 记账人和复核人是一个人吗
  • 准则依据
  • 企业重组资产转移是否涉税
  • 小规模纳税人转一般纳税人
  • 持有至到期投资科目被取消了吗
  • 企业所得税季报资产总额怎么填
  • 对账状态未对账
  • 提示没有安装QQ怎么处理
  • 本月应该确认收入,但是一般下月才开票该怎么处理?
  • 什么叫未完税
  • 以前年度补交的税款进什么科目?
  • 新个税劳务报酬怎么算
  • 分公司可以单独签协议吗
  • 计提所得税费用会计分录
  • 工程价款是什么意思
  • 免抵退转免税
  • 城市维护建设税的计税依据是什么
  • 非房地产开发企业土地增值税扣除项目
  • 一般纳税人十万以下免教育费附加
  • 个人部分公积金可以抵扣个税吗
  • 所有者权益为什么是负债
  • 公司员工意外险怎么买
  • 建筑行业挂靠开票怎么做账务处理?
  • 工程竣工的条件是什么
  • 赔偿金和违约金有什么区别
  • 外贸进出口企业退税
  • three.js 教程
  • 在双方发生纠纷时品牌授权书的法律意义
  • 转销坏账准备的会计分录有一个还是两个
  • 退回的税控盘费用如何做会计分类
  • 下列项目的进项税额可从销项税
  • torch.nn.functional.interpolate()函数详解
  • php获取当前文件夹
  • 利润分配的顺序依次是什么
  • mysql 长事务
  • 其他权益工具确认投资损失的账务处理
  • 什么是社会团体组织
  • 营业执照上有劳务派遣还需要办其他手续吗
  • 标签显示内容怎么设置
  • 劳务派遣的开票税点是多少
  • 销货方怎么开具购买方红冲的发票
  • PostgreSQL教程(十):性能提升技巧
  • 为取得固定资产而发生的什么支出可计入固定资产成本
  • 以后年度结转如何结转
  • 检测费用开票税率
  • 对非本单位的营销方案
  • 收银电脑怎么录商品
  • 废料入库如何估价
  • 企业买车购置税可以抵增值税吗
  • 微信支付宝收入支出怎么做流水账
  • 发票上的数量怎么填写
  • 增值税结转是月结转还是年度
  • win7 bug
  • xp系统本地连接启用不了
  • 电脑重新安装windows后还用激活吗
  • win10怎么打开语言设置
  • win7系统的安装
  • Win7 64位操作系统怎么使用DVD刻录光驱复制软件
  • linux vim使用
  • win7升级win8.1失败
  • win7纯净版系统安装教程
  • 开源镜像下载到本地
  • windows日历
  • win8初始登录账号密码
  • window注销
  • node.js gui
  • perl -i -pe
  • Vuforia unity3d 发布 eclipse工程
  • angular.js
  • layout_gravity与gravity的区别
  • unity相关问题
  • python3 flask
  • 安徽省国家税务总局电子税务局
  • 内蒙古国家税务局网上电子税务局官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设