Let 命令声明变量 - 只在let命令所在的代码块内有效。ex:{ let a = 10; var b = 21;}a // 报错 ReferenceError: a is not definedb ex:var ar = [];for(var i=0; i<10; i++){ var ix = i; ar[ix] = function(){ console.log(ix); };}ar[6](); // 9 变量提升 for(var y=0;y<10;y++){ let num = y; ar[y] = function(){ console.log(num); }}ar[6](); // 6 Let 不允许在相同作用域内,重复声明同一个变量。ex:...
await 是 async wait 的简写, 是 generator 函数的语法糖。async 函数的特点:async 声明一个方法是异步的,await 则等待这个异步方法执行的完成asyncReadFile = async function () {var f1 = await readFile(‘/etc/fstab‘)var f2 = await readFile(‘/etc/shells‘)console.log(f1.toString())console.log(f2.toString())
}await 只能出现在 async 函数中, 用在 async 外或者普通函数内都会报错function getDay () {returnnew D...
1、Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”(meta programming),即对编程语言进行编程。2、Proxy 可以理解成,在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。Proxy 这个词的原意是代理,用在这里表示由它来“代理”某些操作,可以译为“代理器”。3、ES6 原生提供 Proxy 构造函数,用来生成 P...
npm install babel-cli -g //安装babel babel index.js -o a.js //等同于 babel index.js --out-file a.js 复制index.js为a.jsbabel src/ -d build/ //等同于 babel src/ --out-dir build/ 复制src目录下所有文件到 build目录下//------------------------------
//babel命令放到pageage中,方便调用
package.json =>"scripts": {"test": "echo \"Error: no test specified\" && exit 1","build":"babel src/ -d build/"/...
ES5中生成实例对象的方法是通过构造函数:function Person(name, age){this.name = namethis.age = age
}
Person.prototype.sayName = function () {console.log(this.name)
}
ES6中添加新的语法生成对象实例:class Person {constructor (name, age) {this.name = namethis.age = age}sayName () {console.log(this.name)}
}
原文:http://www.cnblogs.com/running1/p/7506339.html
ES6(2015)异步解决方案 PromiseES5 回调 callbackfunction load (src,callback){let script = document.creatElement(‘script‘)script.src = src // 次操作 是 引擎默认的异步script.onload = () => { callback(src) }document.head.append(script)
}
load(‘./1.js‘,test)function test(name){console.log(name)
}
test(‘tt‘) // 先执行test() 后执行 load()load(‘./1.js‘,function(st){load(‘./2.js‘,function(st){loa...
0x1 let和const letES6新增了let命令,用于声明变量。其用法类似var,但是声明的变量只在let命令所在的代码块内有效。{let x = 10;var y = 20;
}x // ReferenceError: x is not defined
y // 20 var声明变量存在变量提升。也就是在声明变量之前就可以使用该变量。console.log(x) // undefined,var声明变量之前可以使用该变量var x = 10; 而let不会这样,let声明的变量不能在声明之前使用。console.log(x) // ReferenceError: ...
ES6(ECMAScript 6)是即将到来的新版本JavaScript语言的标准,代号harmony(和谐之意,显然没有跟上我国的步伐,我们已经进入中国梦版本了)。上一次标准的制订还是2009年出台的ES5。目前ES6的标准化工作正在进行中,预计会在14年12月份放出正式敲定的版本。但大部分标准已经就绪,且各浏览器对ES6的支持也正在实现中。
ES6给数组添加了一些新特性,而这些新特性到目前为止完全可以运用到自己的业务层。在这一节中将总结有关于ES6给...
前言
ES5中的数据结构,主要是用Array和Object。在ES6中主要新增了Set和Map数据结构。到目前为止,常用的数据结构有四种Array、Object、Set、Map。下面话不多说了,来一起看看详细的介绍吧。
// 数据结构横向对比,增,查,改,删1、map和数组对比{ let map=new Map();let array=[];/**增**/map.set(t,1);array.push({t:1});console.info(map-array,map,array); /**查**/let map_exist=map.has(t);let array_exist=array.find(item...
众所周知,js中的var声明存在变量提升机制,因此ESMAScript 6引用了块级作用域来强化对变量生命周期的控制
let const 声明不会被提升,有几个需要注意的点1、不能被重复声明
假设作用域中已经存在某个标识符(无论该标识符是通过var声明还是let、const变量声明),此时再使用let或const关键定声明会抛错var count=10
let count=20// 此处则会抛出错误,因为同一作用域内不能重复声明
如果当前作用域内嵌另一个作用域,便可在内嵌的...
前言
异步操作是 JavaScript 编程的麻烦事,麻烦到一直有人提出各种各样的方案,试图解决这个问题。
从最早的回调函数,到 Promise 对象,再到 Generator 函数,每次都有所改进,但又让人觉得不彻底。它们都有额外的复杂性,都需要理解抽象的底层运行机制。
异步I/O不就是读取一个文件吗,干嘛要搞得这么复杂?异步编程的最高境界,就是根本不用关心它是不是异步。
async 函数就是隧道尽头的亮光,很多人认为它是异步操作的终极解决...
本文介绍的是关于es6中Async函数的相关内容,非常出来供大家参考学习,需要的朋友们下面来看看详细的介绍:
async 函数
async 函数,使得异步操作变得更加方便。它是 Generator 函数的语法糖。Generator 函数,依次读取两个文件:
var fs = require(fs);
var readFile = function (fileName) {return new Promise(function (resolve, reject) {fs.readFile(fileName, function(error, data) {if (error) reject(error);resolve(data...
本文实例讲述了ES6正则表达式和字符串正则方法。分享给大家供大家参考,具体如下:
RegExp构造函数
在ES5中,RegExp构造函数的参数有两种情况。
第一种情况是,参数是字符串,这时第二个参数表示正则表达式的修饰符(flag)。
var regex = new RegExp(xyz, i);
// 等价于
var regex = /xyz/i;第二种情况是,参数是一个正则表示式,这时会返回一个原有正则表达式的拷贝。
var regex = new RegExp(/xyz/i);
// 等价于
var regex = /x...
本文实例讲述了ES6学习笔记之Set和Map数据结构。分享给大家供大家参考,具体如下:
一.Set
ES6提供了新的数据结构Set。类似于数组,只不过其成员值都是唯一的,没有重复的值。
Set本身是一个构造函数,用来生成Set数据结构。
1 . Set函数可以接受一个数组(或类似数组的对象)作为参数,用来初始化。
var s = new Set();
var set = new Set([1, 2, 3, 4, 4]);
[...set] // [1, 2, 3, 4]
var items = new Set([1, 2, 3, 4, 5, 5, 5...
ES6(ECMAScript 6)是即将到来的新版本JavaScript语言的标准,代号harmony(和谐之意,显然没有跟上我国的步伐,我们已经进入中国梦版本了)。上一次标准的制订还是2009年出台的ES5。目前ES6的标准化工作正在进行中,预计会在14年12月份放出正式敲定的版本。但大部分标准已经就绪,且各浏览器对ES6的支持也正在实现中。
ES6给数组添加了一些新特性,而这些新特性到目前为止完全可以运用到自己的业务层。在这一节中将总结有关于ES6给...