1.let和const變量聲明
var的缺點:?
1.變量可以重復聲明 var a=1; var a=5; 輸出a=5.
2.無法限制修改裸弦,即無法聲明常量
3.沒有塊級作用域,{},var是function scope,如果不是在函數(shù)中聲明茂蚓,var變量可以全局使用雇锡。
let、const不能重復聲明泌辫,let為變量數(shù)值可以改變忽匈,const為常量數(shù)值不能改變鞠值。const墓赴、let有塊級作用域。
2.箭頭函數(shù)
如果只有一個參數(shù)航瞭,()可以省略
如果語句只有一個return,{}可以省略
3.參數(shù)
參數(shù)展開(rest參數(shù)):...args诫硕,收集剩余的參數(shù),
展開數(shù)組(展開后的數(shù)組和將數(shù)組內(nèi)容展開后效果一樣): let arr = [1,2,3]? ...arr = 1,2,3?
注意rest不能賦值刊侯,比如 a=...arr章办,這是錯誤的
4.解構(gòu)賦值
注意:1.左右兩邊解構(gòu)必須一樣 2.右邊的是個合法的聲明 3.聲明和賦值不能分開
let arr = [1,2,3];
let [a,b,c] = arr;
let {a,b,c} = {a:1,b:2,c:3};
5.數(shù)組
常用方法map、reduce滨彻、filter藕届、forEach
map映射:
一對一的返回結(jié)果
let arr=[1,2,3]; arr.map(item=>return item*2);
let score=[10,20,30]; let result=score.map(item=>item>=20?'及格':'不及格')
reduce:匯總? 一堆出來一個
let arr=[1,2,3];
arr.reduce((temp,item,index)=>{return temp+item;}) 求和
filter:過濾 符合要求返回true選項的保留
let arr=[1,2,3];
arr.filter((item)=>{return item%2==0})
forEach:迭代,循環(huán)遍歷每一項
let arr=[1,2,3];
arr.forEach((item){alert(item)});
6.字符串
startsWith(),endsWith()方法
字符串模板:`hello`
let a = 12; let a = `${a}34` 妙巴ざP菖肌!辜羊!
7.面向?qū)ο?/h2>
class User{
constructor(name,pass){
? this.name = name;
? this.pass = pass;
}
showName(){
alert(this,name)
}
showPass(){
alert(this.pass)
}
}
let user = new User('hello','world');
user.showName();
user.showPass();
8.json
JSON對象:JSON.stringify()字符串化踏兜,JSON.parse(),json化八秃。
json對象屬性使用雙引號包裹碱妆,屬性如果為字符串,需要使用雙引號包裹昔驱。
json key與值相同疹尾,可以省略寫一個
json屬性為方法,省略function骤肛,比如:show: function(){}? ->? show(){}