JavaScript-tyyppien muunnos

Number() Muunna lukuksi,String() Muunna merkkijonoa,Boolean() Muunna totuusarvo.

JavaScript tietotyyppi

JavaScriptissä on viisi tyyppiä, jotka voivat sisältää arvoja:

  • Merkkijono (string)
  • Luku (number)
  • Totuusarvo (boolean)
  • Objekti (object)
  • Funktio (function)

On kolme objektityyppiä:

  • Objekti (Object)
  • Päivämäärä (Date)
  • Taulukko (Array)

On kaksi tyyppiä, joissa ei voi olla arvoa:

  • null
  • undefined

typeof operaattoria

Voit käyttää typeof Laskin operaattoreita määrittääkseen JavaScript-vektorin tyyppin.

esimerkki

typeof "Bill"                 // Palauttaa "string"
typeof 3.14                   // Palauttaa "number"
typeof NaN                    // Palauttaa "number"
typeof false                  // Returns "boolean"
typeof [1,2,3,4]              // Returns "object"
typeof {name:'Bill', age:62}  // Returns "object"
typeof new Date()             // Returns "object"
typeof function () {}         // Returns "function"
typeof myCar                  // Returns "undefined" *
typeof null                   // Returns "object"

Kokeile itse

请注意:

  • NaN 的数据类型是数值
  • 数组的数据类型是对象
  • 日期的数据类型是对象
  • null 的数据类型是对象
  • 未定义变量的数据类型是 undefined
  • 尚未赋值的变量的数据类型也是 undefined

您无法使用 typeof 去判断 JavaScript 对象是否是数组(或日期)。

typeof 的数据类型

typeof 运算符不是变量。它属于运算符。运算符(比如 + - * /)没有数据类型。

但是,typeof 始终会返回字符串(包含运算数的类型)。

constructor ominaisuus

constructor 属性返回所有 JavaScript 变量的构造器函数。

esimerkki

"Bill".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:'Bill', age:62}.constructor  // Returns "function Object()  { [native code] }"
new Date().constructor             // Palauttaa "function Date()    { [native code] }"
function () {}.constructor         // Palauttaa "function Function(){ [native code] }"

Kokeile itse

Voit tarkistaa constructor ominaisuus määrittääksesi, onko tietty objekti taulukko (s sisältää sanan "Array"):

esimerkki

function isArray(myArray) {
    return myArray.constructor.toString().indexOf("Array") > -1;
}

Kokeile itse

Tai yksinkertaisemmin, voit tarkistaa, onko objekti taulukko toiminto:

esimerkki

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

Kokeile itse

Voit tarkistaa constructor ominaisuus määrittääksesi, onko tietty objekti päivämäärä (s sisältää sanan "Date"):

esimerkki

function isDate(myDate) {
    return myDate.constructor.toString().indexOf("Date") > -1;
}

Kokeile itse

Tai yksinkertaisemmin, voit tarkistaa, onko objekti päivämäärätoiminto:

esimerkki

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

Kokeile itse

JavaScript-tyyppien muunnos

JavaScript-muuttujat voidaan muuntaa uudeksi muuttujaksi ja toiseksi datatyypiksi:

  • Käyttämällä JavaScript-funktiota
  • Käyttämällä JavaScriptiä itseäänAutomaattisestiMuunnos

Muunna arvot merkkijonoksi

Yleinen metodi String() Voii muuntaa luvut merkkijonoksi.

Tämä voidaan käyttää mihin tahansa numeron, tekstin, muuttujan tai lausekkeen tyyppiin:

esimerkki

String(x)         // Palauttaa merkkijonon arvosta x
String(123)       // Palauttaa merkkijonon 123
String(100 + 23)  // Palauttaa arvon merkkijonona

Kokeile itse

Numerometodit toString() Samaa taustaa.

esimerkki

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

Kokeile itse

NumerometoditTässä luvussa opit lisää menetelmistä, joita voidaan käyttää arvojen muuntamiseen merkkijonoksi:

menetelmä kuvaus
toExponential() Palauttaa merkkijonon, joka pyöristää luvun ja kirjoittaa sen eksponenttiamuodossa.
toFixed() Palauttaa merkkijonon, joka pyöristää luvun ja kirjoittaa sen määritetyllä desimaalimäärällä.
toPrecision() Palauttaa merkkijonon, joka kirjoittaa luvun määritetyllä pituudella.

Muunna boolean merkkijonoksi

Yleinen metodi String() Voit muuntaa booleanin merkkijonoksi.

String(false)        // palauttaa "false"
String(true)         // palauttaa "true"

布尔方法 toString() Samaa taustaa.

false.toString()     // palauttaa "false"
true.toString()      // palauttaa "true"

Muunna päivämäärä merkkijonoksi

Yleinen metodi String() Voit muuntaa päivämäärän merkkijonoksi.

String(Date())      

Päivämäärämenetelmät toString() Samaa taustaa.

esimerkki

Date().toString()   

PäivämäärämenetelmätTässä luvussa löydät lisää menetelmiä, joita voit käyttää muuntaaksesi päivämäärän merkkijonoksi:

menetelmä kuvaus
getDate() Saa päivämäärän arvon (1-31)
getDay() tai viikon arvolla (0-6)
getFullYear() Saa neljävuotisen vuoden (yyyy)
getHours() Saa tunnin (0-23)
getMilliseconds() Saa millisekuntien määrän (0-999)
getMinutes() Saa minuuttien määrän (0-59)
getMonth() Saa kuukauden (0-11)
getSeconds() Saa sekuntien määrän (0-59)
getTime() Saa aika (1970. vuoden 1. päivästä lähtien millisekunteina)

Muunna merkkijono arvoksi

Yleinen metodi Number() Voit muuntaa merkkijonon numeroksi.

Numerollaan varustetut merkkijonot(esim. "3.14")muunnetaan numeroksi(esim. 3.14).

tyhjä merkkijono muunnetaan 0:ksi.

Muut merkkijonot muunnetaan NaN(Ei luku,ei numero)。

Number("3.14")    // palauttaa 3.14
Number(" ")       // palauttaa 0
Number("")        // palauttaa 0
Number("99 88")   // palauttaa NaN

NumerometoditTässä luvussa löydät lisää menetelmiä, joita voit käyttää muuntaaksesi merkkijonon numeroksi:

menetelmä kuvaus
parseFloat() parsi merkkijonon ja palauttaa liukuluvun.
parseInt() parsi merkkijonon ja palauttaa kokonaisluvun.

yksinkertainen + laskin

yksinkertainen + LaskinVoit käyttää näitä muuttujia muuntaaksesi muuttujia numeroksi:

esimerkki

var y = "5";      // y on merkkijono
var x = + y;      // x on numero

Kokeile itse

Jos muunnos epäonnistuu, muuttuja säilyy edelleen luvuna, mutta arvo NaN(Ei luku):

esimerkki

var y = "Bill";   // y on merkkijono
var x = + y;      // x on numero (NaN)

Kokeile itse

Muuntaa totuusarvon arvoksi

Yleinen metodi Number() Voit myös muuntaa totuusarvon numeroksi.

Number(false)     // Palauttaa 0
Number(true)      // Palauttaa 1

Muuntaa päivämäärän numeroksi

Yleinen metodi Number() Käytettävissä päivämäärän muuntamiseen numeroksi.

d = new Date();
Number(d)          

Päivämäärämenetelmät getTime() Samaa taustaa.

d = new Date();
d.getTime()        

Automaattinen tyyppimuuntaminen

Jos JavaScript yrittää käsitellä tyyppivirheen, se yrittää muuntaa arvon "oikeaksi" tyypiksi.

Tulokset eivät aina ole odottamasi:

5 + null    // Palauttaa 5         koska null muunnetaan 0:ksi
"5" + null  // Palauttaa "5null"   koska null muunnetaan "null":ksi
"5" + 2     // Palauttaa 52        koska 2 muunnetaan "2":ksi
"5" - 2     // Palauttaa 3         koska "5" muunnetaan 5:ksi
"5" * "2"   // Palauttaa 10        koska "5" ja "2" muunnetaan 5:ksi ja 2:ksi

Kokeile itse

automaattinen merkkijonon muuntaminen

JavaScript kutsuu automaattisesti muuttujan toString() Funktio, kun yrität "tulostaa" objektin tai muuttujan:

document.getElementById("demo").innerHTML = myVar;
// Jos myVar = {name:"Fjohn"}  // toString muuntaa "[object Object]"
// Jos myVar = [1,2,3,4]       // toString muuntaa "1,2,3,4"
// Jos myVar = new Date()      // toString muuntaa ""

Numerot ja totuusarvot muunnetaan, mutta ei niin selkeästi:

// Jos myVar = 123             // toString muuntaa "123"
// Jos myVar = true            // toString muuntaa "true"
// Jos myVar = false           // toString muuntaa "false"

JavaScript-tyyppimuunnostaulukko

Seuraavassa taulukossa luetellaan, miten eri JavaScript-arvot muunnetaan numeroksi, merkkijonoksi ja booleaniksi:

Alkuperäinen arvo Muunnetaan numeroksi Muunnetaan merkkijonoksi Muunnetaan loogiseksi Kokeile itse
false 0 "false" false Kokeile itse
true 1 "true" true Kokeile itse
0 0 "0" false Kokeile itse
1 1 "1" true Kokeile itse
"0" 0 "0" true Kokeile itse
"000" 0 "000" true Kokeile itse
"1" 1 "1" true Kokeile itse
NaN NaN "NaN" false Kokeile itse
Infinity Infinity "Infinity" true Kokeile itse
-Infinity -Infinity "-Infinity" true Kokeile itse
"" 0 "" false Kokeile itse
"20" 20 "20" true Kokeile itse
"kaksikymmentä" NaN "kaksikymmentä" true Kokeile itse
[ ] 0 "" true Kokeile itse
[20] 20 "20" true Kokeile itse
[10,20] NaN "10,20" true Kokeile itse
["kaksikymmentä"] NaN "kaksikymmentä" true Kokeile itse
["kymmenen","kaksikymmentä"] NaN "kymmenen,kaksikymmentä" true Kokeile itse
function(){} NaN "function(){}" true Kokeile itse
{ } NaN "[object Object]" true Kokeile itse
null 0 "null" false Kokeile itse
undefined NaN "undefined" false Kokeile itse

Lapulaisissa arvot viittaavat merkkijonon arvoon.

Punainen arvoIndikaattori (tai jotkut) ohjelmoijat eivät ehkä halua arvo.