ECMAScript 6 (2015)
-
严格模式
'use strict'
- 如果开启了严格模式,变量不能直接使用,必须先申明,申明变量时一定要用var / let
- 更多介绍:http://www.ruanyifeng.com/blog/2013/01/javascript_strict_mode.html
-
申明一个变量(let)
- let 申明的变量没有变量提升
- let 申明的变量存在块级作用域
- 可以用来解决闭包问题
- let 申明的全局变量在函数内部也可以使用
-
申明一个常量 (const)
- 一旦设置无法修改
- 可以改变对象中的属性
-
字符串的一些扩展方法的使用
-
includes() :返回布尔值,表示是否找到了参数字符串
-
startsWith() :返回布尔值,表示是否找到了参数字符串
-
endsWith() :返回布尔值,表示参数字符串是否在源字符串的尾部
-
repeat():返回一个新字符串,表示将原字符串重复n次
var s = “hello world”; s.startsWith(‘hello’) //true s.startsWith(‘world’,6) //true ,表示从第6个开始后面的字符是 world s.endWith(‘hello’,5) //true ,表示前5个字符是hello ‘x’.repeat(2) // “xx” ‘hello’.repeat(2) // “hellohello” ‘ivan’.repeat(0) // “”
-
-
模板字符串
- 使用“`”来定义模板字符串
- 在模板字符串中可以保持变量的结构
- 在模板字符串中可以直接使用js代码格式:${ code }
-
箭头函数的推演
写法1: arr.sort(function(x,y){return x - y ;}); 写法2:arr.sort((x,y) => {return x - y ;}); 写法3:arr.sort((x,y) => x - y);
-
箭头函数的其它写法
如果参数只有一个,可以将()省略 // arr.map(c=>c+1); 如果没有参数,则一定能要写上() // ()=> console.log(‘a’) 如果多于一个参数,每个参数之间用逗号分隔 (x, y) => { ... } 如果方法体只有一句代码,可以省略{} 和分号,如果有返回可以省略return 如果方法体多于一句代码,则不能省略{} ,每句代码使用 分号分隔
-
箭头函数的一些特点
a.箭头函数没有自己的this,函数体内部写的this,指向的是外层代码块的this b.箭头函数内部的this是定义时所在的对象,而不是使用时所在的对象并且不会改变 c.箭头箭头函数不能用作构造函数 d.箭头函数内部不存在arguments,箭头函数体中使用的arguments其实指向的是外层函数的arguments
-
对象的写法
es5中对象: {add:add,substrict:substrict} es6中对象: {add,substrict} 注意这种写法的属性名称和值变量是同一个名称才可以简写,否则要想es5那样的写法,例如: {addFun:add}
-
对象中的方法的写法
es5中对象: {add:function(){},substrict:function(){}} es6中对象: {add(){},substrict(){}}
-
对象的导出写法
es5两种形式 1、module.exports = fucntion (){}; 2、exprots.add = fucntion (){}; es6中写法: 1、export default{ add(){}; } 2、export fucntion add(){} 相当于 将add方法当做一个属性挂在到exports对象
-
对象的导入
es5: var add = require('./calc.js'); es6: 如果导出的是:export default{ add(){}} 那么可以通过 import obj from './calc.js' 如果导出的是: export fucntion add(){} export fucntion substrict(){} export const PI=3.14 那么可以通过按需加载 import {add,substrict,PI} from './calc.js'
-
promise:(承诺)
-
来由:ES6之前是没有promise的,这个玩意是由前端社区提出,在ES6中成为一个标准
-
作用:它是用来简化回调函数的多层嵌套
-
使用:
// 1)要使用promise必须先根据promise构造函数创建一个函数对象 // 在promise的构造函数中有两个参数:resolve reject 这两个参数是两个函数 // 这两个参数是与promise中的状态对应: // pending(进行中) // fulfilled(已成功) // rejected(已失败) // 状态的切换有两种方式: // pending---->fulfilled 操作成功 --->会执行resolve中的方法 // pending---->rejected 操作失败 --->会执行reject中的方法 // 在使用promise的时候可以在后面接无数个then方法,then方法可以传递参数 // 参数一般分为三种类型: // 1)undefined // 2)普通数据:字符串,数字,boolean,数组,对象 // 3)promise对象 // 2)使用then方法执行promise // 3)在promise中提供一个统一处理错误的方法:catch
-
例如:
var fs = require("fs"); fs.readFile("./data/a.txt", function (err1, data1) { if (err1) { return console.log("err1"); } console.log(data1.toString()); fs.readFile("./data/b.txt", function (err2, data2) { if (err2) { return console.log("err2"); } console.log(data2.toString()); fs.readFile("./data/c.txt", function (err3, data3) { if (err3) { return console.log("err3"); } console.log(data3.toString()); }); }); });
-
网友评论