11选5开奖走势图

千鋒教育-做有情懷、有良心、有品質的IT職業教育機構

編程硬核資料庫,
隨查隨看隨問答!

當前位置:首頁  >  關于學院  >  行業動態  >  正文

千鋒為你普及ES6相關知識

時間:2019-04-03 09:16     來源:千鋒教育 作者:邱雪庭
分享: 更多

  ES6增加的語法

  let&&const

  [size=0.9em]let與[size=0.9em]var的區別

  let 變量名=變量值

  使用let創建變量和使用var創建變量的區別

timg

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

  用let創建變量

  let xxx=xxx;

  用let創建函數

  let xxx=function(){}

  創建自執行函數

  ;(function(){

  })();

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

  let i=10;

  let i=20;/會報錯,

  i=20;重復賦值不會報錯

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

  if (true) {

  // TDZ開始

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

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

  let tmp; // TDZ結束

  console.log(tmp); // undefined

  tmp = 123;

  console.log(tmp); // 123

  }

  //下面也會報錯出現TDZ

  console.log(typeof x); // ReferenceError

  let x;

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

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

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

  [ES5]

  window全局作用域

  函數執行形成的私有作用域

  [ES6]

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

  [size=0.9em]const

  const細節知識點和let類似

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

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

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

  JS中創建變量的方式匯總

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

  · var :創建變量

  function:創建函數

  ES5中創建變量或者函數:存在變量提升,重復聲明等特征;

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

  · let創建變量

  const:ES6中創建常量

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

  class:創建一個類

  import:導入

  ES6中的解構賦值

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

  數組的解構賦值

  [size=1em][size=1em]解構賦值本身是ES6的語法規范,使用什么關鍵字來聲明這些變量是無所謂的,如果不用關鍵字來聲明,那么就相當于給window添加的自定義屬性;(嚴格模式下必須使用關鍵字來聲明,因為嚴格模式下不允許出現不用關鍵字聲明的變量;),如果解構不到值,那么變量的值就是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];//相當于給window添加了三個屬性:q,w,e值分別為1,2,3;(嚴格模式下會報錯)

  [size=1em][size=1em]多維數組的解構賦值,可以讓我們快速的獲取到需要的結果

  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]]]]

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

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

  console.log(A)//undefined

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

  console.log(B)//45

  [size=1em][size=1em]在解構賦值中,支持擴展運算符即[size=1em]…[size=1em],只要用了擴展運算符,就相當于新生成了一個數組或者對象,如果解構不到值的話,新生成的數組或者對象為空,而不是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];//會報錯,擴展運算符只能放在末尾;

  對象的解構賦值

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

  const foo = 'bar';

  const baz = {foo};

  baz // {foo: "bar"}

  // 等同于

  const baz = {foo: foo};

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

  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

  如果要將一個已經聲明的變量用于解構賦值,必須非常小心。

  // 錯誤的寫法

  let x;

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

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

  // 正確的寫法

  let x;

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

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

相關文章

  • 北京總部地址:北京市海淀區寶盛北里西區28號中關村智誠科創大廈4層
    北京沙河校區:北京市昌平區沙陽路18號北京科技職業技術學院廣場服務樓
    咨詢電話:400-811-9990
    面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、Linux云計算+網絡安全培訓、互聯網營銷培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
    認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
  • 深圳校區地址:深圳市寶安區寶安大道5010號西部硅谷B座A區6層A605/B座C區1層108
    咨詢電話:0755-23015275/23015546-801/86660670
    面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、Linux云計算+網絡安全培訓、互聯網營銷培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
    認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
  • 上海校區地址:上海市寶山區同濟支路199號智慧七立方3號樓2-4層
    咨詢電話:400-811-9990 021-65233829-609
    面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、Linux云計算+網絡安全培訓、互聯網營銷培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
    認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
  • 廣州校區地址:廣州市天河區元崗路200號慧通產業園B9三層
    咨詢電話:020-87088521
    面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、云計算培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
    認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
  • 鄭州二七區校區地址:鄭州市二七區航海中路60號海為科技園C區10層
    鄭州高新區校區地址:鄭州市高新區金梭路與銀杏路交叉口教育科技產業園南門D座4層
    咨詢電話:0371-55191750/18610973027
    面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、云計算培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
    認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
  • 大連校區地址:遼寧省大連市高新園區愛賢街10號大連設計城A座901
    咨詢電話:400-811-9990
    面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、云計算培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
    認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
  • 武漢金融港校區地址:武漢市東湖高新技術開發區光谷大道77號金融港B18棟3樓
    武漢智慧園校區地址:武漢市東湖高新技術開發區光谷大道61號智慧園21棟2樓
    咨詢電話:027-59313371
    面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、云計算培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
    認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
  • 成都校區地址:成都市武侯區科華北路62號力寶大廈N(北樓)16樓
    咨詢電話:18628039301/18280029283/13028173481/18613201237
    面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、云計算培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
    認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
  • 西安校區地址:西安市雁塔區高新六路52號立人科技C座西區4樓
    咨詢電話:029-85363390
    面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、云計算培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
    認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
  • 杭州旺田校區:浙江省杭州市江干區九堡旺田書畫城A座4層
    杭州龍馳校區:浙江省杭州市下沙經濟技術開發區元成路199號龍馳智慧谷B座7層
    咨詢電話:400-811-9990 0571-86893632/0571-86094032
    面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、云計算培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
    認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
  • 青島校區地址:青島市市北區龍城路卓越世紀中心3號樓8層801
    咨詢電話:0532-80911190
    面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、云計算培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
    認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
  • 重慶校區地址:重慶市高新區科園一路2號大西洋國際12-1
    咨詢電話:400-811-9990 023-68883009
    面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、云計算培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
    認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
  • 長沙校區地址:湖南省長沙市岳麓區麓谷企業廣場A2棟三單元306號
    咨詢電話:0731-85513210
    面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、云計算培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
    認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
  • 哈爾濱校區地址:哈爾濱市松北區世澤路689號科技創新城4號樓11樓
    咨詢電話:400-811-9990/0451-87173191
    面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、云計算培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
    認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
  • 南京校區地址:南京市建鄴區應天大街780號弘輝產業園1棟2層
    咨詢電話:400-811-9990
    面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、云計算培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
    認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
  • 太原校區地址:太原市小店區長治路230號能源互聯網大廈6層
    咨詢電話:400-811-9990 16603513433
    面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、云計算培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
    認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
  • 沈陽校區地址:遼寧省沈陽市渾南區世紀路16號東大軟件園B園B1座A201
    咨詢電話:400-811-9990
    面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、云計算培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
    認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
  • 合肥校區地址:合肥市包河區徽州大道396號東方廣場B座12A
    咨詢電話:400-811-9990
    面授課程:HTML5大前端培訓、JavaEE+分布式開發培訓、Python全棧+人工智能培訓、全鏈路UI/UE設計培訓、云計算培訓、全棧軟件測試培訓、大數據+人工智能培訓、智能物聯網+嵌入式培訓、Unity游戲開發培訓、Go語言開發培訓、PHP全棧+服務器集群培訓、網絡安全培訓、互聯網營銷培訓、好程序員
    認證課程:軟考、Adobe認證、PMP認證、紅帽RHCE認證
  • 千鋒教育服務號

    了解千鋒動態
    關注千鋒教育服務號

  • 千鋒教育移動站

    掃一掃快速進入
    千鋒移動端頁面

  • 千鋒互聯服務號

    掃碼匿名提建議
    直達CEO信箱

11选5开奖走势图 正宗香港麻将游戏 广东麻将1.5.0 981棋牌娱乐 打麻将抓牌规则 南通棋牌公众号游戏中心 山东体彩app下载地址 今天快三预测号码推荐 极速十一选五技巧 qq欢乐麻将全集cdk 丰禾棋牌停止运营了吗