天天看點

JavaScript 類型轉換(上)

Number() 轉換為數字, String() 轉換為字元串, Boolean() 轉換為布爾值。

JavaScript 資料類型

在 JavaScript 中有 6 種不同的資料類型:

  • string
  • number
  • boolean
  • object
  • function
  • symbol

3 種對象類型:

  • Object
  • Date
  • Array

2 個不包含任何值的資料類型:

  • null
  • undefined

typeof 操作符

你可以使用 typeof 操作符來檢視 JavaScript 變量的資料類型。

執行個體

typeof "John"                 // 傳回 string
typeof 3.14                   // 傳回 number
typeof NaN                    // 傳回 number
typeof false                  // 傳回 boolean
typeof [1,2,3,4]              // 傳回 object
typeof {name:'John', age:34}  // 傳回 object
typeof new Date()             // 傳回 object
typeof function () {}         // 傳回 function
typeof myCar                  // 傳回 undefined (如果 myCar 沒有聲明)
typeof null                   // 傳回 object           

複制

請注意:

  • NaN 的資料類型是 number
  • 數組(Array)的資料類型是 object
  • 日期(Date)的資料類型為 object
  • null 的資料類型是 object
  • 未定義變量的資料類型為 undefined

如果對象是 JavaScript Array 或 JavaScript Date ,我們就無法通過 typeof 來判斷他們的類型,因為都是 傳回 object。

constructor 屬性

constructor 屬性傳回所有 JavaScript 變量的構造函數

"John".constructor                 // 傳回函數 String()  { [native code] }
(3.14).constructor                 // 傳回函數 Number()  { [native code] }
false.constructor                  // 傳回函數 Boolean() { [native code] }
[1,2,3,4].constructor              // 傳回函數 Array()   { [native code] }
{name:'John', age:34}.constructor  // 傳回函數 Object()  { [native code] }
new Date().constructor             // 傳回函數 Date()    { [native code] }
function () {}.constructor         // 傳回函數 Function(){ [native code] }           

複制

你可以使用 constructor 屬性來檢視對象是否為數組 (包含字元串 "Array"):

function isArray(myArray) {
    return myArray.constructor.toString().indexOf("Array") > -1;
}           

複制

你可以使用 constructor 屬性來檢視對象是否為日期 (包含字元串 "Date"):

function isDate(myDate) {
    return myDate.constructor.toString().indexOf("Date") > -1;
}           

複制

JavaScript 類型轉換

JavaScript 變量可以轉換為新變量或其他資料類型:

  • 通過使用 JavaScript 函數
  • 通過 JavaScript 自身自動轉換

将數字轉換為字元串

全局方法 String() 可以将數字轉換為字元串。

該方法可用于任何類型的數字,字母,變量,表達式:

String(x)         // 将變量 x 轉換為字元串并傳回
String(123)       // 将數字 123 轉換為字元串并傳回
String(100 + 23)  // 将數字表達式轉換為字元串并傳回           

複制

在 Number 方法 章節中,你可以找到更多數字轉換為字元串的方法:

方法 描述
toExponential() 把對象的值轉換為指數計數法。
toFixed() 把數字轉換為字元串,結果的小數點後有指定位數的數字。
toPrecision() 把數字格式化為指定的長度。