1.let和const變量聲明
var的缺點(diǎn):?
1.變量可以重復(fù)聲明 var a=1; var a=5; 輸出a=5.
2.無法限制修改,即無法聲明常量
3.沒有塊級(jí)作用域,{},var是function scope,如果不是在函數(shù)中聲明,var變量可以全局使用。
let、const不能重復(fù)聲明,let為變量數(shù)值可以改變,const為常量數(shù)值不能改變。const、let有塊級(jí)作用域。
2.箭頭函數(shù)
如果只有一個(gè)參數(shù),()可以省略
如果語句只有一個(gè)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,這是錯(cuò)誤的
4.解構(gòu)賦值
注意:1.左右兩邊解構(gòu)必須一樣 2.右邊的是個(gè)合法的聲明 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映射:
一對(duì)一的返回結(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:匯總? 一堆出來一個(gè)
let arr=[1,2,3];
arr.reduce((temp,item,index)=>{return temp+item;}) 求和
filter:過濾 符合要求返回true選項(xiàng)的保留
let arr=[1,2,3];
arr.filter((item)=>{return item%2==0})
forEach:迭代,循環(huán)遍歷每一項(xiàng)
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對(duì)象:JSON.stringify()字符串化,JSON.parse(),json化。
json對(duì)象屬性使用雙引號(hào)包裹,屬性如果為字符串,需要使用雙引號(hào)包裹。
json key與值相同,可以省略寫一個(gè)
json屬性為方法,省略function,比如:show: function(){}? ->? show(){}