对于 ES6 新特性中的 ... 可以简单的理解为下面一句话就可以了: 对象中的扩展运算符(...)用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中. 作用类似于 Object.assign() 方法,我们先来看一下 Object.assign() 方法: Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象.它将返回目标对象.如下: const target = { a: 1, b: 2 }; const source = { b: 4, c: 5…
介绍 ES6:ECMScript6 首先,一个常见的问题是,ECMAScript 和 JavaScript 到底是什么关系? ECMAScript是一个国际通过的标准化脚本语言: JavaScript由ECMAScript和DOM.BOM三者组成: 可以简单理解为:ECMAScript是JavaScript的语言规范,JavaScript是ECMAScript的实现和扩展: 2011 年,ECMAScript 5.1 版发布.之前我们大部分人用的也就是ES5. 2015 年 6 月,ECMASc…
JavaScript ES6 带来了新的语法和新的强大功能,使您的代码更现代,更易读 const ,  let and var 的区别: const , let 是 ES6 中用于声明变量的新关键字. const const定义的变量不可以修改,而且必须初始化 var var定义的变量可以修改,如果不初始化会输出undefined,不会报错 let let是块级作用域,函数内部使用let定义后,对函数外部无影响 这对于定位选择器非常有用.例如,当我们有一个触发事件的按钮时,或者当您想在 Java…
let的作用是声明变量,和var差不多. let是ES6提出的,在了解let之前,最好先熟悉var的原理. JavaScript有一个机制叫“预解析”,也可以叫“提升(Hoisting)机制”.很多刚接触JavaScript的人都会被这个机制弄混.比如: // var 的情况 console.log(a); // 输出undefined var a = 2; 在预编译阶段,JavaScript引擎会将上面的a函数修改成下面的写法: var a; //声明且初始化为undefined consol…
九.数据类型 Symbol /* * Symbol 数据类型 概念: Symbol 提供一个独一无二的值 * */ { let a1 = Symbol(); let a2 = Symbol(); console.log(a1===a2,a1,a2); //false let a3 = Symbol.for('a3'); //*Symbol.for 会检查window下是否存在 'a3' let a4 = Symbol.for('a3'); console.log(a3===a4); //true…
es6 一经推出,Promise 就一直被大家所关注.那么,为什么 Promise 会被大家这样关注呢?答案很简单,Promise 优化了回调函数的用法,让原本需要纵向一层一层嵌套的回调函数实现了横向的调用,也就是链式调用. 我们先来看下面的代码: function getData(){ setTimeout(()=>{ var name = "zhangsan"; }, 1000) } getData(); 在上面的代码中,我们模拟了一个异步时间,一秒后输出 name = &q…
在之前的文章中我们讲过原型,原型链和原型链继承的文章,在 ES6 中为我们提供了更为方便的 class,我们先来看一下下面的例子: function Person(name) { //构造函数里面的方法和属性 this._name = name; this.getName = function () { console.log(this._name); }; this.setName = function (name) { this._name = name; }; } var p = new…
解构的作用是可以快速取得数组或对象当中的元素或属性,而无需使用arr[x]或者obj[key]等传统方式进行赋值 var arr = [1, 2, 3]; //传统方式 var a = arr[0], b = arr[1], c = arr[2]; console.log(a, b, c); // 1 2 3 //解构方式 var [a, b, c] = arr; console.log(a, b, c); // 1 2 3 从上面的例子我们可以看出,要想获取一个数组中的值,我们可以利用传统的索…
参考: es6 扩展运算符 三个点(...) 经常回顾,方能真正掌握. 一.含义 扩展运算符( spread )是三个点(...).它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列. console.log(...[1, 2, 3]) // 1 2 3 console.log(1, ...[2, 3, 4], 5) // 1 2 3 4 5 [...document.querySelectorAll('div')] // [<div>, <div>, <di…
本文实例讲述了ES6新特性三: Generator(生成器)函数.分享给大家供大家参考,具体如下: 1. 简介 ① 理解:可以把它理解成一个函数的内部状态的遍历器,每调用一次,函数的内部状态发生一次改变. ② 写法: function* f() {} ③ 作用:就是可以完全控制函数的内部状态的变化,依次遍历这些状态. ④ 运行过程:当调用Generator函数的时候,该函数并不执行,而是返回一个遍历器(可以理解成暂停执行).通过调用next()开始执行,遇到yield停止执行,返回一个value…