初識JS

BoxIn發表於2018-10-11

  初入前端,大家都一致追捧一本書,這本被大家稱之為紅寶書的書,名字叫做《JavaScript高階程式設計》。我的印象中俞敏洪也曾寫過一本叫做紅寶書的書,以前考研的時候政治也有一本紅寶書。既然都被稱為紅寶書了,那我就從這入門吧,前端大牛多,我這個大齡初生牛犢就來好好跟大家記錄一下這本書的筆記,向著大牛的方向追趕下去,希望在不遠的幾年,也能成長為論壇裡別的新手眼中的“大牛”吧。

  好了,廢話到此為止。

  這本書,前兩章是可以不記的,用作瀏覽。讓我們從第三章——語法部分開始。

 

  # 資料型別

    用 typeof 操作符檢視資料型別。

  • “undefined”   這個值未定義
  • “boolean”      這個值是布林值
  • “string”          字串
  • “number”       數值
  • “object”          物件  或者   null
  • “function”       函式

 

  # 數值轉換

  3個函式可以有此功能

  • Number()        可以用於 任何資料型別
  • parseInt()        專門用於把字串轉換為數值
  • parseFloat()    專門用於把字串轉換為數值

一個個的說。

 

  • Number()

先說 Number(),它的轉換規則如下

  1. 如果是 Boolean 值,true 和 false 將分別被轉換為 1 和 0.
  2. 如果是數字值,那就只是簡單的傳入和返回
  3. 如果是 null ,返回 0
  4. 如果是 undefined ,返回 NaN
  5. 如果是字串,要遵循下面的規則
    • 如果字串中只是包含數字(包括前面帶正號或負號的情況),則將其轉換為十進位制數值,即 “1” 會變成 1, “123” 會變成 123, 而 “011” 會變成 11(前面的 0 會被忽略)
    • 如果字串中含有有效的浮點格式,如 “1.1” ,則將其轉化為對應的浮點數值
    • 如果字串中包含有效的十六進位制格式,例如 “0xf” ,則將其轉化為相同大小的十進位制整數值
    • 如果字串是空的(不包含任何字元),則將其轉化為0
    • 如果字串包含除上述格式之外的字串,則將其轉化為 NaN

 

  給個例子

var num1 = Number("Hello world!");  //NaN
var num2 = Number("");              //0
var num3 = Number("000011");        //11
var num4 = Number(true);            //1

 

  • parseInt ()

由於呢,Number()函式在轉換字串時比較複雜,而且不夠合理,因此,在處理整數的時候,更常用的是 parseInt () 函式。

parseInt () 在轉換字串時,更多的是看它是否符合數值模式。它會忽略字串前面的空格,直到找到第一個非空格字元。

如果第一個字元不是數字字元或者符號, parseInt () 就會返回 NaN。如果第一個字元是數字字元,parseInt () 就會繼續解析第二個字元,直到解析完所有的後續字元,或者遇到了一個非數字字元。

例如,“1234blue” 會被轉換成 1234 , 因為 “blue” 會被忽略。類似的, “22.5” 會被轉換成 22, 因為小數點不是有效的數字字元。

幾個 parseInt ()例子

        var num1 = parseInt("1234blue");    //1234
        var num2 = parseInt("");            //NaN
        var num3 = parseInt("0xA");         //10   八進位制
        var num4 = parseInt(22.5);          //22
        var num5 = parseInt("70");          //70   十進位制
        var num6 = parseInt("0xf");         //15   十六進位制

 

  • parseFloat ()

和 上面的 parseInt () 類似。

 

        var num1 = parseFloat("1234blue");    //1234 - integer
        var num2 = parseFloat("0xA");         //0
        var num3 = parseFloat("22.5");        //22.5
        var num4 = parseFloat("22.34.5");     //22.34
        var num5 = parseFloat("0908.5");      //908.5
        var num6 = parseFloat("3.125e7");     //31250000

 

 

  • toString ()

轉換為字串

要把一個值轉換為一個字串,有兩個辦法。

1. 使用幾乎每個值都有的 toString () 方法,該方法要做的是返回相應值的字串表現。

        var age = 11;
        var ageAsString = age.toString();    //the string "11"
        var found = true;
        var foundAsString = found.toString(); //the string "true"

 

數值、布林值、物件、字串值,都有 toString() 方法。但 null 和 undefined 值沒有這個方法。

多數情況下,呼叫 toString() 方法不必傳播引數。但是,在呼叫數值的 toString() 方法時,可以傳遞 “輸出數值的基數” 為引數。

  例如

1         var num = 10;
2         alert(num.toString());       //"10"
3         alert(num.toString(2));      //"1010"
4         alert(num.toString(8));      //"12"
5         alert(num.toString(10));     //"10"
6         alert(num.toString(16));     //"a"

 

通過制定的基數,可以改變 toString() 輸出的值

 

  • String ()

能夠將任何型別的值轉換為字串。包括 null 或 undefined

規則如下

    • 如果值有 toString() 方法,則呼叫該方法(沒有引數)並返回相應的結果
    • 如果值是 null ,就返回 “null”
    • 如果值是 undefined ,就返回 “undefined”
1         var value1 = 10;
2         var value2 = true;
3         var value3 = null;
4         var value4;
5         
6         alert(String(value1));     //"10"
7         alert(String(value2));     //"true"
8         alert(String(value3));     //"null"
9         alert(String(value4));     //"undefined"

 

 

PS: 要把某個值轉換為字串,可以使用加號操作符,把它與一個字串(“ ”)加在一起。