ES6(ES2015)支持IE10+,Chrome,FireFox,移动端,NodeJS
转换方式
1.在线转换
2.提前编译(推荐)
变量
var
1.可以重复声明
2.无法限制修改
3.没有块级作用域
let
不能重复声明,变量-可以修改,有块级作用域
const
不能重复声明,常量-不能修改,有块级作用域
1 | window.onload = function (){ |
函数
1.如果只有一个参数,()可以省
2.如果只有一个return,{}可以省
1 | function show(a){return a*2} |
函数的参数
1.参数扩展/数组展开
1 | //收集参数 |
2.默认参数
解构赋值
1.左右两边结构必须一样
2.右边必须是个东西
3.声明和赋值不能分开(必须在一句话里完成)
1 | let [a, b, c] = [12, 5, 8]; |
数组
map 映射
1 | let score = [19, 85, 99, 25, 90] |
reduce 汇总
1 | //算总数 |
filter 过滤器
1 | let arr = [ |
forEach 循环(迭代)
1 | let arr = [12, 5, 8, 9]; |
字符串
1.两个新方法
startsWith
1 | var str = 'http://www.baidu.com'; |
endsWith
1 | var str = '1.txt'; |
2.字符串模板
1 | let a = 12; |
字符串连接
1.可以直接放入字符串
2.可以折行
面向对象
1.class关键字,构造器和类分开了
2.class里面直接加方法
3.继承
1 | //JavaScript |
面向对象应用 —— React
1.组件化 —— class
2.JSX == babel == browser.js
1 | <script type="text/javascript" src="react.js"></script> |
JSON:
1.JSON对象
函数 | 描述 |
---|---|
JSON.stringify | 用于将 JavaScript 值转换为 JSON 字符串 |
JOSN.parse | 用于将一个 JSON 字符串转换为 JavaScript 对象 |
2.简写
1 | let a = 1; |
json的标准写法
1.只能用双引号
2.所有的key都必须用引号包起来
1 | {"a": 1, "b": 2} |
Promise —— 承诺
异步: 操作之间不相关,同时进行多个操作,代码更复杂
同步: 操作之间相关,不能同时进行多个操作,代码简单
1 | //异步 |
Promise —— 清除异步操作
用同步一样的方式,来书写异步代码
1 | <script type="text/javascript" src="jquery.js"></script> |
有了Promise的异步
1 | Promise.all([$.ajax(), $.ajax()]).then(results=>{ |
Promise.race 竞速
1 | Promise.race([ |
generator —— 生成器
不能用箭头函数
1 | function *show(){ |
yield
传参
(第一个next没法给yield传参,只能用传统的传参方式)
1 | function *show(num1, num2){ |
返回
1 | function *show(){ |
Promise —— 用于批量读取
generator —— 逻辑性用于逻辑性读取
1 | //回调 |
koa
1 | const koa = require('koa'); |
ES7预览
数组 includes
数组是否包含某个值
1 | let arr = [1, 2, 3]; |
数组 keys/values/entries
for…of //下标(key)
for…in //值(value) 不能用于json
值 | 描述 |
---|---|
keys | 把所有的key拿出来 |
values | 把所有的value拿出来 |
entries(实体) | 把所有的键值对拿出来 |
幂
1 | alert(2**3); //8 |
padStart/padEnd
1 | alert('a'.padStart(5, '0')); //0000a |
async await
1 | async function show(){ |