JavaScript Typkonvertering
- Föregående sida JS-typeof
- Nästa sida JS-dekonstruktion
Number()
Convert number,String()
Convert string,Boolean()
Convert boolean values.
JavaScript datatyper
There are five data types that can contain values in JavaScript:
- String (string)
- Number (number)
- Boolean (boolean)
- Object (object)
- Function (function)
There are three types of objects:
- Object (Object)
- Date (Date)
- Array (Array)
There are two data types that cannot contain values:
- null
- undefined
typeof operator
You can use typeof
Operators to determine the data type of JavaScript variables.
exempel
typeof "Bill" // Return "string" typeof 3.14 // Return "number" typeof NaN // Return "number" typeof false // 返回 "boolean" typeof [1,2,3,4] // 返回 "object" typeof {name:'Bill', age:62} // 返回 "object" typeof new Date() // 返回 "object" typeof function () {} // 返回 "function" typeof myCar // 返回 "undefined" * typeof null // 返回 "object"
请注意:
- NaN 的数据类型是数值
- 数组的数据类型是对象
- 日期的数据类型是对象
- null 的数据类型是对象
- 未定义变量的数据类型是 undefined
- 尚未赋值的变量的数据类型也是 undefined
您无法使用 typeof
去判断 JavaScript 对象是否是数组(或日期)。
typeof 的数据类型
typeof
运算符不是变量。它属于运算符。运算符(比如 +
-
*
/
)没有数据类型。
但是,typeof
始终会返回字符串(包含运算数的类型)。
constructor 属性
constructor
属性返回所有 JavaScript 变量的构造器函数。
exempel
function String() { [native code] } function Number() { [native code] } function Boolean() { [native code] } function Array() { [native code] } function Object() { [native code] } new Date().constructor // Returnerar "function Date() { [native code] }" function () {}.constructor // Returnerar "function Function(){ [native code] }"
Du kan kontrollera constructor
egenskap för att bestämma om ett objekt är en array (innehåller ordet "Array"):
exempel
function isArray(myArray) { return myArray.constructor.toString().indexOf("Array") > -1; {}
Eller ännu enklare, du kan kontrollera om objektet är en arrayfunktion:
exempel
function isArray(myArray) { return myArray.constructor === Array; {}
Du kan kontrollera constructor
egenskap för att bestämma om ett objekt är en datum (innehåller ordet "Date"):
exempel
function isDate(myDate) { return myDate.constructor.toString().indexOf("Date") > -1; {}
Eller ännu enklare, du kan kontrollera om objektet är en datumfunktion:
exempel
function isDate(myDate) { return myDate.constructor === Date; {}
JavaScript Typkonvertering
JavaScript-variabler kan konverteras till nya variabler och ett annat datatyp:
- Genom att använda JavaScript-funktioner
- Genom att använda JavaScript självtAutomatisktKonvertering
Konvertera numeriska värden till strängar
Global metod String()
Kan konvertera tal till sträng.
Detta kan användas för alla typer av nummer, texter, variabler eller uttryck:
exempel
String(x) // Returnerar sträng från numerisk variabel x String(123) // Returnerar sträng från numerisk text 123 String(100 + 23) // Returnerar sträng från numeriskt värde i uttryck
nummermetoder toString()
Likaledes.
exempel
x.toString() (123).toString() (100 + 23).toString()
inummermetoderI detta kapitel kommer du att lära dig fler metoder som kan användas för att konvertera numeriska värden till strängar:
metod | beskrivning |
---|---|
toExponential() | Returnar en sträng, avrundar ett tal och skriver med exponentiell notation. |
toFixed() | Returnar en sträng, avrundar ett tal och skriver med ett specifikt antal decimaler. |
toPrecision() | Returnar en sträng, skriver ett tal med specifik längd. |
konvertera boolean till sträng
Global metod String()
kan konvertera booleans till strängar.
String(false) // returnerar "false" String(true) // returnerar "true"
booleanmetoder toString()
Likaledes.
false.toString() // returnerar "false" true.toString() // returnerar "true"
konvertera datum till sträng
Global metod String()
kan konvertera datum till sträng.
String(Date())
Datummetoder toString()
Likaledes.
exempel
Date().toString()
iDatummetoderi detta kapitel kan du hitta fler metoder som kan användas för att konvertera datum till strängar:
metod | beskrivning |
---|---|
getDate() | få dag som nummer (1-31) |
getDay() | eller vecka som nummer (0-6) |
getFullYear() | få fyrsiffrigt år (yyyy) |
getHours() | få timme (0-23) |
getMilliseconds() | få millisekunder (0-999) |
getMinutes() | få minuter (0-59) |
getMonth() | få månad (0-11) |
getSeconds() | få sekunder (0-59) |
getTime() | få tid (millisekunder sedan 1 januari 1970) |
konvertera sträng till numerisk värde
Global metod Number()
kan konvertera strängar till nummer.
strängar som innehåller siffror (t.ex. "3.14") konverteras till nummer (t.ex. 3.14).
en tom sträng konverteras till 0。
andra strängar kommer att konverteras till NaN
(inte ett nummer,inte ett tal).
Number("3.14") // returnerar 3.14 Number(" ") // returnerar 0 Number("") // returnerar 0 Number("99 88") // returnerar NaN
inummermetoderi detta kapitel kommer du att hitta fler metoder som kan användas för att konvertera strängar till nummer:
metod | beskrivning |
---|---|
parseFloat() | analyserar strängen och returnerar ett flyttal. |
parseInt() | analyserar strängen och returnerar ett heltal. |
enäringsoperator
enäring +
operatorkan användas för att konvertera variabler till nummer:
exempel
var y = "5"; // y är en sträng var x = + y; // x är ett nummer
om variabeln inte kan konverteras, blir den fortfarande ett nummer, men värdet är NaN
(inte ett nummer):
exempel
var y = "Bill"; // y är en sträng var x = + y; // x är ett nummer (NaN)
Konvertera boolean till ett nummer
Global metod Number()
Man kan också konvertera boolean till ett nummer.
Number(false) // returnerar 0 Number(true) // returnerar 1
Konvertera datum till ett nummer
Global metod Number()
kan användas för att konvertera datum till ett nummer.
d = new Date(); Number(d)
Datummetoder getTime()
Likaledes.
d = new Date(); d.getTime()
Automatisk typkonvertering
Om JavaScript försöker manipulera en "felaktig" datatyp, försöker den konvertera värdet till en "korrekt" typ.
Resultaten är inte alltid som du förväntar dig:
5 + null // returnerar 5 eftersom null konverteras till 0 "5" + null // returnerar "5null" eftersom null konverteras till "null" "5" + 2 // returnerar 52 eftersom 2 konverteras till "2" "5" - 2 // returnerar 3 eftersom "5" konverteras till 5 "5" * "2" // returnerar 10 eftersom "5" och "2" konverteras till 5 och 2
automatisk strängkonvertering
JavaScript anropar automatiskt variabelns toString()
Funktion, när du försöker "utdata" ett objekt eller en variabel:
document.getElementById("demo").innerHTML = myVar; // Om myVar = {name:"Fjohn"} // toString konverterar till "[object Object]" // Om myVar = [1,2,3,4] // toString konverterar till "1,2,3,4" // Om myVar = new Date() // toString konverterar till ""
Talen och boolean kommer också att konverteras, men det är inte särskilt tydligt:
// Om myVar = 123 // toString konverterar till "123" // Om myVar = true // toString konverterar till "true" // Om myVar = false // toString konverterar till "false"
JavaScript-typkonverteringstabell
Tabellen nedan visar resultaten av att konvertera olika JavaScript-värden till nummer, sträng och boolean:
Originalvärde | Konvertera till nummer | Konvertera till sträng | Konvertera till logiskt | Prova det här |
---|---|---|---|---|
false | 0 | "false" | false | Prova det här |
true | 1 | "true" | true | Prova det här |
0 | 0 | "0" | false | Prova det här |
1 | 1 | "1" | true | Prova det här |
"0" | 0 | "0" | true |
Prova det här |
"000" | 0 | "000" | true |
Prova det här |
"1" | 1 | "1" | true | Prova det här |
NaN | NaN | "NaN" | false | Prova det här |
Infinity | Infinity | "Infinity" | true | Prova det här |
-Infinity | -Infinity | "-Infinity" | true | Prova det här |
"" | 0 |
"" | false |
Prova det här |
"20" | 20 | "20" | true | Prova det här |
"tjugo" | NaN | "tjugo" | true | Prova det här |
[ ] | 0 |
"" | true | Prova det här |
[20] | 20 |
"20" | true | Prova det här |
[10,20] | NaN | "10,20" | true | Prova det här |
["tjugo"] | NaN | "tjugo" | true | Prova det här |
["tjugo","tjugo"] | NaN | "tjugo,tjugo" | true | Prova det här |
function(){} | NaN | "function(){}" | true | Prova det här |
{ } | NaN | "[object Object]" | true | Prova det här |
null | 0 |
"null" | false | Prova det här |
undefined | NaN | "undefined" | false | Prova det här |
Värden inom citationstecken indikerar strängvärden.
Röda värdenIndikerar (vissa) programmerare kanske inte vill ha värden.
- Föregående sida JS-typeof
- Nästa sida JS-dekonstruktion