复习
let const
声明前置
在块级作用域起作用
被大括号包裹的 区域 {};
不会和window绑定
不能被重复声明 ,let 可以赋值 ,const 不能赋值
leta=10;leta=20;// 不允许 重复声明 a=30;// 可以被重新赋值constb=10;constb=20;// 不允许重复声明 b=30;// 不允许赋值// Math.PI// Math.random // Math.ceil
解构赋值
数组的解构
vararr=[1,2,3];let[a,b,c]=arr;
对象的解构
varobj={name:"张三",age:20}let{name,age}=obj;
模板字符串
``反引号
接收三元运算符
展开运算符 : ...
把伪数组转成真正的数组
varnodelist=document.querySletorAll("li");vararr=[...nodelist];
参数展开 : 不定参数 ,arguments 的替代方案
functiontest(...args){console.log(args);}args
合并数组或者对象
varobj1={name:"张三"};varobj2={age:20};varobj={...obj1,...obj2};
默认参数
functionfn(a=10){console.log(a);}fn();
对象更新
键名和键值相同的时候 可以简写
varage=20;varobj={age}
动态下标
varage='age';varobj={[age]:20}
对象里的函数
varobj={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数据