ES6學(xué)習(xí)

什么是ECMAScript磨德?

ECMAScript是瀏覽器腳本語言的規(guī)范,而我們熟知的js語言,如JavaScript則是規(guī)范的具體實(shí)現(xiàn)典挑。es6就好比Java的jdk酥宴。

一、es6語法詳解:let聲明變量

1您觉、var聲明的變量往往會越域拙寡;let聲明的變量有嚴(yán)格局部作用域

{
      var a = 1;
      let b = 2;
    }
    console.log(a)  // 1
    console.log(b)  // Uncaught ReferenceError: b is not defined

2、var 可以聲明多次琳水;let只能聲明一次

   var m = 1;
    var m = 2;
    let n = 1;
    let n = 2;
    console.log(m) //2
    console.log(n) //Uncaught SyntaxError: Identifier 'n' has already been declared

3肆糕、var會變量提升;let不存在變量提升

    console.log(x);
    var x = 10; // undefined
    console.log(y);
    let y = 12; // Uncaught ReferenceError: Cannot access 'y' before initialization

ps:注意:以后要習(xí)慣使用let聲明變量

二在孝、es6語法詳解:解構(gòu)表達(dá)式

1诚啃、數(shù)組解構(gòu)

    let arr = [1, 2, 3];
    let [a, b, c] = arr;
    console.log(a, b, c) //1,2,3

2、對象解構(gòu)

    const person = {
      name: "qiyue",
      age: 23,
      language: ['java', 'js', 'css']
    }
    const { name, age, language } = person 
    console.log(name, age, language) //qiyue 23 (3) ["java", "js", "css"]
    const person = {
      name: "qiyue",
      age: 23,
      language: ['java', 'js', 'css']
    }
    //從person里解析出name的值在賦值給abc
    const { name:abc, age, language } = person
    console.log(abc, age, language) //qiyue 23 (3) ["java", "js", "css"]

三浑玛、es6語法詳解: 函數(shù)優(yōu)化

1绍申、函數(shù)默認(rèn)值:直接給參數(shù)寫上默認(rèn)值,沒傳就會自動使用默認(rèn)值

   function add(a, b = 1) {
      return a + b;
    }
    console.log(add(10)) //11

2顾彰、不定參數(shù):有且只有一個不定參數(shù)

   function fun(...params) {
      console.log(params.length)
    }
    fun(1, 2) // 2
    fun(1, 2, 3, 4) //4

3极阅、箭頭函數(shù)

    //以前
    var sum = function (a, b) {
          c = a + b
          return c
        }
    console.log(sum(2, 3)) // 5
    //箭頭函數(shù)
    var sum2 = (a, b) => a + b;
    console.log(sum2(2, 4)) // 6

4、箭頭函數(shù)結(jié)合解構(gòu)表達(dá)式

    //以前
    function hello(person) {
      console.log("hello" + person.name)
    }
    hello(person); //helloqiyue
    //箭頭函數(shù)
    let hello2 = params => console.log("hello" + person.name)
    hello2(person) //helloqiyue
    //箭頭函數(shù)加解構(gòu)表達(dá)式
    var hello3 = ({ name }) => console.log("hello" + name)
    hello3(person) //helloqiyue

四涨享、es6語法詳解:map和reduce方法

1筋搏、map():接收一個函數(shù),將原數(shù)組中的所有元素用這個函數(shù)處理后放入新數(shù)組返回

    let arr = ["1", "3", "4", "23"]
    arr = arr.map(item => item * 2)
    console.log(arr) //[2, 6, 8, 46]

2厕隧、reduce():為數(shù)組中的每一個元素依次執(zhí)行回調(diào)函數(shù)奔脐,不包括數(shù)組中被刪除或未被賦值的元素

    let arr1 = [2, 40, -10, 6]
    let result = arr1.reduce((a, b) => {
      return a + b
    }, 10)
    console.log(result)//48

五、es6語法詳解:模塊化

什么是模塊化:模塊化就是把代碼進(jìn)行拆分吁讨,方便重復(fù)利用髓迎。類似Java中的導(dǎo)包,要使用一個包建丧,必須先導(dǎo)包排龄。二Js中沒有包的概念,換來的就是模塊

模塊的功能主要有兩個命令構(gòu)成:export和import

  • export命令用于規(guī)定模塊的對外接口翎朱,export不僅可以導(dǎo)出對象橄维,一切js變量都可以導(dǎo)出。比如:基本類型變量拴曲、函數(shù)争舞、數(shù)組、對象
  • import命令用于導(dǎo)入其他模塊提供的功能

六澈灼、es6語法詳解: 對象優(yōu)化

1竞川、es6給Object擴(kuò)展了許多新的方法,如

  • key(obj):獲取對象的所有key形成的數(shù)組
  • value(obj):獲取對象的所有value形成的數(shù)組
  • entries(obj):獲取對象所有的key和value形成的二維數(shù)組
    const person = {
      name: "qiyue",
      age: 23,
      language: ["java", "js", "css"]
    }
    console.log(Object.keys(person)) //["name","age","language"]
    console.log(Object.values(person)) // ["qiyue",23,Array(3)]
    console.log(Object.entries(person)) //[Array(2),Array(2),Array(2)]

2、Object.assign方法的第一個參數(shù)是目標(biāo)對象流译,后面的參數(shù)都是源對象逞怨;將源對象的屬性賦值到目標(biāo)對象中

    onst target = { a: 1 }
    const source1 = { b: 2 }
    const source2 = { c: 3 }
    Object.assign(target, source1, source2);
    console.log(target) //{a: 1, b: 2, c: 3}

3、 聲明對象簡寫

    //以前
    const name = 'sanyue'
    const age = 21
    //將屬性值name福澡,age分別賦給person1對象的name叠赦,age,后面是屬性值
    const person1 = { name: name, age: age }
    console.log(person1) //{name: "sanyue", age: 21}

    //es6:屬性名和屬性值變量名一樣,可以省略
    const person2 = {name,age}
    console.log(person2) //{name: "sanyue", age: 21}

4革砸、對象的函數(shù)屬性簡寫

   let person3 = {
      name: "qiyue",
      //以前
      eat: function (food) {
        console.log(this.name + "在吃" + food);
      },
      //箭頭函數(shù)中this不能使用除秀,用對象.屬性
      eat2: food => console.log(person3.name + "在吃" + food),
      eat3(food) {
        console.log(this.name + "在吃" + food)
      }
    }
    person3.eat("蘋果") //qiyue在吃蘋果
    person3.eat2("香蕉") // qiyue在吃香蕉
    person3.eat3("西瓜") //qiyue在吃西瓜

5、對象的擴(kuò)展運(yùn)算符

擴(kuò)展運(yùn)算符(…)用于取出參數(shù)對象所有可遍歷屬性然后拷貝到當(dāng)前對象

    //拷貝對象(深拷貝)
    let p1 = { name: "qiyue", age: 23 }
    let obj = { ...p1 }
    console.log(obj)//{name: "qiyue", age: 23}

    //合并對象
    let age1 = { age: 24 }
    let name1 = { name: "qiyue" }
    let p2 = {}
    p2 = { ...age1, ...name1 }
    console.log(p2) //{age: 24, name: "qiyue"}
    //如果p2中原本有name,age屬性會被覆蓋
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末算利,一起剝皮案震驚了整個濱河市册踩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌效拭,老刑警劉巖暂吉,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異缎患,居然都是意外死亡慕的,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進(jìn)店門挤渔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來肮街,“玉大人,你說我怎么就攤上這事嫉父。” “怎么了眼刃?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵绕辖,是天一觀的道長。 經(jīng)常有香客問我引镊,道長,這世上最難降的妖魔是什么涉茧? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮惑淳,結(jié)果婚禮上饺窿,老公的妹妹穿的比我還像新娘绢馍。我一直安慰自己,他們只是感情好你稚,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布刁赖。 她就那樣靜靜地躺著乾闰,像睡著了一般轿钠。 火紅的嫁衣襯著肌膚如雪疗垛。 梳的紋絲不亂的頭發(fā)上贷腕,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天泽裳,我揣著相機(jī)與錄音涮总,去河邊找鬼瀑梗。 笑死谤职,一個胖子當(dāng)著我的面吹牛允蜈,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼咖耘!你這毒婦竟也來了儿倒?” 一聲冷哼從身側(cè)響起呜笑,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎驼鹅,沒想到半個月后输钩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡哼绑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年茂浮,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片竟稳。...
    茶點(diǎn)故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖诊笤,靈堂內(nèi)的尸體忽然破棺而出止喷,到底是詐尸還是另有隱情,我是刑警寧澤混聊,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布弹谁,位于F島的核電站,受9級特大地震影響句喜,放射性物質(zhì)發(fā)生泄漏预愤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一咳胃、第九天 我趴在偏房一處隱蔽的房頂上張望植康。 院中可真熱鬧,春花似錦展懈、人聲如沸销睁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽冻记。三九已至睡毒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間冗栗,已是汗流浹背演顾。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留隅居,地道東北人钠至。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像胎源,于是被迫代替她去往敵國和親棉钧。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容