ES6新特性学习

1、前言

  近半个月找工做一来,都会常常被问到es6新增特性的问题,例如箭头函数、模板等等,在之前刚接触es6的新语法是,也是只是知道大概知道怎么用而已,也没有深刻的去理解背后的含义。因此挺吃亏的,后面了解了一下,es6终归属于新语法,仍是有存在浏览器兼容的问题,通常的话在框架里面是有比较多一点。在学习es6以前,得先了解一下何为es6:es6全称是ECMAScript 6.0,是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得 JavaScript 语言能够用来编写复杂的大型应用程序,成为企业级开发语言。node

2、知识点

1. const 和 let

const 定义的是常量,也就是不可改变值的变量,像是在node.js里面获取到某一个模块,最好就是使用const定义为常量,以下面例子,获取到路径模块es6

const path = require("path");浏览器

let 用于定义局部变量,只在定义改变量所在的代码块内有效,与var不相同的是,使用var声明的变量能够在全局范围内访问到这个变量,最简单的例子就是for循环。框架

var a = [];
for (var i = 0; i < 10; i++) {
  a[i] = function () {
    console.log(i);
  };
}
a[6](); 

  在这个例子中,输出来的数字是 10,若是说当循环体的 i 变量是用let定义的话,那结果就不同了,就是6。也就是说,变量ilet声明的,当前的i只在本轮循环有效,因此每一次循环的i其实都是一个新的变量,因此最后输出的是6。另外,使用let定义的变量,是不存在变量提高的,也就是说不能先使用变量再定义,这是会保存的。函数

2.箭头函数

ES6容许使用“箭头”(=>)定义函数。学习

var f = v => v

上面语法等同于ui

var f = function (v) {
  return v  
}

若是当箭头函数不须要参数或者多个参数时,能够用()

var f = () => {
    return 5
}     

使用箭头函数须要注意的点:

(1)函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象,缘由是箭头函数根本没有本身的this,致使内部的this就是外层代码块的thisthis

(2)不能够看成构造函数,也就是说,不可使用new命令,由于它没有this,因此也就不能用做构造函数。spa

(3)不可使用arguments对象,该对象在函数体内不存在。若是要用,能够用Rest参数代替。prototype

(4)不可使用yield命令,所以箭头函数不能用做Generator函数。

箭头函数与常规的函数不一样的地方:

不能被用做构造函数:没有内部方法 [[Construct]] (该方法容许普通的函数经过 new 调用),也没有 prototype 属性。所以, new (() => {}) 会抛出错误。

3、

除此以外还有module、export、import、class等新增内容,Javascript愈来愈接近面向对象的语言。

相关文章
相关标签/搜索