在js中熟悉了通過var一個變量來定義函數,是曾經ecma5時代的產物,語法
的嚴謹性以及工程性,在一些學過c、java的同學看來也太隨意了吧。所以咧做出了如下的幾點的改進。(當然也全面不支持低版本瀏覽器~~~)
1.變量
例如定義一個變量,可以重復定義、沒有塊級作用域、沒法限制修改,等為人所詬病。
而現如今通過:
let a='hello' 不能定義、有塊級作用域、變量
const b='world' 不能重復定義、有塊級作用域、常量
2.函數
總感覺有點像php的語法有木有?
a.箭頭函數(簡寫)
oBtn.onclick=()=>{
alert(1);
}
#.如果只有一個參數(2個不行,沒有也不行),()可以省略
oBtn.onclick=a=>{
alert(a);
}
##.如果只有一條語句并且是return,那么{}可以不寫
let arr=[2,31,52,1];
arr.sort((n1,n2)=>n1-n2);
b.Rest Parameter(參數擴展)
傳遞參數大于接收參數,那么其余多出的參數會放到args數組中。
function show(a,b,c,...args){
alert(a+','+b+','+'c');
alert(args[0]);
}
show(1,2,3,4,5,6,6,7);
3.Array 數組
map 映射:把一組元素的每一個都一一對應轉換成另一個。返回一個數組,通過arr2來接收。
let arr=[33,44,55,66,77,56];
let arr2=arr.map(function(item){
if(item<60){
return '不及格';
}else{
return '及格';
}
})
alert(arr2); //得到的結果是不及格、不及格、不及格、及格、及格、不及格、
當然也可以使用符合ecma6的規(guī)范來寫會更加裝逼不信你看~
let arr=[33,44,55,66,77,56];
let arr2=arr.map(item=>item<60?'不及格':'及格');
得到的結果是一樣滴...不明覺厲吧,如果看不懂就去看上面的箭頭函數。
reduce 匯總:匯總成一個東西,傳遞三個參數,最后求出平均值有點難理解。
第一個參數,是一個每次累加存值的池子,index是下表進行判斷。
var arr=[33,45,66,11];
var result=arr.reduce((tmp_result,item,index)=>{
if(index<arr.length-1){
return tmp_result+item;
}else{
return (tmp_result+item)/arr.length;
}
});
alert(result);
### filter 過濾,我覺得就是一個條件判斷的小方法
var arr=[33,44,55,66,77];
let arr2=arr.filter(item=>item>55); //返回item大于55的數組
#### foreach 遍歷、循環(huán)。
4.String
a.兩個小方法
startsWith,從前往后查找
endWith,從后往前找
var url='http://www.xxxdu.com';
alert(url.startsWith('http')); //返回值是布爾值,找到了就是true
b.拼接字符串,簡直是手殘黨的福音,let me show!
曾經呢我們是這樣子來做的,’hello'+變量+‘wolrd',心好累
現如今呢,我們只需要
let a='abc';
let b=`deg${a}hhd`; //注意b所使用的反單引號使用的是esc下面的按鍵
5.json
如果json對象中的,名字和值對的名字都一樣的話,就留一個就可以了
let a=1;
let b=2;
let c=3;
let json={a,b,c} //相當于 let json={a:a,b:b,c:c};
json中的函數不用加function
let json={
a:1,
b:2,
show(){
alert(this.a+this.b)
}
};
json.show();
好了,今天的筆記就記到這里,醬紫,可以睡了,蟹蟹一下自己。