Penukaran jenis JavaScript

Pembolehubah JavaScript ditaip secara longgar, yang boleh menyimpan sebarang jenis data yang disokong oleh Javascript, dan jenis pembolehubahnya boleh ditukar secara dinamik semasa masa jalan. Sila lihat contoh:


var n = 10;

n = "hello CSSer !";

n = {};

Dalam contoh di atas, mula-mula isytiharkan pembolehubah n dan mulakan nilainya kepada 10 (jenis integer) , kemudian Berikan rentetan "hello CSSer!" kepada n, kemudian tetapkan objek kepadanya, dan akhirnya jenis n ialah jenis objek. Ia boleh dilihat bahawa jenis pembolehubah n adalah dinamik Dalam pengaturcaraan sebenar, kami mengesyorkan untuk tidak menukar jenis pembolehubah dengan kerap, kerana ini tidak baik untuk debugging.


Jenis Data JavaScript

Terdapat 5 jenis data berbeza dalam JavaScript:

rentetan

nombor

boolean

objek

fungsi

3 jenis objek:

Objek

Tarikh

Array

2 jenis data yang tidak mengandungi sebarang nilai:

null

undefined

typeof operator

Anda boleh menggunakan typeof operator untuk menyemak jenis data pembolehubah JavaScript.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = 
    typeof "tom" + "<br>" +
    typeof 3.14 + "<br>" +
    typeof NaN + "<br>" +
    typeof false + "<br>" +
    typeof [1,2,3,4] + "<br>" +
    typeof {name:'john', age:34} + "<br>" +
    typeof new Date() + "<br>" +
    typeof function () {} + "<br>" +
    typeof myCar + "<br>" +
    typeof null;
</script>
</body>
</html>

Sila ambil perhatian: Jenis data

NaN ialah nombor

Jenis data tatasusunan (Array) ialah objek

Jenis data tarikh (Tarikh) Jenis data objek

null ialah objek

Jenis data pembolehubah tidak ditentukan tidak ditentukan

atribut pembina

atribut pembina mengembalikan pembina semua fungsi pembolehubah JavaScript.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = 
    "john".constructor + "<br>" +
    (3.14).constructor + "<br>" +
    false.constructor + "<br>" +
    [1,2,3,4].constructor + "<br>" +
    {name:'john', age:34}.constructor + "<br>" +
    new Date().constructor + "<br>" +
    function () {}.constructor;
</script>
</body>
</html>



Penukaran eksplisit

Dengan melakukan penukaran jenis secara manual, Javascript menyediakan Transformasi berikut fungsi:

Tukar kepada jenis angka: Number(campuran), parseInt(rentetan,radix), parseFloat(rentetan)
Tukar kepada jenis rentetan: toString(radix), Rentetan(campuran)
Tukar kepada jenis Boolean: Boolean(campuran)

1. Fungsi Nombor(campuran) boleh menukar sebarang jenis campuran parameter kepada jenis berangka

Peraturannya ialah:

Jika nilai boolean, benar dan palsu ditukar kepada 1 dan 0 masing-masing

Jika nilai angka, kembalikan dirinya.

Jika ia batal, kembalikan 0.

Jika ia tidak ditentukan, kembalikan NaN.

Jika ia adalah rentetan, ikut peraturan berikut:

1) Jika rentetan hanya mengandungi nombor, tukarkannya kepada perpuluhan (abaikan pendahuluan 0)

2) Jika rentetan mengandungi format titik terapung yang sah, tukarkannya kepada nilai titik terapung (abaikan pendahuluan 0)

3) Jika ia rentetan kosong, tukarkannya kepada 0

4) Jika rentetan mengandungi format selain daripada di atas, tukarkannya kepada NaN

Jika ia adalah objek, panggil kaedah valueOf() objek, dan kemudian tukar nilai yang dikembalikan mengikut peraturan sebelumnya. Jika hasil penukaran ialah NaN, panggil kaedah toString() objek dan tukar nilai rentetan yang dikembalikan semula mengikut peraturan sebelumnya.

Nombor("3.14") // Kembali 3.14
Nombor(" ") // Kembali 0
Nombor("") // Kembali 0
Nombor("99 88") // Kembalikan NaN


2. fungsi parseInt(rentetan, radix), tukar rentetan Tukar kepada nilai berangka jenis integer. Ia juga mempunyai peraturan tertentu:


Abaikan ruang di hadapan rentetan sehingga aksara bukan kosong pertama ditemui

Jika yang pertama Jika aksara bukan simbol angka atau tanda negatif, NaN dikembalikan

Jika aksara pertama ialah nombor, penghuraian diteruskan sehingga rentetan dihuraikan atau simbol bukan angka ditemui

Jika di atas Jika hasil analisis langkah bermula dengan 0, ia akan dihuraikan sebagai oktal; jika ia bermula dengan 0x, ia akan dihuraikan sebagai heksadesimal

Jika parameter radix ditentukan, radix akan digunakan sebagai asas. Parse

3. Fungsi parseFloat(string) menukar rentetan kepada nilai jenis titik terapung

Peraturannya pada asasnya adalah sama seperti parseInt , tetapi terdapat beberapa perbezaan: simbol titik perpuluhan pertama dalam rentetan adalah sah, dan parseFloat mengabaikan semua 0s pendahuluan Jika rentetan mengandungi nombor yang boleh dihuraikan sebagai integer, nilai integer dikembalikan bukannya nilai titik terapung.

kaedah toString(radix). Semua jenis nilai kecuali undefined dan null mempunyai kaedah toString(), yang mengembalikan perwakilan rentetan objek

Objek Operasi

Array Tukar elemen Array kepada rentetan. Rentetan yang terhasil dipisahkan koma dan digabungkan.

Boolean Jika nilai Boolean adalah benar, kembalikan "true". Jika tidak, kembalikan "palsu".

Tarikh Mengembalikan perwakilan teks tarikh.

Ralat Mengembalikan rentetan yang mengandungi maklumat ralat yang berkaitan.

Fungsi mengembalikan rentetan dalam format berikut, dengan nama fungsi ialah nama fungsi kaedah toString yang dipanggil:

function functionname( ) { [kod asli] }

Nombor Mengembalikan perwakilan teks nombor.

String Mengembalikan nilai objek String.

Lalai mengembalikan "[nama objek]", dengan nama objek ialah nama jenis objek.

5. Fungsi rentetan(campuran), tukar sebarang jenis nilai kepada rentetan, peraturannya ialah:

Jika terdapat kaedah toString(), panggil kaedah (tanpa lulus parameter radix) dan kembalikan hasilnya

Jika ia batal, kembalikan "null"

Jika ia tidak ditentukan, mengembalikan "undefined"

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>
<p id="demo"></p>
<script>
var x = 55;
document.getElementById("demo").innerHTML =
    String(x) + "<br>" +
    String(13.3) + "<br>" +
    String(100.99 + 23);
</script>
</body>
</html>

6. Fungsi Boolean (campuran), menukar sebarang jenis nilai kepada Nilai Boolean.

Nilai berikut akan ditukar kepada palsu: false, "", 0, NaN, null, undefined dan sebarang nilai lain akan ditukar kepada benar.


Contoh:

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>php中文网(php.cn)</title> 
    <script type="text/javascript">
var i="123abc";
    i=parseInt(i);//字符串转整形
    alert(i+","+typeof(i));//输出:123,number
    i="12.3abc";
    i=parseFloat(i);//字符串转浮点型
    alert(i+","+typeof(i));//输出:12.3,number(可见不管是int还是float都是number类型)
    i="a123abc";
    i=parseInt(i);//字符串转整形
    alert(i+","+typeof(i));//输出:NaN,number (由于转换失败,所以提示“不是一个数字,Not a Number”)
    var num=document.getElementById("num").value;
    function showMsg(num)
    {
        for(var i=0;i<num;i++)
        {
            document.write("你好,JavaScript!<br/>");
        }
    }
</script>
</head>
<body>
</body>
</html>




Unary operator +

Operator + boleh digunakan untuk menukar pembolehubah kepada nombor :

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>
<button onclick="myFunction()">点击</button>
<p id="demo"></p>
<script>
function myFunction() {
    var y = "5";
    var x = + y;
    document.getElementById("demo").innerHTML =
typeof y + "<br>" + typeof x;
}
</script>
</body>
</html>


Meneruskan pembelajaran
||
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php.cn</title> </head> <body> <p id="demo"></p> <script> var x = 55; document.getElementById("demo").innerHTML = String(x) + "<br>" + String(13.3) + "<br>" + String(100.99 + 23); </script> </body> </html>