2019-06-28 ES5—6—7

ES5 的嚴(yán)格模式

use strict? 嚴(yán)格語(yǔ)法的聲明

聲明變量必須使用var

禁止自定義的函數(shù)中的this指向window 構(gòu)造函數(shù)中調(diào)用的時(shí)候要用new

eval函數(shù)的作用,可以解析傳入進(jìn)來(lái)的字符串 嚴(yán)格模式下的eval里創(chuàng)建的變量不會(huì)污染全局。

對(duì)象不能有重名

JION 對(duì)象

stringify

js對(duì)象(數(shù)組)轉(zhuǎn)換成json對(duì)象

parse

將json對(duì)象轉(zhuǎn)換成js對(duì)象

Obiect 擴(kuò)展

object.create(obj {

sex:{

value:'男'

}

})

如果想要改變屬性值需要 writable:true

刪除 configurable:true

enumerbale :true

defineProperties 擴(kuò)展屬性 (obj,{

fullname:{

get:function(){? 獲取擴(kuò)展名的屬性的值,在獲取

return this..fristname +""+ this.lastname

}

set:function(data)監(jiān)聽(tīng)擴(kuò)展屬性。當(dāng)擴(kuò)展屬性發(fā)生變化的時(shí)候,會(huì)自動(dòng)調(diào)用 將變化的值作為實(shí)參傳入

console。log(“set()”,data)

}

})

Array 的擴(kuò)展

1. Array.prototype.indexOf(value) : 得到值在數(shù)組中的第一個(gè)下標(biāo)

2. Array.prototype.lastIndexOf(value) : 得到值在數(shù)組中的最后一個(gè)下標(biāo)

3. Array.prototype.forEach(function(item, index){}) : 遍歷數(shù)組

4. Array.prototype.map(function(item, index){}) : 遍歷數(shù)組返回一個(gè)新的數(shù)組,返回加工之后的值

5. Array.prototype.filter(function(item, index){}) : 遍歷過(guò)濾出一個(gè)新的子數(shù)組, 返回條件為true的值

Function的擴(kuò)展

1. Function.prototype.bind(obj) :

* 作用: 將函數(shù)內(nèi)的this綁定為obj, 并將函數(shù)返回

2. 面試題: 區(qū)別bind()與call()和apply()?

*都能指定函數(shù)中的this

* call()/apply()是立即調(diào)用函數(shù)

* bind()是將函數(shù)返回

foo。coll(obj , 33)

foo.apply(obj , [33])?

var ber = foo.bing(obj)

指定完函數(shù)中的this之后,他會(huì)立刻調(diào)用,而bing是需要將函數(shù)返回,然后再調(diào)用

ES6

let關(guān)鍵字

let類似var的變量聲明

塊的作用域有效

不能重復(fù)聲明

不會(huì)預(yù)處理,不存在變量的提升

let有自己的作用域

const關(guān)鍵字

定義一個(gè)常量,不能修改,其他的跟let特點(diǎn)一樣

變量的解構(gòu)賦值

解構(gòu)賦值的時(shí)候需要寫入obj中已有的屬性,也可以跟obj單個(gè)取出

數(shù)組是使用下標(biāo),里面可以隨便寫入。如果不想取哪個(gè),可以直接使用逗號(hào)隔離開(kāi)

模板字符串

1. 模板字符串 : 簡(jiǎn)化字符串的拼接

* 模板字符串必須用 `` 包含

* 變化的部分使用${xxx}定義

簡(jiǎn)寫對(duì)象

1. 省略同名的屬性值

2. 省略方法的function

3. 例如:

let x = 1;

let y = 2;

let point = {

x,

y,

setX (x) {this.x = x}

};

箭頭函數(shù)

沒(méi)有形參的時(shí)候,不能省略括號(hào),占位

let fun = ()=>console.log('dhfihuaihi')

fun()

只有一個(gè)形參的時(shí)候可以省略括號(hào)

let fun = A? => console.log(A)

fun(aljsdhf)

兩個(gè)及兩個(gè)以上,不能省略括號(hào)

let fun = (x,y)=>console.log('x,y')

fun(25,56)

函數(shù)體只有一條語(yǔ)句的時(shí)候表達(dá)式的{}可以省略掉,會(huì)自動(dòng)返回執(zhí)行語(yǔ)句的結(jié)果

let fun = (x,y) => {return x+y}

let fun = (x,y) =>? x+y

特點(diǎn)

簡(jiǎn)潔

箭頭函數(shù)沒(méi)有自己的this 箭頭函數(shù)的this不是調(diào)用的時(shí)候決定的,而是在定義的時(shí)候所處的對(duì)象就是 它的this

擴(kuò)展理解: 箭頭函數(shù)的this看外層的是否有函數(shù),如果有,外層函數(shù)的this就是內(nèi)部箭頭函數(shù)的this, 如果沒(méi)有,則this是window。

點(diǎn)運(yùn)算符

1. rest(可變)參數(shù)

* 用來(lái)取代arguments 但比 arguments 靈活,只能是最后部分形參參數(shù)

function fun(...values) {

? ? console.log(arguments);

? ? arguments.forEach(function (item, index) {

? ? ? console.log(item, index);

? ? });

? ? console.log(values);

? ? values.forEach(function (item, index) {

? ? ? ? console.log(item, index);

? })

}

fun(1,2,3);

2. 擴(kuò)展運(yùn)算符

let arr1 = [1,3,5];

let arr2 = [2,...arr1,6];

arr2.push(...arr1)

?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • (一)函數(shù) 1.函數(shù)基本聲明 function fun([參數(shù)1],[參數(shù)2],...){ 函數(shù)體; }; 2....
    妖妖靈嘛0閱讀 402評(píng)論 0 0
  • JavaScript之父:Brendan Eich 。 -基本語(yǔ)法:借鑒了C語(yǔ)言和Java語(yǔ)言。-數(shù)據(jù)結(jié)構(gòu):借鑒了...
    饑人谷_kule閱讀 668評(píng)論 0 0
  • 工廠模式類似于現(xiàn)實(shí)生活中的工廠可以產(chǎn)生大量相似的商品,去做同樣的事情,實(shí)現(xiàn)同樣的效果;這時(shí)候需要使用工廠模式。簡(jiǎn)單...
    舟漁行舟閱讀 8,131評(píng)論 2 17
  • ECMAScript理解 它是一種由ECMA組織(前身為歐洲計(jì)算機(jī)制造商協(xié)會(huì))制定和發(fā)布的腳本語(yǔ)言規(guī)范 而我們學(xué)的...
    咻咻咻滴趙大妞閱讀 4,622評(píng)論 0 3
  • 一、ECMAScript認(rèn)識(shí)1.它是一種由ECMA組織(前身為歐洲計(jì)算機(jī)制造商協(xié)會(huì))制定和發(fā)布的腳本語(yǔ)言規(guī)范。2....
    小袋鼠cf閱讀 213評(píng)論 0 0

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