Penukaran jenis JavaScript

Number() menukar kepada nombor, String() menukar kepada rentetan dan Boolean() menukar kepada nilai Boolean.


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

  • tidak ditentukan


jenis operator

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

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>PHP中文网(php.cn)</title>
</head>
<body>
<p> typeof 操作符返回变量、对象、函数、表达式的类型。</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = 
    typeof "john" + "<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>

Jalankan program dan cuba


Sila ambil perhatian:

  • Jenis data NaN ialah nombor

  • Jenis data tatasusunan (Array) ialah objek

  • Jenis data tarikh (Tarikh) ialah objek

  • jenis data null ialah objek

  • Jenis data pembolehubah yang tidak ditentukan adalah tidak ditentukan

Jika objek ialah Array JavaScript atau Tarikh JavaScript, kita tidak boleh menilai mereka melalui Typeof Type, kerana mereka semua mengembalikan Object. Atribut pembina mengembalikan pembina semua pembolehubah JavaScript.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>PHP中文网(php.cn)</title>
</head>
<body>
<p> constructor 属性返回变量或对象的构造函数。</p>
<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>

Jalankan atur cara dan cuba

Anda boleh menggunakan atribut pembina untuk menyemak sama ada objek itu tatasusunan (mengandungi rentetan "Array"):

Contoh

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>PHP中文网(php.cn)</title>
</head>
<body>
<p>判断是否为数组。</p>
<p id="demo"></p>
<script>
var fruits = ["Banana", "Orange", "Apple", "Mango"];
document.getElementById("demo").innerHTML = isArray(fruits);
function isArray(myArray) {
    return myArray.constructor.toString().indexOf("Array") > -1;
}
</script>
</body>
</html>

Jalankan atur cara dan cuba

Anda boleh menggunakan atribut pembina untuk melihat sama ada objek itu tarikh (mengandungi rentetan "Tarikh") :

Instance

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>PHP中文网(php.cn)</title>
</head>
<body>
<p>判断是否为日期。</p>
<p id="demo"></p>
<script>
var myDate = new Date();
document.getElementById("demo").innerHTML = isDate(myDate);
function isDate(myDate) {
    return myDate.constructor.toString().indexOf("Date") > -1;
}
</script>
</body>
</html>

Jalankan program untuk mencubanya

Penukaran jenis JavaScript

Pembolehubah JavaScript boleh ditukar kepada pembolehubah baharu atau jenis data lain:


oleh menggunakan fungsi JavaScript Penukaran automatik melalui JavaScript itu sendiri

  • Tukar nombor kepada rentetan

  • Kaedah global String() boleh menukar nombor Tukar kepada rentetan.

    Kaedah ini boleh digunakan untuk sebarang jenis nombor, huruf, pembolehubah, ungkapan:

    Instance

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>PHP中文网(php.cn)</title>
    </head>
    <body>
    <p> String() 方法可以将数字转换为字符串。</p>
    <p id="demo"></p>
    <script>
        var x = 123;
        document.getElementById("demo").innerHTML =
                String(x) + "<br>" +
                String(123) + "<br>" +
                String(100 + 23);
    </script>
    </body>
    </html>

    Jalankan program untuk cubalah


    Kaedah nombor toString() juga mempunyai kesan yang sama.

    Contoh

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>PHP中文网(php.cn)</title>
    </head>
    <body>
    <p>toString() 方法将数字转换为字符串。</p>
    <p id="demo"></p>
    <script>
        var x = 123;
        document.getElementById("demo").innerHTML =
                x.toString() + "<br>" +
                (123).toString() + "<br>" +
                (100 + 23).toString();
    </script>
    </body>
    </html>

    Jalankan atur cara dan cuba


    Cara menukar nombor kepada rentetan:

    方法描述
    toExponential()把对象的值转换为指数计数法。
    toFixed()把数字转换为字符串,结果的小数点后有指定位数的数字。
    toPrecision()把数字格式化为指定的长度。

    Tukar nilai Boolean kepada rentetan

    Kaedah global String() boleh menukar nilai Boolean kepada rentetan.

    String(false) // Mengembalikan "false"
    String(true) // Mengembalikan "true"

    Kaedah Boolean toString() juga mempunyai yang sama kesan .

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


    Tukar tarikh kepada String

    Kaedah global String() boleh menukar tarikh kepada rentetan.

    String(Date()) // Kembali Kha 17 Jul 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)

    Kaedah tarikh keString( ) mempunyai kesan yang sama.

    Date().toString() // Kembali Kha 17 Jul 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)

    Tarikh ditukar kepada Fungsi rentetan:

    方法描述
    getDate()从 Date 对象返回一个月中的某一天 (1 ~ 31)。
    getDay()从 Date 对象返回一周中的某一天 (0 ~ 6)。
    getFullYear()从 Date 对象以四位数字返回年份。
    getHours()返回 Date 对象的小时 (0 ~ 23)。
    getMilliseconds()返回 Date 对象的毫秒(0 ~ 999)。
    getMinutes()返回 Date 对象的分钟 (0 ~ 59)。
    getMonth()从 Date 对象返回月份 (0 ~ 11)。
    getSeconds()返回 Date 对象的秒数 (0 ~ 59)。
    getTime()返回 1970 年 1 月 1 日至今的毫秒数。

    Tukar rentetan kepada nombor

    Kaedah global Number() boleh menukar rentetan kepada nombor.

    Rentetan yang mengandungi nombor (seperti "3.14") ditukar kepada nombor (seperti 3.14).

    Rentetan kosong ditukar kepada 0.

    Rentetan lain akan ditukar kepada NaN (bukan nombor).

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

    Kaedah untuk menukar rentetan kepada nombor:

    方法描述
    parseFloat()解析一个字符串,并返回一个浮点数。
    parseInt()解析一个字符串,并返回一个整数。

    Operator unary +

    Operator + boleh digunakan untuk menukar pembolehubah kepada nombor:

    Contoh

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>PHP中文网(php.cn)</title>
    </head>
    <body>
    <p> typeof 操作符返回变量或表达式的类型。</p>
    <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>

    Jalankan atur cara dan cuba


    Jika pembolehubah tidak boleh ditukar, ia masih akan menjadi nombor, tetapi nilainya ialah NaN (bukan nombor):

    Instance

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>PHP中文网(php.cn)</title>
    </head>
    <body>
    <p> typeof 操作符返回变量或表达式的类型。</p>
    <button onclick="myFunction()">点我</button>
    <p id="demo"></p>
    <script>
    function myFunction() {
        var y = "John";
        var x = + y;
        document.getElementById("demo").innerHTML =
    typeof x + "<br>" + x;
    }
    </script>
    </body>
    </html>

    Jalankan program untuk mencubanya


    Tukar boolean kepada nombor

    Kaedah global Number() menukarkan nilai Boolean ​​kepada nombor.

    Nombor(salah) // Kembalikan 0
    Nombor(benar) // Kembalikan 1


    Tukar tarikh kepada nombor

    Kaedah global Number() boleh menukar tarikh kepada nombor.

    d = new Date();
    Nombor(d) // Mengembalikan 1404568027739

    Kaedah tarikh getTime() juga mempunyai kesan yang sama.

    d = new Date();
    d.getTime() // Return 1404568027739


    <🎜 🎜>

    Penukaran jenis automatik

    Apabila JavaScript cuba beroperasi pada jenis data yang "salah", ia akan bertukar secara automatik kepada Jenis data "Betul".

    Output berikut bukan seperti yang anda jangkakan:

    5 + null // Kembalikan 5 null Tukar kepada 0

    "5" + null // Kembalikan "5null" null Tukar kepada "null"
    "5" + 1 // Kembalikan "51" 1 Tukar kepada "1"
    "5" - 1 // Kembalikan 4 "5" Tukar kepada 5


    ditukar secara automatik kepada rentetan

    Apabila anda cuba untuk mengeluarkan objek atau pembolehubah JavaScript akan secara automatik panggil kaedah toString() pembolehubah:

    document.getElementById("demo").innerHTML = myVar;

    // jika myVar = {name:"Fjohn"} / / toString ditukar kepada "[objek Objek]"
    // jika myVar = [1,2,3,4] // toString ditukar kepada "1,2,3,4"
    // jika myVar = new Date() // toString ditukar kepada "Jum 18 Jul 2014 09:08:55 GMT+0200"

    Nombor dan nilai Boolean juga sering ditukar kepada setiap lain:

    // jika myVar = 123                                                                                                       ... ditukar kepada "123"

Meneruskan pembelajaran
||
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PHP中文网(php.cn)</title> </head> <body> <p> typeof 操作符返回变量、对象、函数、表达式的类型。</p> <p id="demo"></p> <script> document.getElementById("demo").innerHTML = typeof "john" + "<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>
  • Cadangan kursus
  • Muat turun perisian kursus