ES6 -- 基本函數擴展

一、字符串的擴展

主要增長對大於0xFFFF的碼點的支持:數組

for...of循環遍歷安全

var text = String.fromCodePoint(0x20BB7);

for (let i = 0; i < text.length; i++) {
  console.log(text[i]);
}
// " "
// " "

for (let i of text) {
  console.log(i); //吉
}

這個遍歷器最大的優勢是能夠識別大於0xFFFF的碼點app

字符串的擴展函數

  • includes(), startsWith(), endsWith()增長的匹配功能,函數

  • padStart(),padEnd():若是不全,用指定字符補全字符串code

  • repeat() 返回一個新字符串,表示將原字符串重複n次。對象

模板字符串

$("#result").append(`
  There are <b>${basket.count}</b> items
   in your basket, <em>${basket.onSale}</em>
  are on sale!
`);

模板字符串(template string)是加強版的字符串,用反引號(`)標識。它能夠看成普通字符串使用,也能夠用來定義多行字符串,或者在字符串中嵌入變量。ip

標籤模板

重要應用,jsx

  • 過濾HTML字符串,防止用戶輸入惡意內容字符串

  • 多語言轉換(國際化處理)string

  • 在JavaScript語言之中嵌入其餘語言 jsx//jsx語言

tag`Hello ${ a + b } world ${ a * b }`;
//等價於下面
tag(['Hello ', ' world ', ''], 15, 50)

i18n`Welcome to ${siteName}, you are visitor number ${visitorNumber}!`
// "歡迎訪問xxx,您是第xxxx位訪問者!"

String.raw()

String.raw方法,每每用來充當模板字符串的處理函數,返回一個斜槓都被轉義(即斜槓前面再加一個斜槓)的字符串,對應於替換變量後的模板字符串。

String.raw方法能夠做爲處理模板字符串的基本方法,它會將全部變量替換,並且對斜槓進行轉義,方便下一步做爲字符串來使用。

String.raw方法也能夠做爲正常的函數使用。這時,它的第一個參數,應該是一個具備raw屬性的對象,且raw屬性的值應該是一個數組。

二、數值的擴展

二進制和八進制表示法

ES6提供了二進制和八進制數值的新的寫法,分別用前綴0b(或0B)和0o(或0O)表示。

0b111110111 === 503 // true
0o767 === 503 // true
number新增方法:
  • Number.isFinite():檢查一個數值是否非無窮(infinity)。

  • Number.isNaN():檢查一個值是否爲NaN

  • Number.parseInt()

  • Number.parseFloat()ES6將全局方法parseInt()parseFloat(),移植到Number對象上面

  • Number.isInteger() 判斷一個值是否爲整數

  • Number.EPSILON :極小的常量Number.EPSILON,的實質是一個能夠接受的偏差範圍。

  • 安全整數和Number.isSafeInteger() JavaScript可以準確表示的整數範圍在-2^532^53之間(不含兩個端點),超過這個範圍,沒法精確表示這個值。

  • Number.MAX_SAFE_INTEGERNumber.MIN_SAFE_INTEGER這兩個常量,用來表示這個範圍的上下限。

math新增方法
  • Math.trunc():用於去除一個數的小數部分,返回整數部分

  • Math.sign(): 用來判斷一個數究竟是正數、負數、仍是零。

  • Math.cbrt方法用於計算一個數的立方根。

  • Math.clz32方法返回一個數的32位無符號整數形式有多少個前導0。

  • Math.imul方法返回兩個數以32位帶符號整數形式相乘的結果,返回的也是一個32位的帶符號整數。

  • Math.fround方法返回一個數的單精度浮點數形式。

  • Math.hypot方法返回全部參數的平方和的平方根

也新增下列函數

對數方法
三角函數方法
指數運算符

傳統方法先調用Number()將非數值的值轉爲數值,再進行判斷,而這兩個新方法只對數值有效,非數值一概返回false

三、數組的擴展

Array.from()

Array.from方法用於將兩類對象轉爲真正的數組
常見的相似數組的對象是DOM操做返回的NodeList集合,以及函數內部的arguments對象。Array.from均可以將它們轉爲真正的數組。

// NodeList對象
let ps = document.querySelectorAll('p');
Array.from(ps).forEach(function (p) {
  console.log(p);
});

Array.of()

Array.of方法用於將一組值,轉換爲數組。

Array() // []
Array(3) // [, , ,]  參數個數只有一個時,其實是指定數組的長度。
Array(3, 11, 8) // [3, 11, 8]

Array.of基本上能夠用來替代Array()new Array(),而且不存在因爲參數不一樣而致使的重載。它的行爲很是統一。

copyWithin()

數組實例的copyWithin方法,在當前數組內部,將指定位置的成員複製到其餘位置(會覆蓋原有成員),而後返回當前數組。

find()和findIndex()

數組實例的find方法,用於找出第一個符合條件的數組成員。

fill()

fill方法使用給定值,填充一個數組。 用於空數組的初始化很是方便。

entries(),keys()和values()

ES6提供三個新的方法——entries()keys()values()——用於遍歷數組。它們都返回一個遍歷器對象

includes()

返回一個布爾值,表示某個數組是否包含給定的值,該方法屬於ES7,但Babel轉碼器已經支持。

四、函數的擴展

  • 使用函數參數的默認值,分別哪些參數是能夠省略的與解構賦值默認值結合使用

相關文章
相關標籤/搜索