目錄
* 核心例子* 修改成靜態(tài)變量(const)或塊級(jí)變量(let) * 開(kāi)始修改 * 疑問(wèn)解釋(重復(fù)定義會(huì)發(fā)生什么) * 疑問(wèn)解釋(let的塊級(jí)作用域是怎樣的) * 疑問(wèn)解釋(const定義的變量在基礎(chǔ)數(shù)據(jù)類型和引用類型中的差異)* 修改成Promise的形式 * 預(yù)備知識(shí)(回調(diào)函數(shù)是什么) * 預(yù)備知識(shí)(如何把回調(diào)函數(shù)改為Promise) * 開(kāi)始修改* 修改成箭頭函數(shù)(Arrow Function) * 預(yù)備知識(shí)(箭頭函數(shù)是什么) * 預(yù)備知識(shí)(箭頭函數(shù)函數(shù)中的this是個(gè)坑) * 開(kāi)始修改* 修改拼接字符串成模板字符串 * 預(yù)備知識(shí)(字符串的拼接方式) * 預(yù)備知識(shí)(改為模板字符串的方式) * 開(kāi)始修改* 修改成解構(gòu)的對(duì)象* 修改成Class
核心例子
文中的例子,請(qǐng)?jiān)谧钚碌腃hrome中測(cè)試。關(guān)于配置ES6轉(zhuǎn)ES5的環(huán)境,不在本文探討的范疇。
// 定義一個(gè)學(xué)生構(gòu)造函數(shù)var People = function(name, age) { this.name = name this.age = age}// 創(chuàng)建小明實(shí)例var xiaoming = new People('xiaoming', 18)// 定義一個(gè)考試函數(shù)// 定義兩個(gè)回調(diào)函數(shù),在適當(dāng)?shù)臅r(shí)候把參數(shù)傳進(jìn)去var examStart = function(callbackSucc, callbackFail) { var result = prompt('1+5=') if(result === '6') { callbackSucc('Awesome. Your answer is ' + result) } else { callbackFail('You can try again. Your answer is ' + result) }}// 開(kāi)始考試// 傳入的兩個(gè)回調(diào)函數(shù)分別處理結(jié)果examStart(function(res) { console.log(res)}, function(res) { console.log(res)})修改成靜態(tài)變量(const)或塊級(jí)變量(let)
當(dāng)你變量的值需要修改的時(shí)候,應(yīng)該使用塊級(jí)變量(let)。其他時(shí)候,使用靜態(tài)變量(const)。
無(wú)論是靜態(tài)變量(const)還是塊級(jí)變量(let),都不能重復(fù)定義,否則會(huì)報(bào)錯(cuò)。
靜態(tài)變量(const)一旦定義,數(shù)據(jù)類型不可更改。但是引用類型,如Array,Object,都可以用相應(yīng)的原型方法對(duì)數(shù)據(jù)的內(nèi)部進(jìn)行操作。
開(kāi)始修改
我們這里定義的變量都不需要修改,所以直接全部改為const。在項(xiàng)目中,判斷是改為const還是let有一個(gè)技巧,可以使用編輯器的變量復(fù)選功能(如,sublime中是雙擊變量名之后ctrl+d)。然后判斷代碼中是否對(duì)這個(gè)變量進(jìn)行過(guò)賦值,以及根據(jù)自己的判斷是否需要對(duì)這個(gè)變量進(jìn)行修改,不需要?jiǎng)t用const。
// 修改一 var ==> constconst Student1 = function(name, age) { this.name = name this.age = age}// 修改二 var ==> constconst xiaoming1 = new Student1('xiaoming', 18)// 修改三 var ==> constconst examStart1 = function(callbackSucc, callbackFail) { // 修改四 var ==> const const result = prompt('1+5=') if(result === '6') { callbackSucc('Awesome. Your answer is ' + result) } else { callbackFail('You can try again. Your answer is ' + result) }}examStart1(function(res) { console.log(res)}, function(res) { console.log(res)})
新聞熱點(diǎn)
疑難解答
圖片精選