ECMAScript 2015

ECMAScript 6 - ECMAScript 2015

  • JS 版本 ES5
  • JS JSON


ECMAScript 6 - ECMAScript 2015


ECMAScript 6 是什麼?

ECMAScript 6 也稱為 ES6 和 ECMAScript 2015。

一些人把它稱作 JavaScript 6。

本章介紹 ES6 中的一些新特性。

  • JavaScript let
  • JavaScript const
  • 冪 (**)
  • 默認參數值
  • Array.find()
  • Array.findIndex()

對 ES6(ECMAScript 2015)的瀏覽器支持

Safari 10 和 Edge 14 是首先完全支持 ES6 的瀏覽器:

Chrome 58 Edge 14 Firefox 54 Safari 10 Opera 55 Jan 2017 Aug 2016 Mar 2017 Jul 2016 Aug 2018

JavaScript let

let 語句允許您使用塊作用域聲明變量。

實例

<code>var x = 10;
// Here x is 10
{
let x = 2;

// Here x is 2
}
// Here x is 10
/<code>

親自試一試

JavaScript const

const 語句允許您聲明常量(具有常量值的 JavaScript 變量)。

常量類似於 let 變量,但不能更改值。

實例

<code>var x = 10;
// Here x is 10
{
const x = 2;
// Here x is 2
}
// Here x is 10
/<code>

親自試一試

請在我們的 JavaScript Let / Const 章節中閱讀更多關於 let 和 const 的內容。

指數運算符

取冪運算符(**)將第一個操作數提升到第二個操作數的冪。

實例

<code>var x = 5;
var z = x ** 2; // 結果是 25
/<code>

親自試一試

x ** y 的結果與 Math.pow(x,y) 相同:

實例

<code>var x = 5;
var z = Math.pow(x,2); // 結果是 25
/<code>

親自試一試

默認參數值

ES6 允許函數參數具有默認值。

實例

<code>function myFunction(x, y = 10) {
// y is 10 if not passed or undefined
return x + y;
}
myFunction(5); // 將返回 15
/<code>

親自試一試

Array.find()

find() 方法返回通過測試函數的第一個數組元素的值。

此例查找(返回)第一個大於 18 的元素(的值):

實例

<code>var numbers = [4, 9, 16, 25, 29];
var first = numbers.find(myFunction);

function myFunction(value, index, array) {
return value > 18;
}
/<code>

親自試一試

請注意此函數接受 3 個參數:

  • 項目值
  • 項目索引
  • 數組本身

Array.findIndex()

findIndex() 方法返回通過測試函數的第一個數組元素的索引。

此例確定大於 18 的第一個元素的索引:

實例

<code>var numbers = [4, 9, 16, 25, 29];
var first = numbers.findIndex(myFunction);

function myFunction(value, index, array) {
return value > 18;
}
/<code>

親自試一試

請注意此函數接受 3 個參數:

  • 項目值
  • 項目索引
  • 數組本身

新的數字屬性

ES6 將以下屬性添加到 Number 對象:

  • EPSILON
  • MIN_SAFE_INTEGER
  • MAX_SAFE_INTEGER

實例

<code>var x = Number.EPSILON;/<code>

親自試一試

實例

<code>var x = Number.MIN_SAFE_INTEGER;/<code>

親自試一試

實例

<code>var x = Number.MAX_SAFE_INTEGER;/<code>

親自試一試

新的數字方法

ES6 為 Number 對象添加了 2 個新方法:

  • Number.isInteger()
  • Number.isSafeInteger()

Number.isInteger() 方法

如果參數是整數,則 Number.isInteger() 方法返回 true。

實例

<code>Number.isInteger(10);        // 返回 true
Number.isInteger(10.5); // 返回 false
/<code>

親自試一試

Number.isSafeInteger() 方法

安全整數是可以精確表示為雙精度數的整數。

如果參數是安全整數,則 Number.isSafeInteger() 方法返回 true。

實例

<code>Number.isSafeInteger(10);    // 返回 true
Number.isSafeInteger(12345678901234567890); // 返回 false
/<code>

親自試一試

安全整數指的是從 -(253 - 1) 到 +(253 - 1) 的所有整數。

這是安全的:9007199254740991。這是不安全的:9007199254740992。

新的全局方法

ES6 還增加了 2 個新的全局數字方法:

  • isFinite()
  • isNaN()

isFinite() 方法

如果參數為 Infinity 或 NaN,則全局 isFinite() 方法返回 false。

否則返回 true:

實例

<code>isFinite(10/0);       // 返回 false
isFinite(10/1); // 返回 true
/<code>

親自試一試

isNaN() 方法

如果參數是 NaN,則全局 isNaN() 方法返回 true。否則返回 false:

實例

<code>isNaN("Hello");       // 返回 true/<code>

親自試一試

箭頭函數(Arrow Function)

箭頭函數允許使用簡短的語法來編寫函數表達式。

您不需要 function 關鍵字、return 關鍵字以及花括號。

實例

<code>// ES5
var x = function(x, y) {
return x * y;
}

// ES6
const x = (x, y) => x * y;
/<code>

親自試一試

箭頭功能沒有自己的 this。它們不適合定義對象方法。

箭頭功能未被提升。它們必須在使用前進行定義。

使用 const 比使用 var 更安全,因為函數表達式始終是常量值。

如果函數是單個語句,則只能省略 return 關鍵字和花括號。因此,保留它們可能是一個好習慣:

實例

<code>const x = (x, y) => { return x * y };/<code>

親自試一試


分享到:


相關文章: