Number()轉換為數字, String()轉換為字符串, Boolean()轉換為布爾。
JavaScript的數據類型
在JavaScript中有5種不同的數據類型,可以包含值:
- string
- number
- boolean
- object
- function
有3種類型的對象:
- Object
- Date
- Array
2數據類型不能包含值:
- null
- undefined
該typeof操作
您可以使用typeof操作者找到一個JavaScript變量的數據類型。
例
typeof "John"
// Returns string
typeof 3.14
// Returns number
typeof NaN
// Returns number
typeof false
// Returns boolean
typeof [1,2,3,4] // Returns object
typeof {name:'John', age:34}
// Returns object
typeof new Date()
// Returns object
typeof function () {} // Returns function
typeof myCar
// Returns undefined (if myCar is not declared)
typeof null
// Returns object
試一試» 請注意:
- 的數據類型NaN的數
- 一個數據類型array的對象
- 一個數據類型date為對象
- 的數據類型null的對象
- 一個的數據類型undefined變量未定義
不能使用typeof來確定一個JavaScript對象是一個數組(或日期)。
的數據類型typeof
該typeof算不算一個變量。 它是一個運算符。 算( + - * / )沒有任何數據類型。
但是,在typeof操作者總是返回包含操作數的類型的字符串 。
該constructor屬性
該constructor屬性返回所有的JavaScript變量的構造函數。
例
"John".constructor
// Returns function String() { [native code] }
(3.14).constructor
// Returns function Number() { [native code] }
false.constructor
// Returns function Boolean() { [native code] }
[1,2,3,4].constructor
// Returns function Array() { [native code] }
{name:'John', age:34}.constructor
// Returns function Object() { [native code] }
new Date().constructor
// Returns function Date() { [native code] }
function () {}.constructor
// Returns function Function(){ [native code] }
試一試» 您可以檢查constructor屬性,以找出是否一個對象是一個數組(包含單詞"Array" ):
您可以檢查constructor屬性,以找出是否一個對象是一個日期(包含單詞"Date" ):
JavaScript的類型轉換
JavaScript變數可以轉換為一個新的變量和其它數據類型:
- 通過使用JavaScript函數
- 自動由JavaScript本身
將數字轉換為字符串
全球方法String()可以數字轉換為字符串。
它可以在任何類型的數字,文字,變量或表達式中使用:
例
String(x) // returns a string from a number variable x
String(123) // returns a string from a number literal 123
String(100 + 23) // returns a string from a number from an expression
試一試» 數方法toString()不一樣的。
在章節數的方法 ,你會發現,可用於數字轉換為字符串更多的方法:
方法 | 描述 |
---|---|
toExponential() | 返回一個字符串,圓潤使用指數符號寫了許多。 |
toFixed() | 返回一個字符串,圓潤和小數指定數量的寫了一些。 |
toPrecision() | 返回一個字符串,具有指定長度寫了一些 |
布爾值轉換為字符串
全球方法String()可以布爾值轉換為字符串。
String(false) // returns "false"
String(true) // returns "true"
布爾方法toString()不一樣的。
false.toString() // returns "false"
true.toString() // returns "true"
將日期轉換為字符串
全球方法String()可以日期轉換為字符串。
String(Date()) // returns Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)
日期方法toString()不一樣的。
例
Date().toString() // returns Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)
在第三章日期的方法 ,你會發現可以用來日期轉換為字符串的詳細方法:
方法 | 描述 |
---|---|
getDate() | 得到一天為數字(1-31) |
getDay() | 得到的工作日的數字(0-6) |
getFullYear() | 獲取四位數年份(年) |
getHours() | 獲取小時(0-23) |
getMilliseconds() | 獲取毫秒(0-999) |
getMinutes() | 獲取分鐘(0-59) |
getMonth() | 獲得月份(0-11) |
getSeconds() | 獲取秒(0-59) |
getTime() | 獲取的時間(毫秒自1970年1月1日) |
將字符串轉換為數字
全局方法Number()可以字符串轉換為數字。
包含數字的字符串(如"3.14"轉換為數字(如3.14)。
空字符串轉換為0。
別的轉換NaN (非數字)。
Number("3.14") // returns 3.14
Number(" ") // returns 0
Number("") // returns 0
Number("99 88") // returns NaN
在章節數的方法 ,你會發現可用於字符串轉換為數字更多的方法:
方法 | 描述 |
---|---|
parseFloat() | 分析字符串並返回一個浮點數 |
parseInt() | 分析字符串並返回一個整數 |
一元+操作
一元+操作者可以使用一個變量轉換為數字:
如果變量不能轉換,它仍然會成為一個數字,而是與該值NaN(非數字):
轉換為布爾號碼
全局方法Number()也可以布爾值轉換為數字。
Number(false) // returns 0
Number(true) // returns 1
轉換日期為數字
全球方法
d = new Date();
Number(d) // returns 1404568027739
日期方法getTime()不一樣的。
d = new Date();
d.getTime() // returns 1404568027739
自動類型轉換
當JavaScript嘗試在一個“錯誤”的數據類型進行操作,它會嘗試將值轉換為一個“正確”的類型。
結果並不總是你所期望的:
5 + null // returns 5
because null is converted to 0
"5" + null // returns "5null"
because null is converted to "null"
"5" + 2 // returns
52
because 2 is converted to "2"
"5" - 2 // returns 3
because "5" is converted to 5
"5" * "2" // returns
10 because "5" and "2" are
converted to 5 and 2
試一試» 自動字符串轉換
JavaScript的自動調用變量toString()當您嘗試“產出”的對象或變量函數:
document.getElementById("demo").innerHTML = myVar;
// if myVar = {name:"Fjohn"} // toString converts to "[object Object]"
// if myVar = [1,2,3,4] // toString converts to "1,2,3,4"
// if myVar = new Date() // toString converts to "Fri Jul 18 2014 09:08:55 GMT+0200"
數字和布爾也可以被轉化,但這並不是非常明顯:
// if myVar = 123 // toString converts to "123"
// if myVar = true // toString converts to "true"
// if myVar = false // toString converts to "false"
JavaScript的類型轉換表
該表顯示轉換不同的JavaScript值數字,字符串和布爾的結果:
原版的 值 | 轉換 為數字 | 轉換 為String | 轉換 布爾 | 嘗試一下 |
---|---|---|---|---|
false | 0 | "false" | false | 嘗試一下 ” |
true | 1 | "true" | true | 嘗試一下 ” |
0 | 0 | "0" | false | 嘗試一下 ” |
1 | 1 | "1" | true | 嘗試一下 ” |
"0" | 0 | "0" | true | 嘗試一下 ” |
"1" | 1 | "1" | true | 嘗試一下 ” |
NaN | NaN | "NaN" | false | 嘗試一下 ” |
Infinity | Infinity | "Infinity" | true | 嘗試一下 ” |
-Infinity | -Infinity | "-Infinity" | true | 嘗試一下 ” |
"" | 0 | "" | false | 嘗試一下 ” |
"20" | 20 | "20" | true | 嘗試一下 ” |
"twenty" | NaN | "twenty" | true | 嘗試一下 ” |
[ ] | 0 | "" | true | 嘗試一下 ” |
[20] | 20 | "20" | true | 嘗試一下 ” |
[10,20] | NaN | "10,20" | true | 嘗試一下 ” |
["twenty"] | NaN | "twenty" | true | 嘗試一下 ” |
["ten","twenty"] | NaN | "ten,twenty" | true | 嘗試一下 ” |
function(){} | NaN | "function(){}" | true | 嘗試一下 ” |
{ } | NaN | "[object Object]" | true | 嘗試一下 ” |
null | 0 | "null" | false | 嘗試一下 ” |
undefined | NaN | "undefined" | false | 嘗試一下 ” |
引號中的值表示字符串值。
紅色數值表示的值(一般般)程序員可能沒有想到。