JavaScript Typkonvertering

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"

Prova själv

请注意:

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

Prova själv

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

Prova själv

Eller ännu enklare, du kan kontrollera om objektet är en arrayfunktion:

exempel

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

Prova själv

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

Prova själv

Eller ännu enklare, du kan kontrollera om objektet är en datumfunktion:

exempel

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

Prova själv

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

Prova själv

nummermetoder toString() Likaledes.

exempel

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

Prova själv

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

Prova själv

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)

Prova själv

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

Prova själv

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.