ESMA 6 2015
-
let const
-
声明前置
-
在块级作用域起作用
- 被大括号包裹的 区域
{};
- 被大括号包裹的 区域
-
不会和window绑定
-
不能被重复声明 ,let 可以赋值 ,const 不能赋值
let a = 10; let a = 20; // 不允许 重复声明 a = 30 ; // 可以被重新赋值 const b = 10; const b = 20; // 不允许重复声明 b = 30; // 不允许赋值 // Math.PI // Math.random // Math.ceil -
-
解构赋值
- 数组的解构
var arr = [1,2,3]; let [a,b,c] = arr;- 对象的解构
var obj = { name:"张三", age:20 } let {name,age} = obj; -
模板字符串
``反引号- 接收三元运算符
-
展开运算符 :
...- 把伪数组转成真正的数组
var nodelist = document.querySletorAll("li"); var arr = [...nodelist];- 参数展开 : 不定参数 ,arguments 的替代方案
function test(...args){ console.log(args); } args- 合并数组或者对象
var obj1 = {name:"张三"};var obj2 = {age:20}; var obj = {...obj1,...obj2}; -
默认参数
function fn(a=10){
console.log(a);
}
fn();
-
对象更新
- 键名和键值相同的时候 可以简写
var age = 20; var obj = { age }- 动态下标
var age = 'age'; var obj = { [age]:20 }- 对象里的函数
var obj = { fn(){ console.log("fn"); } }-
箭头函数
- 只能把复制函数改成箭头函数
- 没有this ,他的this是上层的this
- 没有arguments
- 如果没有大括号会自带return
- 如果只有一个参数 前面的小括号可以省略
-
ES5
-
改变this指向
- call
- apply
- bind
-
精确判断复杂数据类型
Object.prototype.toString.call("要判断的类型");-
json
- JSON.parse : 把json转成js
- JSON.stringify : 把js数组转成json数据
-