JavaScript Type Conversion

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"

Prøv det selv

请注意:

  • 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] }"

Prøv det selv

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;
}

Prøv det selv

Eller endnu enklere, du kan kontrollere, om objektet er en arrayfunktion:

eksempel

function isArray(myArray) {
    return myArray.constructor === Array;
}

Prøv det selv

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;
}

Prøv det selv

Eller endnu enklere, du kan kontrollere, om objektet er en datafunktion:

eksempel

function isDate(myDate) {
    return myDate.constructor === Date;
}

Prøv det selv

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

Prøv det selv

talmetoder toString() På samme måde.

eksempel

x.toString()
(123).toString()
(100 + 23).toString()

Prøv det selv

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

Prøv det selv

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)

Prøv det selv

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

Prøv det selv

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.