JavaScript的ES6有哪些新知識需要我們去學習

whisperrr發表於2021-08-17

  過學習微信小程式開發的基礎知識後,又用了一週的時間來學習開發矽谷雲音樂微信小程式的專案,在小程式專案實戰的課程裡面看到老師使用了大量的 ES6 的語法知識,有些高階的 JavaScript 寫法還是讓我看的有點摸不著頭腦,私下自己抽時間又去學習了一下 ES6 的語法知識,下面就來給大家總結一下我們經常會用到的這些 ES6 的新知識。

  介紹

  ECMAScript6.0(簡稱 ES6),是JavaScript語言的下一代標準,目的是為了讓JavaScript能夠編寫複雜的大型應用,成為企業級的開發語言。本編文章我們主要從它的新特性變數,字串,陣列,物件導向,Promise等這幾個方面來學習。

  變數

  let:新增的宣告變數關鍵字,不能重複宣告,屬於塊級作用域,可以修改變數值。

  const:新增的宣告變數關鍵字,不能重複宣告,屬於塊級作用域,不能修改的常量值。

  var:這是我們在JS中經常用到的宣告變數方式,可以重複宣告,屬於函式級作用域,不能限制它的修改。

  {

  let a = 1;

  const b = 2;

  var c = 3;

  }

  consloe.log(a); // 輸出:Uncaught ReferenceError: a is not defined

  console.log(b); // 輸出: 1,外部預設值

  console.log(c); // 輸出: 3

  字串

  模板字串:可以使用反引號(``)標識,可以當作普通字串使用,也可以定義多行字串,還可以在字串中籤入變數(${var})。

  字串遍歷:為字串新增了遍歷器介面,可以用for...of迴圈遍歷字串。

  // 字串模板

  let str1 = `Hello World`;

  let str2 = `Hello

  World`;

  let str3 = `第一個${str1}`;

  console.log(str1); // 輸出:Hello World

  console.log(str2); // 輸出:Hello World (換行)

  console.log(str3); // 輸出:第一個Hello World

  // 字串迴圈

  let str4 = 'abc'; 大連無痛人流醫院  

  for(let str of str1){

  console.log(str); // 輸出:a b c (換行)

  }

  陣列

  擴充套件運算子:使用三個點(...),是將一個陣列轉為用逗號分隔的引數序列,主要用於函式呼叫。

  擴充套件運算子主要應用複製陣列,合併陣列,字串轉陣列等

  let arr = [1,2,3];

  console.log(...arr); // 輸出:1 2 3

  const a1 = [1, 2];

  const a2 = [...a1];

  console.log(a2); // 輸出:[1,2]

  const a3 = [1, 2];

  const a4 = [3, 4];

  const a5 = [...a3,...a4];

  console.log(a5); // 輸出:[1,2,3,4]

  陣列常用方法:

  Array.from(),將兩類物件轉換為真正的陣列

  Array.of(),一組值轉換為陣列

  copyWithin(target,start,end),將指定位置的成員複製到其它位置,如:[1,2,3].copyWithin(0,2) // [3,2,3]

  find(),找出第一個符合條件的陣列成員,引數為回撥函式,如:[1,2,3].find(n=>n>1) // 2

  findIndex(),返回第一個符合條件的陣列成員的位置索引,如:[1,2,3].findIndex(n=>n>1) // 1

  includes(),返回布林值,表示某個陣列是否包含給定的值,如:[1,2,3].includes(1) // true

  箭頭函式

  使用箭頭(=>)定義函式,箭頭函式的 this 指向物件。

  語法:(引數1, 引數2, …, 引數N) => { 函式宣告 }

  var fun = () => {

  console.log('沒有引數的函式');

  }

  解構賦值

  解構是指從陣列和物件中提取值,對變數進行賦值。

  let [a, b, c] = [1, 2, 3];

  console.log(a + " " +b + " " +c) // 輸出: 1 2 3

  let [x, y = 'b'] = ['a'];

  console.log(x + " " + y); // 輸出:a b

  函式

  可以為函式的引數指定預設值

  function foo(x = 1, y = 2) {

  console.log(x, y);

  }

  foo(undefined, null); // 輸出:1 null

  Promise物件

  Promise 是非同步程式設計的一種解決方案,解決非同步回撥。它代表未來將要發生的事件,可以獲取非同步操作的訊息。

  Promise 物件三種狀態:

  pending 初始化狀態

  fulfilled 成功狀態

  rejected 失敗狀態

  const promise = new Promise(function(resolve, reject) {

  // ... some code

  if (/* 非同步操作成功 */){

  resolve(value);

  } else {

  reject(error);

  }

  });

  // 呼叫

  promise.then(function(value) {

  // 成功

  }, function(error) {

  // 失敗

  });


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70005147/viewspace-2787357/,如需轉載,請註明出處,否則將追究法律責任。

相關文章