全网整合营销服务商

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

免费咨询热线: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知识点整理之数组解构和字符串解构的应用示例  # 关键词  # 默认值  # 你可以  # 多个  # 是一个  # 提供一个  # 组中  # 这是  # 器中  # 是个  # 都有  # 很好  # 都要  # 让我们  # 这就是  # 都能  # 才会  # 还不  # 可以用  # 遍历 


相关文章: 微信h5制作网站有哪些,免费微信H5页面制作工具?  香港服务器租用费用高吗?如何避免常见误区?  如何注册花生壳免费域名并搭建个人网站?  如何快速生成ASP一键建站模板并优化安全性?  无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?  如何自定义建站之星模板颜色并下载新样式?  网站好制作吗知乎,网站开发好学吗?有什么技巧?  如何快速建站并高效导出源代码?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  制作电商网页,电商供应链怎么做?  济南企业网站制作公司,济南社保单位网上缴费步骤?  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  如何在IIS中新建站点并解决端口绑定冲突?  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  网站制作免费,什么网站能看正片电影?  如何快速上传自定义模板至建站之星?  建站之星如何快速生成多端适配网站?  焦点电影公司作品,电影焦点结局是什么?  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  贸易公司网站制作流程,出口贸易网站设计怎么做?  网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何在VPS电脑上快速搭建网站?  建站之星如何实现五合一智能建站与营销推广?  建站之星2.7模板:企业网站建设与h5定制设计专题  简历在线制作网站免费,免费下载个人简历的网站是哪些?  官网建站费用明细查询_企业建站套餐价格及收费标准指南  公司网站的制作公司,企业网站制作基本流程有哪些?  安云自助建站系统如何快速提升SEO排名?  网站制作说明怎么写,简述网页设计的流程并说明原因?  如何在新浪SAE免费搭建个人博客?  青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?  北京建设网站制作公司,北京古代建筑博物馆预约官网?  如何在腾讯云服务器快速搭建个人网站?  如何用PHP快速搭建CMS系统?  如何获取开源自助建站系统免费下载链接?  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  如何在阿里云虚拟主机上快速搭建个人网站?  ,巨量百应是干嘛的?  上海网站制作开发公司,上海买房比较好的网站有哪些?  深圳企业网站制作设计,在深圳如何网上全流程注册公司?  如何通过IIS搭建网站并配置访问权限?  C#如何使用XPathNavigator高效查询XML  相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?  如何选择网络建站服务器?高效建站必看指南  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  如何在万网自助建站中设置域名及备案?  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  高性能网站服务器配置指南:安全稳定与高效建站核心方案  网站制作的步骤包括,正确网址格式怎么写?  建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析 

您的项目需求

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