摘要:批量聲明循環(huán)箭頭函數(shù)中可以省略,如果括號里只有返回的表達(dá)式,那么花括號和關(guān)鍵字也可以省略。箭頭函數(shù)指向?qū)嵗闹赶蚴窃摵瘮?shù)被調(diào)用的指向該函數(shù)是被哪個對象所調(diào)用時的就是箭頭函數(shù)中的指向是定義時的指向?qū)嵗闹赶?/p>
常量const
const a = 1; a +=2; console.log(a); //報錯 VM6833:2 Uncaught TypeError: Assignment to constant variable. //常量只讀,不可以更改
列表項目
es5/es6作用域
舉個栗子:
//es5 (function(){ var arr = []; for(var i =0;i<=2;i++){ arr[i]=function(){ return i+1; } } arr[0]();//4,i并沒有進(jìn)入循環(huán),而是在循環(huán)完,i++到i=3; arr[1]();//4 一個閉包的存在,當(dāng)執(zhí)行arr[2]()時,i已經(jīng)是3 })() -------- //es6 { let arr = []; for(let i = 0;i<=2;i++){ arr[i] = ()=>i+1; } arr[0]();//1 arr[1]();//2 }總結(jié): es5要通過立即執(zhí)行函數(shù)對作用域進(jìn)行隔離,es6只需要{}即可這樣就不會污染全局變量,可以多次使用同樣的變量
let變量聲明
{ let a = 1; } console.log(a);//報錯 a is not defined
//不要在聲明之前使用,在語法上,稱為“暫時性死區(qū)”(temporal dead zone,簡稱 TDZ)。 var tmp = 123; if (true) { tmp = "abc"; // ReferenceError let tmp; }
批量聲明
{ let [a,b,c]=[1,2,3]; console.log(typeof a);//number }
循環(huán)
for in&&for of
var arr=[1,3,4]
for(var i in arr){
console.log(i);
}
//0,1,2
for(var i of arr){
//1,3,4;
}
箭頭函數(shù)
es5:
(function(i){ i+=1; console.log(i); })(1) //2
es6:
((i)=>{ i+=1; console.log(i); })(1) //2
es6中function可以省略,如果括號里只有返回的表達(dá)式,那么花括號和return關(guān)鍵字也可以省略。
箭頭函數(shù)this指向:
//es5 { var factory = function(){ this.a = "a"; this.b = "b"; this.c = { a:"a+", b:function(){ return this.a; } } } console.log(new factory().c.b())//a+ } //es6 { var factory = function(){ this.a = "a"; this.b = "b"; this.c = { a:"a+", b:()=>this.a } } console.log(new factory().c.b())//a }es5實例的this指向是該函數(shù)被調(diào)用的指向(該函數(shù)是被哪個對象所調(diào)用時的就是this) 箭頭函數(shù)中的this指向是定義時的指向(new factory()實例的指向)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/83536.html
摘要:用聲明的常量無法在后面的代碼中改值。表達(dá)式里還有一個很方便的就是表達(dá)式,舉個例子運行結(jié)果為后聲明的里以數(shù)組的形式存放了函數(shù)的剩余參數(shù),是不是很方便。 ES6入門筆記(一) 安裝babel 由于瀏覽器對ES6的支持還不是很好,編寫ES6代碼前我們要安裝一個babel工具將ES6代碼編譯成ES5代碼,用如下命令安裝babel: npm install -g babel-core ...
摘要:也就是說,遍歷器對象本質(zhì)上,就是一個指針對象。執(zhí)行這個函數(shù),就會返回一個遍歷器。一個對象如果要有可被循環(huán)調(diào)用的接口,就必須在的屬性上部署遍歷器生成方法原型鏈上的對象具有該方法也可。后面跟的是一個可遍歷的結(jié)構(gòu),它會調(diào)用該結(jié)構(gòu)的遍歷器接口。 ES6 Iterator筆記(摘抄至阮一峰的ECMAScript 6入門) Iterator的遍歷過程 創(chuàng)建一個指針對象,指向當(dāng)前數(shù)據(jù)結(jié)構(gòu)的起始位...
摘要:入門筆記二對字符串操作的擴(kuò)展傳統(tǒng)上,只有方法,可以用來確定一個字符串是否包含在另一個字符串中。返回布爾值,表示參數(shù)字符串是否在源字符串的頭部。用于頭部補(bǔ)全,用于尾部補(bǔ)全。模板字符串中嵌入變量,需要將變量名寫在之中。 ES6入門筆記(二) ES6對字符串操作的擴(kuò)展 傳統(tǒng)上,JavaScript只有indexOf方法,可以用來確定一個字符串是否包含在另一個字符串中。ES6又提供了三種新方法...
摘要:環(huán)境配置新版的要求統(tǒng)一使用作為的編譯工具,因此我們選擇,新建文件,內(nèi)容如下設(shè)置候選版本為和這里因為要用到,所以把在候選版本里加入對的支持組件里引入的組件這個概念里的組件就像,里的控件一樣,能方便快捷的作為界面的一部分實現(xiàn)一定功能,我們可以 環(huán)境配置 新版的React要求統(tǒng)一使用babel作為JSX的編譯工具,因此我們選擇babel,新建.babelrc文件,內(nèi)容如下 { pre...
摘要:選擇的主要原因大概是因為該框架出現(xiàn)較早,感覺上會相對成熟,日后學(xué)習(xí)中遇到問題想要查找答案相對簡單一些,對,就是這么簡單。多說無益,接下來開始的學(xué)習(xí),我按照我學(xué)習(xí)中帶著的問題來一一解答,完成我的入門筆記。主要是針對前端的組件化開發(fā)。 這兩天得空,特意來折騰了以下時下火熱的前端框架react,至于為什么選react,作為一個初學(xué)者react和vue在技術(shù)上的優(yōu)劣我無權(quán)評論,也就不妄加評論了...
閱讀 1013·2019-08-30 15:55
閱讀 3454·2019-08-30 13:10
閱讀 1279·2019-08-29 18:45
閱讀 2355·2019-08-29 16:25
閱讀 2120·2019-08-29 15:13
閱讀 2434·2019-08-29 11:29
閱讀 562·2019-08-26 17:34
閱讀 1499·2019-08-26 13:57