前端學(xué)習(xí)第三十二更

????????????????????????????????????????????Es6


1、let 和 const 關(guān)鍵字

1、let和const不允許重復(fù)聲明變量

2、let和const聲明的變量不會(huì)在預(yù)解析的時(shí)候解析(也就是沒有變量提升)

3、let和const聲明的變量會(huì)被所有代碼塊限制作用范圍

let和const的區(qū)別:

let聲明的變量的值可以改變,const聲明的變量的值不可以改變

let聲明的時(shí)候可以不賦值,const聲明的時(shí)候必須賦值

2、箭頭函數(shù)

箭頭函數(shù)是ES6 里面一個(gè)簡(jiǎn)寫函數(shù)的語法方式

重點(diǎn):箭頭函數(shù)只能簡(jiǎn)寫賦值式函數(shù)表達(dá)式,不能簡(jiǎn)寫聲明式函數(shù)

語法:var fn=?(函數(shù)的行參) => { 函數(shù)體內(nèi)要執(zhí)行的代碼 }

箭頭函數(shù)的特殊性

箭頭函數(shù)內(nèi)部沒有this,箭頭函數(shù)的 this 是上下文的 this

箭頭函數(shù)內(nèi)部沒有arguments這個(gè)參數(shù)集合

函數(shù)的行參只有一個(gè)的時(shí)候可以不寫()其余情況必須寫

函數(shù)體只有一行代碼的時(shí)候,可以不寫{},并且會(huì)自動(dòng)return

4、函數(shù)傳遞參數(shù)的時(shí)候的默認(rèn)值

我們?cè)诙x函數(shù)的時(shí)候,有的時(shí)候需要一個(gè)默認(rèn)值出現(xiàn)

就是當(dāng)我不傳遞參數(shù)的時(shí)候,使用默認(rèn)值,傳遞參數(shù)了就使用傳遞的參數(shù)

在ES6 中我們可以直接把默認(rèn)值寫在函數(shù)的行參位置

這個(gè)默認(rèn)值的方式箭頭函數(shù)也可以使用

注意:箭頭函數(shù)如果你需要使用默認(rèn)值的話,那么一個(gè)參數(shù)的時(shí)候也需要寫()

5、解構(gòu)賦值

解構(gòu)賦值,就是快速的從對(duì)象或者數(shù)組中取出成員的一個(gè)語法方式

解構(gòu)對(duì)象

快速的從對(duì)象中獲取成員

解構(gòu)數(shù)組

快速的從數(shù)組中獲取成員

注意:

{}是專門解構(gòu)對(duì)象使用的

[]是專門解構(gòu)數(shù)組使用的

不能混用

6、模版字符串

ES5 中我們表示字符串的時(shí)候使用 ''或者""

在ES6 中,我們還有一個(gè)東西可以表示字符串,就是 ``(反引號(hào))

和單引號(hào)和雙引號(hào)的區(qū)別:

1、反引號(hào)可以換行書寫,而單雙引號(hào)不可以

2、反引號(hào)可以直接在字符串里面拼接變量(需用${變量} 來拼接)

7、展開運(yùn)算符?

ES6 里面號(hào)新添加了一個(gè)運(yùn)算符 ...,叫做展開運(yùn)算符

作用是把數(shù)組展開

合并數(shù)組的時(shí)候可以使用

也可以合并對(duì)象使用

在函數(shù)傳遞參數(shù)的時(shí)候也可以使用

8、this 關(guān)鍵字

重點(diǎn):函數(shù)內(nèi)部的this 只和函數(shù)的調(diào)用方式有關(guān)系,和函數(shù)的定義方式?jīng)]有關(guān)系

全局定義的函數(shù)直接調(diào)用,this => window

對(duì)象內(nèi)部的方法調(diào)用,this => 調(diào)用者

定時(shí)器的處理函數(shù),this => window

事件處理函數(shù),this => 事件源

自調(diào)用函數(shù),this => window

9、call 和 apply 和 bind

強(qiáng)行改變this 指向的方法

call

call方法是附加在函數(shù)調(diào)用后面使用,可以忽略函數(shù)本身的this 指向

語法:函數(shù)名.call(要改變的 this 指向,要給函數(shù)傳遞的參數(shù)1,要給函數(shù)傳遞的參數(shù)2, ...)

fn()的時(shí)候,函數(shù)內(nèi)部的this 指向 window

fn.call(obj, 1, 2)的時(shí)候,函數(shù)內(nèi)部的this 就指向了 obj 這個(gè)對(duì)象

使用call 方法的時(shí)候

會(huì)立即執(zhí)行函數(shù)

第一個(gè)參數(shù)是你要改變的函數(shù)內(nèi)部的this 指向

第二個(gè)參數(shù)開始,依次是向函數(shù)傳遞參數(shù)

apply

apply方法是附加在函數(shù)調(diào)用后面使用,可以忽略函數(shù)本身的this 指向

語法:函數(shù)名.apply(要改變的 this 指向,[要給函數(shù)傳遞的參數(shù)1, 要給函數(shù)傳遞的參數(shù)2, ...])

fn()的時(shí)候,函數(shù)內(nèi)部的this 指向 window

fn.apply(obj, [1, 2])的時(shí)候,函數(shù)內(nèi)部的this 就指向了 obj 這個(gè)對(duì)象

使用apply 方法的時(shí)候

會(huì)立即執(zhí)行函數(shù)

第一個(gè)參數(shù)是你要改變的函數(shù)內(nèi)部的this 指向

第二個(gè)參數(shù)是一個(gè)數(shù)組,數(shù)組里面的每一項(xiàng)依次是向函數(shù)傳遞的參數(shù)

bind

bind方法是附加在函數(shù)調(diào)用后面使用,可以忽略函數(shù)本身的this 指向

和call / apply 有一些不一樣,就是不會(huì)立即執(zhí)行函數(shù),而是返回一個(gè)已經(jīng)改變了 this 指向的函數(shù)

語法:var newFn = 函數(shù)名.bind(要改變的 this 指向); newFn(傳遞參數(shù))

10、JSON 方法

json是一種特殊的數(shù)據(jù)格式,本質(zhì)是一個(gè)字符串

就是對(duì)象內(nèi)部的key和value都用雙引號(hào)包裹的字符串(必須是雙引號(hào))

JSON.parse

JSON.parse是將json 格式的字符串轉(zhuǎn)換為 js 的對(duì)象或者數(shù)組

JSON.stringify

JSON.stringify是將js 的對(duì)象或者數(shù)組轉(zhuǎn)換為json 格式的字符串

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 由于受新型冠狀病毒的影響,假期又延長(zhǎng)了,又不能出門,只好在家認(rèn)真學(xué)習(xí)了,就借此機(jī)會(huì)閱讀完阮一峰老師的ECMAScr...
    寫前端的大叔閱讀 235評(píng)論 0 0
  • 前端主要包括HTML(5)、CSS(3)、JavaScript三個(gè)部分,其中JavaScript負(fù)責(zé)前端交互即邏輯...
    倒霉蛋兒_才才閱讀 372評(píng)論 0 2
  • 1.項(xiàng)目所遇到的問題集合 [if !supportLists]1.[endif]設(shè)置div的背景陰影 用:box-...
    一笑奈何_3bea閱讀 1,266評(píng)論 0 0
  • Web開發(fā)需要用到哪些技術(shù)? 這套系統(tǒng)介紹使用JavaScript來完成Web開發(fā),我們?cè)趯W(xué)習(xí)js之前需要了解一下...
    三月木頭閱讀 359評(píng)論 0 0
  • 16宿命:用概率思維提高你的勝算 以前的我是風(fēng)險(xiǎn)厭惡者,不喜歡去冒險(xiǎn),但是人生放棄了冒險(xiǎn),也就放棄了無數(shù)的可能。 ...
    yichen大刀閱讀 7,939評(píng)論 0 4

友情鏈接更多精彩內(nèi)容