ES6新增加了一些特性下面我就一边回忆一边写博文吧。

1、es6里面给我印象最深的应该就是箭头操作符(=>),它简化了函数的书写,第一次看见的时候完全懵逼,然后百度后才知道。操作符左边为输入的参数右边是进行操作以及返回值。

例如:

var arr=[5,6,9];

//传统方式写法

arr.forEach(function(i,j,k){console.log(i)});

//es6的写法

arr.forEach(i=>alert(i));

2、es6里面添加了对类的支持。在我印象中我写累大多数就是Java,不了解的时候还不知道万能的js居然也开出这种花来了。我看过一篇博文现在引用他那句话吧,他说”es6提供的类实际上只是js的原型模式的包装”。现在提供的原生class支持后,对继承和对象的创建更加直观了。

例子:

//定义一个类

class Fruit{

  //构造器

  constructor(name){

  this.name=name;

}

  //方法

  Name(){

  alert("我是:"+this.name);

}

}

//类的继承

class Programmer exends Fruit{

  constructor(name){

  //调用父类构造器进行初始化

  super(name);

}

program(){

  console.log("我在编译中......");

}

}

//测试类

var fruit=new Fruit("apple"),banana=new Fruit("banbana"),pear=new Fruit("pear");

Fruit.Name();//我是苹果

banana.Name();//我是香蕉
pear.Name();//我是梨
pear.program();//我在编译中......
3、增强的对象字面量。对象字面量被增强写法更加简洁了,现在可以在对象字面量里面定义原型,还可以不用function关键字定义方法,也可以直接调用父类方法。

现在来通过对象字面量来创建对象

var People={

  look(){

  alert("lead a book......");

};

var student={

  __proto__:People,//设置这个对象的原型为People,相当于继承关系

  school:"youdian",

  course(){

  alert("上课");

}

};

  People.look();//lead a book......
  student.look();//lead a book......
}

4、字符串模板es6中允许使用。ES6中允许使用反引号来创建字符串(创建的字符串里面可以包含由$符号加花括号包裹的变量${variable})

var num=Math.eandom();

alert(${num});

5、解构。自动解析数组或者对象中的值。

6、可以在定义函数的时候指定参数的默认值(以前是通过逻辑或者操作符来完成)

以前:

function a(i){

  var i=i||'two';

  alert(i);

}

ES6:

function b(j='one'){

  console.log(hello ${j});

}

7、不定参数。就是不知道具体有多少个参数的时候可以使用。格式就是三个点后来跟代表有不定参数的变量名字。

例如:

function add(...X){

  //把所有参数相加

  return X.reduce((m,n)=>m+n);

}

  //传递任意个数的参数

  alert(add(5,6,7,8,9));//结果就是5+6+7+8+9=35

8、拓展参数。它允许传递数组或者数组可以直接作为函数的参数而不再通过用apply的形式。

var name=['bvcx','asdf','qwer','vcx'];

function student(name1,name2,name3,name4){

  console.log(学生名字有:${name1},${name2},${name3},${name4});

}

//以拓展参数的形式传递,能更好的映射到每个单独的参数

student(...name);//学生名字有:bvcx,asdf,qwer,vcx

以前 我们用  student.apply(null,name);//学生名字有:bvcx,asdf,qwer,vcx

9、for of值遍历。不同于for in,每次循环它提供的不是序号而是值。

var arr=['L','C'.'W','V'];

for(v of arr){

  alert(v);//输出 L,C,W,V

}

10、模块。JavaScript原生支持module了,这种可以将js代码分割成不同功能的小块进行模块化。(不是很熟悉。毕竟接触太少,等研究清楚在来细细谈论)

ES6新加了很多功能就不在一一说出来了,总结:感觉前端知识越来越靠近后端了,看来需要加把劲了。。。。

接触到得到新语言里面涉及到很多关于ECMscript相关知识,所以还是来总结一下吧的更多相关文章

  1. C# 3.0新语言特性和改进(一)

    引言 关于C#3.0的特性,园子里已经有了一大把,可能大家都很熟悉了,虽然本人开发中使用过,但自己还是需要记录一下,总结一下.同时也是后面写Linq知识的基础.希望有兴趣的朋友,可以看看. C# 3. ...

  2. 现代的新语言--Swift初探

    新的语言 WWDC简短的介绍,新的语言Swift就问世了,尽管新语言的名字导致贴吧下歌手粉丝和开发人员们争抢地盘- -,只是雨燕就是这么来了. WWDC keynote里给Swift打上了非常多标签: ...

  3. Swift 新语言开发

    全书文件夹: 一.Welcome to Swift 二.Language Guide 三.Language Reference /* 译者的废话: 几个小时前熬夜看了WWDC,各种激动,今年非常有料啊 ...

  4. Kotlin新语言简介和快速入门知识点

    Kotlin新语言简介和快速入门知识点 简介:Kotlin是最近由JetBrains发布的一种基于JVM的编程语言,已经被Google宣布为开发Android App的一级语言Kotlin有着与Jav ...

  5. python的第一个程序“Hello,World”,传闻要想学好新语言....

    传闻要想学好新语言,第一个程序必须是“Hello,World”...O(∩_∩)O哈哈~ 下面附上代码: # -*- coding:utf-8 -*- print("Hello,World& ...

  6. Java8新语言特性

    Java8简明指南 欢迎来到Java8简明指南.本教程将一步一步指导你通过所有新语言特性.由短而简单的代码示例,带你了解如何使用默认接口方法,lambda表达式,方法引用和可重复注解.本文的最后你会熟 ...

  7. LINQ体验(2)——C# 3.0新语言特性和改进(上篇)

    整体来说.Visual Studio 2008和.NET 3.5是建立在.NET2.0核心的基础之上,.NET2.0核心本身将不再变化(假设不了解.NET2.0的朋友,请參看MSDN或者一些经典的书籍 ...

  8. 给本体ONT技术社区的第一封公开信-涉及到不少区块链技术知识

    给本体ONT技术社区的第一封公开信-涉及到不少区块链技术知识 共识是区块链的核心机制,在一系列的区块链的发展历史当中,PoW/PoS/BFT等系列的共识算法都在各自的应用场景发挥了不同作用.在本体的第 ...

  9. Web客户端语言HTML、XHTML和XML相关知识介绍

    HTML简介 HTML(Hyper Text Mark-up Language)即超文本标记语言或超文本链接标示语言,是目前网络上应用最为广泛的语言,也是构成网页文档的主要语言.HTML文本是由HTM ...

随机推荐

  1. mysql TIMESTAMP 设置为可NULL字段

    今天遇到问题是mysql新建表的时候TIMESTAMP 类型的字段 默认是NOT NULL 然后上网查了一下 发现 很多都说 就是不能为NULL的 这都什么心态 其实设置为空很简单 只要在字段后面加上 ...

  2. mysql5.7.10免安装版出现的问题及应对

    在对应目录下新建my.ini [mysqld] # 设置mysql的安装目录 basedir=D:\mysql-5.7.10 # 设置mysql数据库的数据的存放目录,必须是data datadir= ...

  3. SQL Server中cursor的使用步骤

    参考文章: http://www.cnblogs.com/knowledgesea/p/3699851.html http://www.cnblogs.com/moss_tan_jun/archive ...

  4. NC台网震相走时获取及 HYPOINVERSE 格式读取

    HYPOINVERSE格式介绍:http://www.ncedc.org/ftp/pub/doc/man5/ncsn.phase.5 获取网站: http://www.ncedc.org/ncedc/ ...

  5. https适配

    http://www.jianshu.com/p/f312a84a944c http://www.2cto.com/kf/201611/570823.html http://www.cnblogs.c ...

  6. centos6.4下面安装postgresql以及客户端远程连接

    一.安装 centos6.4服务器IP:192.168.220.131 window7客户端IP:192.168.199.218 在centos官网http://www.postgresql.org/ ...

  7. android.app.Activity阅读摘要,有时候会不会需要保持一些现场数据呢? 想让系统帮你退出到后台或者挂掉前做些前置保持工作吗,重点参考吧:

    * * @param savedInstanceState If the activity is being re-initialized after * previously being shut ...

  8. Unable to run app in Simulator

    xcode6 beta出现 “Unable to run app in Simulator” 错误提示,之前一直用着好好的,重启xcode就可以了. xcode6 beta出现 “Unable to ...

  9. Thinkphp模型问题(一)

    很长一段时间,脑海里没有模型和控制器的区别,几乎把所有代码都敲在控制器里边了. 来自于ThinkPhp3.2.3手册模型定义 ​​​​​​​模型类的作用大多数情况是操作数据表的,如果按照系统的规范来 ...

  10. Spring的依赖注入怎么理解

    先看一段代码假设你编写了两个类,一个是人(Person),一个是手机(Mobile). 人有时候需要用手机打电话,需要用到手机的dialUp方法. 传统的写法是这样: Java code public ...