JavaScript Tür Dönüşümü

Number() 转换数值,String() 转换字符串,Boolean() 转换布尔值。

JavaScript Veri Tipleri

JavaScript 中有五种可包含值的数据类型:

  • 字符串(string)
  • 数字(number)
  • 布尔(boolean)
  • 对象(object)
  • 函数(function)

有三种对象类型:

  • 对象(Object)
  • 日期(Date)
  • 数组(Array)

同时有两种不能包含值的数据类型:

  • null
  • undefined

typeof 运算符

您可以使用 typeof 运算符来确定 JavaScript 变量的数据类型。

örnek

typeof "Bill"                 // Dönüş "string"
typeof 3.14                   // Dönüş "number"
typeof NaN                    // Dönüş "number"
typeof false                  // döndürür "boolean"
typeof [1,2,3,4]              // döndürür "object"
typeof {name:'Bill', age:62}  // döndürür "object"
typeof new Date()             // döndürür "object"
typeof function () {}         // döndürür "function"
typeof myCar                  // döndürür "undefined" *
typeof null                   // döndürür "object"

Kişisel olarak deneyin

Lütfen dikkat edin:

  • NaN veri türü sayısaldır
  • dizi veri türü nesnedir
  • tarih veri türü nesnedir
  • null veri türü nesnedir
  • tanımlanmamış değişkenin veri türü undefined
  • tanımlanmamış değişkenin veri türü de undefined

kullanamazsınız typeof JavaScript nesnelerinin dizgi (veya tarih) olup olmadığını belirlemek için kullanılır.

typeof veri türleri

typeof işlevsel operatör değişken değil. Bu, bir operatördür. Operatör (örneğin + - * /)veri türü yoktur.

ancak,typeof her zamandizgi döndürür(işlevsel verinin türü).

constructor özelliği

constructor 所有 JavaScript değişkenlerinin yapılandırıcı fonksiyonlarını döndüren özellik.

örnek

"Bill".constructor                 // döndürür "function String()  { [native code] }"
(3.14).constructor                 // döndürür "function Number()  { [native code] }"
false.constructor                  // döndürür "function Boolean() { [native code] }"
[1,2,3,4].constructor              // döndürür "function Array()   { [native code] }"
{name:'Bill', age:62}.constructor  // döndürür "function Object()  { [native code] }"
new Date().constructor             // "function Date()    { [native code] }" döndürür"
function () {}.constructor         // "function Function(){ [native code] }" döndürür"

Kişisel olarak deneyin

kontrol edebilirsiniz: constructor özniteliklerini kullanarak belirli bir nesnenin dizgi olup olmadığını belirlemek için:

örnek

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

Kişisel olarak deneyin

veya daha basit, nesnenin dizgi fonksiyonlu olup olmadığını kontrol edebilirsiniz:

örnek

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

Kişisel olarak deneyin

kontrol edebilirsiniz: constructor özniteliklerini kullanarak belirli bir nesnenin tarih olup olmadığını belirlemek için:

örnek

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

Kişisel olarak deneyin

veya daha basit, nesnenin tarih fonksiyonlu olup olmadığını kontrol edebilirsiniz:

örnek

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

Kişisel olarak deneyin

JavaScript Tür Dönüşümü

JavaScript değişkenleri, yeni bir değişken ve başka bir veri türüne dönüştürülebilir:

  • JavaScript fonksiyonlarını kullanarak
  • JavaScript kendisi ileOtomatikDönüştürme

Sayısal değerleri dizgeye dönüştürür

Küresel yöntem String() Sayıları dizgeye dönüştürebilir.

Bu, herhangi bir türdeki sayı, metin, değişken veya ifade için kullanılabilir:

örnek

String(x)         // Sayısal değişken x'yi dizgeye dönüştürür
String(123)       // Sayısal metin 123'ü dizgeye dönüştürür
String(100 + 23)  // İfade içindeki sayısal değerleri dizgeye dönüştürür

Kişisel olarak deneyin

sayı yöntemleri toString() Aynı şekilde.

örnek

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

Kişisel olarak deneyin

içindesayı yöntemleriBu bölümde, sayısal değerleri dizgeye dönüştürmek için kullanılabilen daha fazla yöntem öğreneceksiniz:

yöntem tanım
toExponential() Dizgi döndürür, sayıyı yuvarlar ve sayısal ifade yöntemiyle yazdırır.
toFixed() Dizgi döndürür, sayıyı yuvarlar ve belirli ondalık basamaklarla yazdırır.
toPrecision() Dizgi döndürür, sayıyı belirtilen uzunluğa yazdırır.

booleyi dizgeye dönüştür

Küresel yöntem String() booleyi dizgeye dönüştürebilir.

String(false)        // return "false"
String(true)         // return "true"

boole methodları toString() Aynı şekilde.

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

tarihi dizgeye dönüştür

Küresel yöntem String() tarihi dizgeye dönüştürebilir.

String(Date())      

Tarih yöntemleri toString() Aynı şekilde.

örnek

Date().toString()   

içindeTarih yöntemleriBu bölümde, tarihleri dizgeye dönüştürmek için kullanılabilir daha fazla yöntem bulacaksınız:

yöntem tanım
getDate() sayısal olarak(1-31)günü alır
getDay() veya sayısal olarak(0-6)haftayı alır
getFullYear() dört haneli yılı alır(yyyy)
getHours() saati alır(0-23)
getMilliseconds() milisaniyeyi alır(0-999)
getMinutes() dakikayı alır(0-59)
getMonth() ayı alır(0-11)
getSeconds() saniyeyi alır(0-59)
getTime() zamanı alır(1970 yılının 1 Ocak'ından bu yana milisaniye olarak)

dizgeyi sayıya dönüştür

Küresel yöntem Number() dizgeyi sayıya dönüştürebilir.

sayı içeren dizgeler(örneğin "3.14")sayıya(örneğin 3.14'e)dönüştürülür.

boş dizge 0'ya dönüştürülür.

diğer dizgeler NaN(Not a number,不是数字)。

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

içindesayı yöntemleriBu bölümde, dizgeyi sayıya dönüştürmek için kullanılabilir daha fazla yöntem bulacaksınız:

yöntem tanım
parseFloat() dizgeyi çözümleyip ondalık sayı döndürür.
parseInt() dizgeyi çözümleyip tamsayı döndürür.

tekli + işlevi

tekli + işlevdeğişkenleri sayıya dönüştürmek için kullanılabilir:

örnek

var y = "5";      // y 是字符串
var x = + y;      // x 是数字

Kişisel olarak deneyin

değişkeni dönüştüremezseniz, hala sayı olarak kalır, ancak değeri NaN(Not a number):

örnek

var y = "Bill";   // y 是字符串
var x = + y;      // x sayıdır (NaN)

Kişisel olarak deneyin

Booleans'ı sayıya dönüştür

Küresel yöntem Number() Booleans'ı da numaraya dönüştürebilir.

Number(false)     // 0 döner
Number(true)      // 1 döner

Tarihleri sayıya dönüştür

Küresel yöntem Number() Tarihleri sayıya dönüştürmek için kullanılabilir.

d = new Date();
Number(d)          

Tarih yöntemleri getTime() Aynı şekilde.

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

Otomatik tür dönüşümü

JavaScript, bir "hatalı" veri türünü işlemeye çalışırsa, bu değeri "doğru" türüne dönüştirmeye çalışır.

Sonuç her zaman beklediğiniz gibi olmayabilir:

5 + null    // 5 döner         çünkü null 0'a çevrildi
"5" + null  // "5null" döner   çünkü null "null"'e çevrildi
"5" + 2     // 52 döner        çünkü 2 "2"'ye çevrildi
"5" - 2     // 3 döner         çünkü "5" 5'e çevrildi
"5" * "2"   // 10 döner        çünkü "5" ve "2" 5 ve 2'ye çevrildi

Kişisel olarak deneyin

otomatik string dönüşümü

JavaScript, değişkenlerin toString() Bu fonksiyon, sizi "çıkartmaya" çalışan nesneler veya değişkenler zamanında çalıştırır:

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

Sayı ve boolean da çevrilecektir, ancak belirgin olmayacaktır:

// Eğer myVar = 123             // toString çevirisi "123"
// Eğer myVar = true            // toString çevirisi "true"
// Eğer myVar = false           // toString çevirisi "false"

JavaScript Tür Çevirme Tablosu

Aşağıdaki tabloda farklı JavaScript değerlerinin sayısal, dizgi ve boolean olarak dönüştürülme sonuçları listelenmiştir:

Orijinal Değer Sayısal olarak dönüştür Dizgi olarak dönüştür Lojik olarak dönüştür Deneyin
false 0 "false" false Deneyin
true 1 "true" true Deneyin
0 0 "0" false Deneyin
1 1 "1" true Deneyin
"0" 0 "0" true Deneyin
"000" 0 "000" true Deneyin
"1" 1 "1" true Deneyin
NaN NaN "NaN" false Deneyin
Infinity Infinity "Infinity" true Deneyin
-Infinity -Infinity "-Infinity" true Deneyin
"" 0 "" false Deneyin
"20" 20 "20" true Deneyin
"twenty" NaN "twenty" true Deneyin
[ ] 0 "" true Deneyin
[20] 20 "20" true Deneyin
[10,20] NaN "10,20" true Deneyin
["twenty"] NaN "twenty" true Deneyin
["on","twenty"] NaN "on,twenty" true Deneyin
function(){} NaN "function(){}" true Deneyin
{ } NaN "[object Object]" true Deneyin
null 0 "null" false Deneyin
undefined NaN "undefined" false Deneyin

Çift tırnak içindeki değerler dizgi değerlerini belirtir.

Kırmızı DeğerBazı programcıların istemediği değerleri belirtir.