全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

ES6新特性之解构、参数、模块和记号用法示例

本文实例讲述了ES6新特性之解构、参数、模块和记号用法。分享给大家供大家参考,具体如下:

一、解构

解构提供了一个方便的地从对象或数组中提取数据的方法,请看下面的例子:

//ES6
let [x,y]=[1,2];//x=1,y=2
//ES5
var arr=[1,2];
var x=arr[0];
var y=arr[1];

使用这个语法,可以一次性给多个变量赋值。一个很好的附加用处是可以很简单的交换变量值:

let x=1,y=2;
[x,y]=[y,x];x=2 y=1

解构也可以用于对象,注意对象中必须存在的对应的键:

let obj={x:1,y:2};
let {x,y}=obj;//a=1,b=1

或者

let {x:a,y:b}=obj;//a=1,b=2

另一个有趣的模式是模拟多个返回值:

function doSomething(){
   return [1,2];
}
let [x.y]=doSomething();//x=1.y=2

解构可以用来为参数对象赋默认值。通过对象字面量,可以模拟命名参数:

function doSomething({y:1,z:0}){
   console.log(y,z);
}
doSomething({y:2})

二、参数

1、默认值

在ES6中,可以定义函数的参数默认值。语法如下:

function doSomething(){
   return x*y;
}
doSomething(5);//10
doSomethinf(5,undefined);//10
doSomething(5,3);//15<br><br>//ES5中给参数赋默认值<br>function doSomething(x,y){<br>y=y===undefined?2:y;<br>return x*y;<br>}

传递undefined或不传参数时都会触发参数使用默认值。

2、REST参数

前面我们已经学习了省略号操作符,剩余参数和它很类似,它同样是使用‘...'语法,允许你把末尾的参数保存在数组中:

funtion doSomething(x,...remaining){
  return x*rremaining.length;
}
dodSomething(5,0,0,0);//15

三、模块

在ES6的模块语法中,模块设计围绕export和import关键词,现在让我们看一个包含两个模块的例子:

//lib/ath.js
export function sum(x,y){
  return x+y
};
export var pi=3.14;
//app.js
import {sum,pi}form"lib/math.js";
console.log(sum(pi,pi);

正如你所见,可以存在多个export声明,每个都要明确的指出输出值得类型。本例中的import声明使用一种语法,来明确定义被导入的内容,可以使用*通配符,结合as关键词给模块提供一个本地名称,把模块当成一个整体导入:

//app.js
import*as math form"lib/math.js";
console.lgo(math.sum(math.pi,math.pi));

模块系统有一个default输出,它可以是一个函数,只需要提供一个本地名称就可以导入这个默认值:

//lib/my-fn.js
export default function(){
  console.log('echo echo);
}
//app.js
import doSomething from 'lib/my-fn,js';
doSomething();

请注意import声明是同步的,但是模块代码需在所有依赖加载完后才会运行

四、类

类的创建围绕calss和constructor关键词,以下是个简短的示例:

class Vehicle{
   constructor(name){
     this.name=name;
     this.kind=''Vehicle";
   }
  getName(){
     return this.name;
  }
};
//Create an instance
let myVehicle=new Vehicle('rocky');

注意类的定义不是一般的对象,因此,类的成员间没有逗号。创建一个类的对象时,需要使用new关键词,继承一个基类时,使用extends:

class Car extends Vehicle{
   constructor(name){
      super(name);
      this.kind='car';
   }
}
let myCar=new Car('bumpy');
myCar.getName();//'bumpy';
myCar instanceof Car;//true
myCar instanceof Vehicle;//true

从衍生类中,你可以使用从任何构造函数或方法中使用super来获取它的基类:使用super()调用父类构造函数;调用其他成员。

五、记号

记号是一个新的原生数据的类型,像Number和String一样,你可以使用记号为对象属性创建唯一标示或创建唯一的常量。创建方法如下:

const MY_CONSTANT=Symbol();
let obj={};
obj[MY_CONSTANT]=1;

注意通过记号产生的键值对不能通过Object.getOwnPorpertyNames()获得,在for...in遍历、Object.key()、JSON.stringify()中均不可见,这是与基于字符串的键相反的,你可以通过Object.getOenPropertySymbols()获取一个对象的记号数组。记号与const配合很合适,因为它们都有不可改变的特性。

转译

现在浏览器对ES6的支持还不广泛,且个浏览器也各不相同,可能你写的代码在用户的浏览器中还不能完全解析,这就是我们为什么需要把代码转换成能在当前的任何浏览器中良好运行的旧版本JavaScript(ES5),这种转换通常称为转译,我们必须要这么做,知道所有我们想兼容的浏览器都能运行ES6为止。转译的方法有很多种,包括Bable、Traceur、TypeScript等。

希望本文所述对大家ECMAScript程序设计有所帮助。


# ES6  # 新特性  # 解构  # 参数  # 模块  # 记号  # ES6知识点整理之函数数组参数的默认值及其解构应用示例  # 解析JavaScript的ES6版本中的解构赋值  # 深入浅出讲解ES6的解构  # ES6解构赋值实例详解  # 深入理解ES6之数据解构的用法  # ES6解构赋值的功能与用途实例分析  # ES6学习之变量的解构赋值  # es6学习之解构时应该注意的点  # 基于ES6作用域和解构赋值详解  # ES6 对象的新功能与解构赋值介绍  # ES6知识点整理之数组解构和字符串解构的应用示例  # 关键词  # 默认值  # 你可以  # 多个  # 是一个  # 提供一个  # 组中  # 这是  # 器中  # 是个  # 都有  # 很好  # 都要  # 让我们  # 这就是  # 都能  # 才会  # 还不  # 可以用  # 遍历 


相关文章: ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?  招贴海报怎么做,什么是海报招贴?  网站网页制作专业公司,怎样制作自己的网页?  c# 在高并发场景下,委托和接口调用的性能对比  网站建设设计制作营销公司南阳,如何策划设计和建设网站?  如何在香港服务器上快速搭建免备案网站?  定制建站平台哪家好?企业官网搭建与快速建站方案推荐  如何在阿里云虚拟服务器快速搭建网站?  如何用wdcp快速搭建高效网站?  浅析上传头像示例及其注意事项  企业网站制作公司网页,推荐几家专业的天津网站制作公司?  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  香港网站服务器数量如何影响SEO优化效果?  网站制作公司排行榜,四大门户网站排名?  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  微信小程序制作网站有哪些,微信小程序需要做网站吗?  香港服务器建站指南:免备案优势与SEO优化技巧全解析  公众号网站制作网页,微信公众号怎么制作?  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  建站之星后台管理系统如何操作?  网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?  ,想在网上投简历,哪几个网站比较好?  免费ppt制作网站,有没有值得推荐的免费PPT网站?  如何通过PHP快速构建高效问答网站功能?  广州美橙建站如何快速搭建多端合一网站?  ,交易猫的商品怎么发布到网站上去?  长沙企业网站制作哪家好,长沙水业集团官方网站?  建站之星下载版如何获取与安装?  娃派WAP自助建站:免费模板+移动优化,快速打造专业网站  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  详解jQuery停止动画——stop()方法的使用  宝塔建站后网页无法访问如何解决?  一键制作网站软件下载安装,一键自动采集网页文档制作步骤?  如何用花生壳三步快速搭建专属网站?  如何在阿里云部署织梦网站?    Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  如何制作网站标识牌,动态网站如何制作(教程)?  如何通过可视化优化提升建站效果?  如何在Tomcat中配置并部署网站项目?  建站ABC备案流程中有哪些关键注意事项?  如何批量查询域名的建站时间记录?  免费网站制作appp,免费制作app哪个平台好?  深入理解Android中的xmlns:tools属性  大型企业网站制作流程,做网站需要注册公司吗?  建站之星如何快速更换网站模板? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。