ES6新語法之---字符串&數值擴展(6)

這節課主要學習ES6中字符串和數值擴展,主要學習經常使用的方法。學習

第一部分:字符串經常使用方法擴展spa

1.includes()、startsWith()、endsWIth()code

  ES6以前JavaScript只有indexof()方法,能夠用來肯定一個字符串是否包含在另外一個字符串中,indexOf()方法返回值是數字對象

  ES6中提供了三種新的方法:blog

    includes: 返回布爾值,表示是否找到了參數字符串。ip

    startsWith():返回布爾值,表示是否以參數字符串開頭。字符串

    endsWith():返回布爾值,表示是否以參數字符串結尾。it

  舉例:判斷字符串是否存在class

    let s = 'Hello world!';
    s.indexOf('Hello')    // 0,返回值是數字,-1表示不存在,其餘表示存在
    s.startsWith('Hello') // true
    s.endsWith('!') // true
    s.includes('o') // true

    第二參數表示開始查找的位置,注意startsWith和endsWith()區別擴展

    let s = 'Hello world!';

    s.startsWith('world', 6) // true,從頭開始計算
    s.endsWith('Hello', 5) // true,從尾開始計算
    s.includes('Hello', 6) // false

2.repeat()方法

  repeat方法返回一個新字符串,表示將原字符串重複n次。

  參數爲整數

    'x'.repeat(3) // "xxx"
    'hello'.repeat(2) // "hellohello"
    'na'.repeat(0) // 

  參數爲小數,正數向下取整,負數向上取整:

    'na'.repeat(2.9) // "nana"
   'na'.repeat(-0.9) // "" -0.9,取整結果-0,repeat認爲-0至關於0
'na'.repeat(NaN) // "", NaN等同於0

  參數爲字符串,repeat會先使用Number將字符串轉爲數字

    'na'.repeat('na') // ""
    'na'.repeat('3') // "nanana"

 

第二部分:數值的擴展

1.二進制和八進制表示法

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

    0b111110111 === 503 // true
    0o767 === 503 // true

  從ES5開始,嚴格模式中,八進制就再也不容許使用前綴0表示,ES6進一步明確必須使用0o表示。

  使用Number()方法將0b和0o前綴的字符串轉爲十進制。

    Number('0b111')  // 7
    Number('0o10')  // 8

2.新增方法

  ES6爲Number對象新增了不少更方便的方法

  <1>.全局方法改成Number的局部方法。

    Number.isFinite():判斷一個數值是不是有限的。

    注意:參數類型不是Number類型,一概返回false

    Number.isFinite(15); // true
    Number.isFinite(0.8); // true
    Number.isFinite(NaN); // false
    Number.isFinite(Infinity); // false
    Number.isFinite(-Infinity); // false
    Number.isFinite('foo'); // false
    Number.isFinite('15'); // false
    Number.isFinite(true); // false

    Number.isNaN():用來檢查一個值是否爲NaN。

    注意:參數類型不是NaN,一概返回false。

    Number.isNaN(NaN) // true
    Number.isNaN(15) // false
    Number.isNaN('15') // false
    Number.isNaN(true) // false
    Number.isNaN(9/NaN) // true
    Number.isNaN('true' / 0) // true
    Number.isNaN('true' / 'true') // true

    Number.parseInt():用來將參數轉爲整數類型

    Number.parseFloat():用來將參數轉爲浮點數類型

    注意:參數爲非數值類型,首先使用Number()將其轉爲數值類型,再進行轉型操做。

    Number.parseInt('12.34') // 12
    Number.parseFloat('123.45#') // 123.45

  <2>.新增方法。

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

    注意:

      1.js中整數和浮點數存儲方式相同,因此15和15.0是相等的。

      2.參數若是不是Number類型,一概返回false。

    Number.isInteger(15) // true
    Number.isInteger(15.0) // true

3.Math對象的擴展

  <1>Math.trunc('參數'),用於去除一個數的小數部分,返回整數部分。

    注意:參數不爲Number類型,Math.trunc()內部會使用Number方法將其轉成Number類型再處理。

    //參數爲數值類型
    Math.trunc(4.1) // 4
    Math.trunc(4.9) // 4
    Math.trunc(-4.1) // -4
    Math.trunc(-4.9) // -4
    Math.trunc(-0.1234) // -0

    //參數爲非數值類型
    Math.trunc('123.456') // 123
    Math.trunc(true) //1
    Math.trunc(false) // 0
    Math.trunc(null) // 0

    對於空值和沒法截取整數的值,返回NaN。

    Math.trunc(NaN);      // NaN
    Math.trunc('foo');    // NaN
    Math.trunc();         // NaN
    Math.trunc(undefined) // NaN

  <1>Math.sign('參數'),用來判斷一個數究竟是正數、負數、仍是零。

    注意:對於參數爲非數值,會先用Number處理參數再進行計算。

    返回值類型:

      參數爲正:返回+1

      參數爲負:返回-1

      參數爲0:返回0

      參數爲-0:返回-0

      其餘值:返回NaN。

    //參數爲Number類型
    Math.sign(-5) // -1
    Math.sign(5) // +1
    Math.sign(0) // +0
    Math.sign(-0) // -0
    Math.sign(NaN) // NaN

    //參數爲非Number類型
    Math.sign('')  // 0
    Math.sign(true)  // +1
    Math.sign(false)  // 0
    Math.sign(null)  // 0
    Math.sign('9')  // +1
    Math.sign('foo')  // NaN
    Math.sign()  // NaN
    Math.sign(undefined)  // NaN
相關文章
相關標籤/搜索