位置: 编程技术 - 正文

跟我学习javascript的最新标准ES6(java script)

编辑:rootadmin

推荐整理分享跟我学习javascript的最新标准ES6(java script),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:java script入门,java script入门,java script教程,java script课程,java script教程,java script,java script,java learning,内容如对您有帮助,希望把文章链接给更多的朋友!

虽然ES6都还没真正发布,但已经有用ES6重写的程序了,各种关于ES的提议已经开始了,这你敢信。潮流不是我等大众所能追赶的。

潮流虽然太快,但我们不停下学习的步伐,就不会被潮流丢下的,下面来领略下ES6中新特性,一堵新生代JS的风采。

箭头操作符

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

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

大家可以打开文章开头提到的traceur在线代码转译页面输入代码来查看效果。

类的支持

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

下面代码展示了类在ES6中的使用。再次??乱痪洌?憧梢越??胩??raceur自己查看运行结果。

增强的对象字面量

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

可以在对象字面量里面定义原型 定义方法可以不用function关键字 直接调用父类方法

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

字符串模板

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

解构

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

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

1、默认参数值

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

2、不定参数

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

3、拓展参数

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

let与const 关键字

跟我学习javascript的最新标准ES6(java script)

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

for of 值遍历

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

注意,此功能google traceur并未实现,所以无法模拟调试,下面有些功能也是如此

iterator, generator

这一部分的内容有点生涩,详情可以参见这里。以下是些基本概念。

iterator:它是这么一个对象,拥有一个next方法,这个方法返回一个对象{done,value},这个对象包含两个属性,一个布尔类型的done和包含任意值的value iterable: 这是这么一个对象,拥有一个obj[@@iterator]方法,这个方法返回一个iterator generator: 它是一种特殊的iterator。反的next方法可以接收一个参数并且返回值取决与它的构造函数(generator function)。generator同时拥有一个throw方法 generator 函数: 即generator的构造函数。此函数内可以使用yield关键字。在yield出现的地方可以通过generator的next或throw方法向外界传递值。generator 函数是通过function*来声明的 yield 关键字:它可以暂停函数的执行,随后可以再进进入函数继续执行

模块

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

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

Map,Set 和 WeakMap,WeakSet

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

下方代码来自es6feature

有时候我们会把对象作为一个对象的键用来存放属性值,普通集合类型比如简单对象会阻止垃圾回收器对这些作为属性键存在的对象的回收,有造成内存泄漏的危险。而WeakMap,WeakSet则更加安全些,这些作为属性键的对象如果没有别的变量在引用它们,则会被回收释放掉,具体还看下面的例子。

正文代码来自es6feature

Proxies

Proxy可以监听对象身上发生了什么事情,并在这些事情发生后执行一些相应的操作。一下子让我们对一个对象有了很强的追踪能力,同时在数据绑定方面也很有用处。

以下例子借用自这里。

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

Symbols

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

以下例子来自es6features

Math,Number,String,Object 的新API

对Math,Number,String还有Object等添加了许多新的API。下面代码同样来自es6features,对这些新API进行了简单展示。

Promises

Promises是处理异步操作的一种模式,之前在很多三方库中有实现,比如jQuery的deferred 对象。当你发起一个异步请求,并绑定了.when(), .done()等事件处理程序时,其实就是在应用promise模式。

总结就是一句话,前后端差异越来越小了,本文基于lukehoban/es6features ,同时参考了大量博客资料,小编做这么多功课的目的就是帮助大家更好地了解javascript的最新标准ECMAScript 6,希望对大家的学习有所帮助。

跟我学习javascript创建对象(类)的8种方法 8中javascript创建对象(类)的方法,依依介绍给大家,希望大家喜欢。1.使用Object构造函数来创建一个对象下面代码创建了一个person对象,并用两种方式打

跟我学习javascript的异步脚本加载 先来看这行代码:scriptsrc="allMyClientSideCode.js"/script这有点儿……不怎么样。这该放在哪儿?开发人员会奇怪,靠上点,放到head标签里?还是靠下点,放

JavaScript制作淘宝星级评分效果的思路 小编也是刚开始学JavaScript,觉得淘宝评星效果很棒,于是产生了自己写一个的想法,先给大家分享一下实现效果:现附上自己写的源代码!DOCTYPEhtmlhtmllan

标签: java script

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

上一篇:每天一篇javascript学习小结(面向对象编程)(每天一篇小练笔30字)

下一篇:跟我学习javascript创建对象(类)的8种方法(java教程 视)

  • 印花税征税范围是什么
  • 外贸企业出口退税计算公式
  • 汽车购置税怎么在手机上缴费
  • 用现金支付需要附哪些单据
  • 房地产可抵扣的税有哪些
  • 2018年度企业所得税税率表
  • 发票章没盖在盖章处
  • 采用托收承付方式怎么做分录?
  • 二手房差额税需要多少钱怎么计算的
  • 混搭销售的企业有哪些
  • 退货但发票不冲销
  • 收到投资款需要什么原始凭证
  • 增值税发票不小心撕坏了怎么办
  • 某大宾馆因工作需要
  • 自然灾害造成的存货净损失计入什么科目
  • 运输费未取得运输专用发票怎么抵扣?
  • 其他应收款借方和贷方什么意思
  • 全年平均职工人数按季度平均公式
  • 计提应收利息怎么做分录
  • 运输公司租赁车辆怎么做账
  • 兼营行为的含义
  • 怎么防止电脑被别人远程控制
  • 长期股权投资和资本公积关系
  • win11如何设置定时关机
  • php数组函数输出《咏雪》里有多少"片"字
  • ScanMailOutLook.exe - ScanMailOutLook是什么进程 有什么用
  • s3tray2.exe - s3tray2是什么进程 有什么用
  • 劳务公司怎么做进项
  • 笔记本电池保养注意事项
  • 修改配置文件是什么意思
  • vue调整图标大小
  • php 动态执行代码
  • 参展费会计分录
  • 员工借款能直接从公司账上转么
  • 图像分类实战
  • vue watcher
  • 织梦前台的菜单怎么换
  • 计提工资大于实发工资企业所得税怎么算
  • SQL SERVER 2000通讯管道后复用劫持
  • 一般纳税人月销售额10万以下城建税
  • 建安企业费用有哪些
  • 固定制造费用差异的意义
  • 印花税的其他凭证指的是什么
  • 免抵退税额账务处理办法
  • 会议费报销管理办法
  • 租赁收入属于什么行业
  • 银行汇票结算业务
  • 增值税发票折扣发票
  • 个税专项扣除住房租金标准
  • 公司的钱如何提出来
  • 借款和工程款可以分开吗
  • 期间费用包括哪三种
  • 原始凭证基本要求是什么
  • 什么叫商业会计
  • gnu linux编程指南
  • 苹果电脑安装中国银行网银助手
  • win10rs2是哪个版本
  • linux删除用户组和用户
  • windows预体验版本遇到问题
  • pavprot.exe - pavprot是什么进程 作用是什么
  • Win10 Mobile Redstone预览版14291上手体验评测
  • android2d游戏开发
  • css优化提高性能的方法有哪些
  • unityz
  • 分离与继承的思想是什么
  • 使用jquery实现的项目
  • windows、linux
  • 批处理文件bat
  • 子弹追踪原理
  • 适配是什么
  • jquery过滤选择器按照过滤规则分类包括?
  • Python中字符串的索引
  • js怎么设置图片大小
  • JQuery EasyUI Layout 在from布局自适应窗口大小的实现方法
  • 最新印花税税目表2022
  • 山西税务官网登录
  • 中国民营经济十大新闻人物
  • 江苏房产税如何计算公式
  • 煤炭限产是利好还是利空
  • 如何网上办税票
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设