JavaScript Type Conversion
- Previous page JS typeof
- Next page JS destructuring
Number()
Convert numbers,String()
Convert strings,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.
eksempel
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 变量的构造器函数。
eksempel
function String() { [native code] } function Number() { [native code] } function Boolean() { [native code] } function Array() { [native code] } function Object() { [native code] } new Date().constructor // Returnerer "function Date() { [native code] }" function () {}.constructor // Returnerer "function Function(){ [native code] }"
Du kan kontrollere constructor
egenskab for at bestemme, om et objekt er en array (indeholder ordet "Array"):
eksempel
function isArray(myArray) { return myArray.constructor.toString().indexOf("Array") > -1; }
Eller endnu enklere, du kan kontrollere, om objektet er en arrayfunktion:
eksempel
function isArray(myArray) { return myArray.constructor === Array; }
Du kan kontrollere constructor
egenskab for at bestemme, om et objekt er en dato (indeholder ordet "Date"):
eksempel
function isDate(myDate) { return myDate.constructor.toString().indexOf("Date") > -1; }
Eller endnu enklere, du kan kontrollere, om objektet er en datafunktion:
eksempel
function isDate(myDate) { return myDate.constructor === Date; }
JavaScript Type Conversion
JavaScript-variabler kan konverteres til nye variabler og en anden datatype:
- Ved at bruge JavaScript-funktioner
- Gennem JavaScript selvAutomatiskKonvertering
Konverter værdier til streng
Global metode String()
Kan konvertere tal til streng.
Det kan bruges til alle typer af tal, tekst, variabler eller udtryk:
eksempel
String(x) // Returnerer streng fra numerisk variabel x String(123) // Returnerer streng fra numerisk tekst 123 String(100 + 23) // Returnerer streng fra værdi i udtryk
talmetoder toString()
På samme måde.
eksempel
x.toString() (123).toString() (100 + 23).toString()
italmetoderI dette kapitel vil du lære flere metoder, der kan bruges til at konvertere tal til streng:
metode | beskrivelse |
---|---|
toExponential() | Returner en streng, der afrunder tallet og skriver det med eksponentiel notation. |
toFixed() | Returner en streng, der afrunder tallet og skriver det med brøkdele af en bestemt længde. |
toPrecision() | Returner en streng, der skriver tal med den angivne længde. |
konvertere bolig til streng
Global metode String()
kan konvertere boliger til strenger.
String(false) // returnerer "false" String(true) // returnerer "true"
bولmetoder toString()
På samme måde.
false.toString() // returnerer "false" true.toString() // returnerer "true"
konvertere dato til streng
Global metode String()
kan konvertere datoer til strenger.
String(Date())
Datemetoder toString()
På samme måde.
eksempel
Date().toString()
iDatemetoderi dette kapitel kan du finde flere metoder til at konvertere datoer til strenger:
metode | beskrivelse |
---|---|
getDate() | få dag som tal (1-31) |
getDay() | eller uge (0-6) som tal |
getFullYear() | få firecifret år (yyyy) |
getHours() | få time (0-23) |
getMilliseconds() | få millisekunder (0-999) |
getMinutes() | få minutter (0-59) |
getMonth() | få måned (0-11) |
getSeconds() | få sekunder (0-59) |
getTime() | få tid (millisekunder siden 1. januar 1970) |
konvertere streng til numerisk værdi
Global metode Number()
kan konvertere strenger til tal
strenger, der indeholder tal (f.eks. "3.14"), konverteres til tal (f.eks. 3.14).
en tom streng konverteres til 0。
andre strenger konverteres til NaN
(Ikke et tal,ikke et tal)。
Number("3.14") // returnerer 3.14 Number(" ") // returnerer 0 Number("") // returnerer 0 Number("99 88") // returnerer NaN
italmetoderi dette kapitel vil du finde flere metoder til at konvertere strenger til tal:
metode | beskrivelse |
---|---|
parseFloat() | fortolke strengen og returnere et flydende tal. |
parseInt() | fortolke strengen og returnere et heltal. |
enævig + operator
enævig +
operatorkan bruges til at konvertere variabler til tal:
eksempel
var y = "5"; // y er en streng var x = + y; // x er et tal
Hvis variablen ikke kan konverteres, vil den stadig blive et tal, men værdien vil være NaN
(Ikke et tal):
eksempel
var y = "Bill"; // y er en streng var x = + y; // x er et tal (NaN)
Konverterer boolse værdier til numeriske
Global metode Number()
Man kan også konvertere boolske værdier til tal.
Number(false) // returnerer 0 Number(true) // returnerer 1
Konverterer dato til et tal
Global metode Number()
Kan bruges til at konvertere en dato til et tal.
d = new Date(); Number(d)
Datemetoder getTime()
På samme måde.
d = new Date(); d.getTime()
Automatisk typekonvertering
Hvis JavaScript forsøger at operere med en "forkert" datatyp, forsøger det at konvertere værdien til en "korrekt" type.
Resultaterne er ikke altid som du forventer:
5 + null // returnerer 5 fordi null konverteres til 0 "5" + null // returnerer "5null" fordi null konverteres til "null" "5" + 2 // returnerer 52 fordi 2 konverteres til "2" "5" - 2 // returnerer 3 fordi "5" konverteres til 5 "5" * "2" // returnerer 10 fordi "5" og "2" konverteres til 5 og 2
automatisk stringkonvertering
JavaScript kalder automatisk variabelens toString()
Funktion, når du forsøger at "udskrive" et objekt eller en variabel:
document.getElementById("demo").innerHTML = myVar; // Hvis myVar = {name:"Fjohn"} // toString konverterer til "[object Object]" // Hvis myVar = [1,2,3,4] // toString konverterer til "1,2,3,4" // Hvis myVar = new Date() // toString konverterer til ""
Tal og booleanske værdier bliver også konverteret, men det er ikke så tydeligt:
// Hvis myVar = 123 // toString konverterer til "123" // Hvis myVar = true // toString konverterer til "true" // Hvis myVar = false // toString konverterer til "false"
JavaScript type conversion table
The following table lists the results of converting different JavaScript values to numbers, strings, and booleans:
Original value | Convert to number | Convert to string | Convert to logic | Try it |
---|---|---|---|---|
false | 0 | "false" | false | Try it |
true | 1 | "true" | true | Try it |
0 | 0 | "0" | false | Try it |
1 | 1 | "1" | true | Try it |
"0" | 0 | "0" | true |
Try it |
"000" | 0 | "000" | true |
Try it |
"1" | 1 | "1" | true | Try it |
NaN | NaN | "NaN" | false | Try it |
Infinity | Infinity | "Infinity" | true | Try it |
-Infinity | -Infinity | "-Infinity" | true | Try it |
"" | 0 |
"" | false |
Try it |
"20" | 20 | "20" | true | Try it |
"twenty" | NaN | "twenty" | true | Try it |
[ ] | 0 |
"" | true | Try it |
[20] | 20 |
"20" | true | Try it |
[10,20] | NaN | "10,20" | true | Try it |
["twenty"] | NaN | "twenty" | true | Try it |
["ten","twenty"] | NaN | "ten,twenty" | true | Try it |
function(){} | NaN | "function(){}" | true | Try it |
{} | NaN | "[object Object]" | true | Try it |
null | 0 |
"null" | false | Try it |
undefined | NaN | "undefined" | false | Try it |
Values in quotes indicate string values.
Red valuesIndicates values that (some) programmers may not want.
- Previous page JS typeof
- Next page JS destructuring