久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

當(dāng)前位置:首頁  >  行業(yè)資訊  > 千鋒為你普及ES6相關(guān)知識

千鋒為你普及ES6相關(guān)知識

來源:千鋒教育
發(fā)布人:邱雪庭
時間: 2019-04-03 09:16:00 1554254160

  ES6增加的語法

  let&&const

  [size=0.9em]let與[size=0.9em]var的區(qū)別

  let 變量名=變量值

  使用let創(chuàng)建變量和使用var創(chuàng)建變量的區(qū)別

timg

  1、用var聲明的變量會變量提升,用let聲明的變量不會進行變量提升。

  用let創(chuàng)建變量

  let xxx=xxx;

  用let創(chuàng)建函數(shù)

  let xxx=function(){}

  創(chuàng)建自執(zhí)行函數(shù)

  ;(function(){

  })();

  2、用let定義變量不允許在[size=0.9em]同一個作用域中重復(fù)聲明一個變量(只要當(dāng)前作用域中有這個變量,不管是用var還是用let聲明的,再用let聲明的話會報錯:不能重復(fù)聲明一個變量),但是可以重復(fù)定義(賦值)。

  let i=10;

  let i=20;/會報錯,

  i=20;重復(fù)賦值不會報錯

  3、暫時性死區(qū):在代碼塊內(nèi),使用let命令聲明變量之前,該變量都是不可以使用的。

  if (true) {

  // TDZ開始

  tmp = 'abc'; // ReferenceError,報錯之后下面都不會輸出

  console.log(tmp); // ReferenceError,報錯之后下面都不會輸出

  let tmp; // TDZ結(jié)束

  console.log(tmp); // undefined

  tmp = 123;

  console.log(tmp); // 123

  }

  //下面也會報錯出現(xiàn)TDZ

  console.log(typeof x); // ReferenceError

  let x;

  //作為比較如果一個變量根本沒有被聲明,使用typeof反而不會報錯。

  console.log(typeof x);// "undefined"

  4、ES6語法創(chuàng)建的變量(let)存在塊級作用域

  [ES5]

  window全局作用域

  函數(shù)執(zhí)行形成的私有作用域

  [ES6]

  除了有ES5中的兩個作用域,ES6中新增加塊級作用域(我們可以把塊級作用域理解為之前學(xué)習(xí)的私有作用域,存在私有作用域和作用域鏈的一些機制)[size=0.9em]ES6中把大部分用{}包起來的都稱之為塊級作用域;

  [size=0.9em]const

  const細節(jié)知識點和let類似

  const聲明的常量只要聲明就必須賦值,而且變量的值是一定的,不能被修改;

  [size=0.9em]注意:并不是變量的值不得改動,而是變量指向的那個內(nèi)存地址不得改動。對于簡單類型的數(shù)據(jù)(數(shù)值、字符串、布爾值),值就保存在變量指向的那個內(nèi)存地址,因此等同于常量。但對于復(fù)合類型的數(shù)據(jù)(主要是對象和數(shù)組),變量指向的內(nèi)存地址,保存的只是一個指針,const只能保證這個指針是固定的,至于它指向的數(shù)據(jù)結(jié)構(gòu)是不是可變的,就完全不能控制了。因此,將一個對象聲明為常量必須非常小心。

  [size=1em][size=1em]const聲明的變量也存在暫時性死區(qū),即只能在聲明的位置之后使用;

  JS中創(chuàng)建變量的方式匯總

  [size=1em][size=1em][ES5]

  · var :創(chuàng)建變量

  function:創(chuàng)建函數(shù)

  ES5中創(chuàng)建變量或者函數(shù):存在變量提升,重復(fù)聲明等特征;

  [size=1em][size=1em][ES6]

  · let創(chuàng)建變量

  const:ES6中創(chuàng)建常量

  ES6中創(chuàng)建的變量或者常量:都不存在變量提升,也不可以重復(fù)聲明,而且還存在塊級作用域;

  class:創(chuàng)建一個類

  import:導(dǎo)入

  ES6中的解構(gòu)賦值

  [size=1em][size=1em]按照原有值的結(jié)構(gòu),把原有值中的某一部分內(nèi)容快速獲取到(快速賦值給一個變量)。

  數(shù)組的解構(gòu)賦值

  [size=1em][size=1em]解構(gòu)賦值本身是ES6的語法規(guī)范,使用什么關(guān)鍵字來聲明這些變量是無所謂的,如果不用關(guān)鍵字來聲明,那么就相當(dāng)于給window添加的自定義屬性;(嚴(yán)格模式下必須使用關(guān)鍵字來聲明,因為嚴(yán)格模式下不允許出現(xiàn)不用關(guān)鍵字聲明的變量;),如果解構(gòu)不到值,那么變量的值就是undefined;

  let [a,b,c]=[12,23,34];

  var [d,e,f]=[35,41,63];

  console.log(a,b,c)//12,23,34;

  console.log(d,e,f)//35,41,63;

  [q,w,e]=[1,2,3];//相當(dāng)于給window添加了三個屬性:q,w,e值分別為1,2,3;(嚴(yán)格模式下會報錯)

  [size=1em][size=1em]多維數(shù)組的解構(gòu)賦值,可以讓我們快速的獲取到需要的結(jié)果

  let [a,b,c]=[[45,36],12,[23,43,[1,2[4,[8]]]]23,34];

  console.log(a)//[45,36]

  console.log(b)//12

  console.log(c)//[23,43,[1,2,[4,[8]]]]

  //數(shù)組中不需要解構(gòu)的值可用逗號(,)空開,一個逗號代表空開一項

  let [,,,A]=[12,23,45];

  console.log(A)//undefined

  let [,,B]=[12,23,45]

  console.log(B)//45

  [size=1em][size=1em]在解構(gòu)賦值中,支持擴展運算符即[size=1em]…[size=1em],只要用了擴展運算符,就相當(dāng)于新生成了一個數(shù)組或者對象,如果解構(gòu)不到值的話,新生成的數(shù)組或者對象為空,而不是undefined,但是擴展運算符必須放在末尾

  let [a,...c]=[12,1,4,83,34];

  console.log(a)//12

  console.log(c)//[1,4,83,34];

  let [a,...b,c]=[12,1,4,83,34];//會報錯,擴展運算符只能放在末尾;

  對象的解構(gòu)賦值

  [size=1em][size=1em]對象的簡潔表示法:

  const foo = 'bar';

  const baz = {foo};

  baz // {foo: "bar"}

  // 等同于

  const baz = {foo: foo};

  [size=1em][size=1em]對象的解構(gòu)與數(shù)組有一個重要的不同。數(shù)組的元素是按次序排列的,變量的取值由它的位置決定;而對象的屬性沒有次序,變量必須與屬性同名,才能取到正確的值。

  let { foo, bar } = { foo: "aaa", bar: "bbb" };

  foo // "aaa"

  bar // "bbb"

  如果變量名與屬性名不一致,必須寫成下面這樣。

  let { foo: baz } = { foo: 'aaa', bar: 'bbb' };

  baz // "aaa"

  真正被賦值的是后者,而不是前者。

  let obj = { first: 'hello', last: 'world' };

  let { first: f, last: l } = obj;

  f // 'hello'

  l // 'world'

  first//error: first is not defined

  如果要將一個已經(jīng)聲明的變量用于解構(gòu)賦值,必須非常小心。

  // 錯誤的寫法

  let x;

  {x} = {x: 1};//會報錯

  因為 JavaScript 引擎會將{x}理解成一個代碼塊,從而發(fā)生語法錯誤。只有不將大括號寫在行首,避免 JavaScript 將其解釋為代碼塊,才能解決這個問題。

  // 正確的寫法

  let x;

  ({x} = {x: 1});

  放在圓括號當(dāng)中就可以避免 JavaScript 將其解釋為代碼塊。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
PMP?認證榮獲北京市境外職業(yè)資格認可!

北京市人力資源和社會保障局、北京市人才工作局近日發(fā)布了關(guān)于印發(fā)《北京市境外職業(yè)資格認可目錄(3.0版)》的通知,新版目錄境外職業(yè)資格清單...詳情>>

2023-09-07 17:27:00
怎么選擇靠譜的短視頻運營培訓(xùn)機構(gòu)?

怎么選擇靠譜的短視頻運營培訓(xùn)機構(gòu)?5G時代的來臨,短視頻作為新媒體中最為主流的內(nèi)容更加方便用戶瀏覽觀看信息,因此抖音、快手這類的短視頻平...詳情>>

2023-09-07 15:05:06
全媒體短視頻運營好就業(yè)么?

全媒體短視頻運營好就業(yè)么?現(xiàn)在學(xué)習(xí)互聯(lián)網(wǎng)運營可不能只會單個的運營技術(shù),企業(yè)更喜歡全能型人才。如今的互聯(lián)網(wǎng)世界有多種平臺,新媒體、短視頻...詳情>>

2023-09-07 14:49:25
短視頻運營培訓(xùn)機構(gòu)有用嗎?

短視頻運營培訓(xùn)機構(gòu)有用嗎?短視頻的火熱,催生了一大批的網(wǎng)絡(luò)紅人、網(wǎng)紅賬號,這些短視頻賬號通過實現(xiàn)粉絲流量變現(xiàn),獲得了非常豐厚的收入,自...詳情>>

2023-09-06 13:49:12
大數(shù)據(jù)分析就業(yè)高薪崗位介紹

大數(shù)據(jù)分析就業(yè)高薪崗位介紹?大數(shù)據(jù)行業(yè)是一個快速發(fā)展的行業(yè),其主要特征是數(shù)據(jù)規(guī)模龐大、種類多樣、處理復(fù)雜。目前,大數(shù)據(jù)行業(yè)已經(jīng)成為全球...詳情>>

2023-09-06 13:42:47
開班信息
北京校區(qū)
  • 北京校區(qū)
  • 大連校區(qū)
  • 廣州校區(qū)
  • 成都校區(qū)
  • 杭州校區(qū)
  • 長沙校區(qū)
  • 合肥校區(qū)
  • 南京校區(qū)
  • 上海校區(qū)
  • 深圳校區(qū)
  • 武漢校區(qū)
  • 鄭州校區(qū)
  • 西安校區(qū)
  • 青島校區(qū)
  • 重慶校區(qū)
  • 太原校區(qū)
  • 沈陽校區(qū)
  • 南昌校區(qū)
  • 哈爾濱校區(qū)