在es6之前,變數宣告關鍵字:
(2)var會造成變數提公升var a =0;
var a = 99;
(function rr()
console.log(a); //輸出666
})()
es6變數宣告關鍵字:let 變數宣告;const 常量宣告。
解決了var前面提到的兩個缺點。
let以及const都是塊級作用域。
如何理解塊級作用域
常見面試題:
如何將結果輸出為0, 1, 2for(var a = 0; a < 3; a++) , 1000)
}//輸出結果都為3
es5處理方法 -- 用函式製造塊級作用域
es6處理方法 -- 更加簡單明瞭for(var a = 0; a < 3; a++) , 1000)
})(a)
}//輸出結果0,1,2
(1)不需要function關鍵字來建立函式for(let a = 0; a < 3; a++) , 1000)
}//輸出結果為:0,1,2
es5建立函式
var aa = function() {}
es6建立函式
var aa = () => {}
(2)可以極大的簡寫函式
es5函式
var fn = function(a)
可以利用箭頭函式簡寫為:
var fn = a => a + 5;
簡寫規則:
(3)繼承上下文的關鍵字this
es5繼承上下文的關鍵字
es6繼承上下文的關鍵字var fn = function()
fn.bind(this)
var fn = () => {}
3、陣列
新增常用的4個方法
(1)map --對映
(2)reduce --彙總let arr=[66,59,80];
let result=arr.map(item => else
});//result:["及格", "不及格", "及格"]
(3)filter --過濾let arr = [12,69,180,8763];
let result = arr.reduce((tmp, item, index) => );
console.log(result);//求和
(4)foreach --迭代let arr=[,,
,];let result=arr.filter(json=>json.price>=5000);
console.log(result);//[,]
4、函式的引數let arr=[12,5,8,9];
arr.foreach((item,index)=>);
(1)收集引數
(2)展開陣列function show(a, b, ...args)
show(1,2,3,4,5,6) //輸出[3,4,5,6]
(3)預設值const arr1 = [1,2,3];
const arr2 = [4,5,6];
console.log([...arr1, ...arr2]); //輸出[1,2,3,4,5,6]
console.log(...arr1); //輸出1,2,3
5、解構賦值const show = (a=666, b=999) =>
show();
(1)左右兩邊結構必須一樣;
(2)右邊必須是個合法的值;
(3)宣告和賦值不能分開(必須在一句話裡完成);
6、字串let [a,b,c]=[1,2,3,999];
let =;
console.log(a,b,c,e,d,g);
//輸出1 2 3 4 5 7
(1)多了兩個新方法: startswith endswith
if(str.endswith('.txt'))else if(str.endswith('.jpg'))else(2)字串模板
優點:方便字串拼接;可以折行
let title='標題';
let content='內容';
let str='\
\ '+content+'\';
let str2=`
$`;
es6入門學習一
1 let和const命令 對於const來說,只宣告不賦值,就會報錯 const的作用域與let命令相同 只在宣告所在的塊級作用域內有效 const和let都不存在是常量提公升,同樣存在暫時性死區,宣告的常量都不可重複,都是先宣告後使用 2 變數的解構賦值 預設值生效的條件是,物件的屬性值嚴格等於...
ES6入門概覽一
一 let const 1.let命令 宣告變數僅在塊級作用域有效 let實際上為js新增了塊級作用域 好處 不存在變數提公升 內部宣告的變數 函式 不會影響外部 不可重複宣告變數 2.const 宣告常亮 宣告時賦值 宣告變數 1.var 2.function es5 全域性物件屬性 3.let ...
ES6常見語法
解構賦值 一.物件的解構賦值 常遇到的場景 export default class list extends purecomponent this handleadd this handleadd.bind this this handlemodify this handlemodify.bind...