Rumah >hujung hadapan web >Soal Jawab bahagian hadapan >Mengapakah JavaScript merupakan bahasa yang ditaip lemah?

Mengapakah JavaScript merupakan bahasa yang ditaip lemah?

青灯夜游
青灯夜游asal
2022-10-12 16:44:251956semak imbas

Dalam bahasa yang ditaip lemah, jenis data boleh diabaikan, dan pembolehubah boleh diberikan nilai jenis data yang berbeza Pembolehubah JavaScript boleh ditafsirkan sebagai jenis yang berbeza pada masa yang berbeza, yang membolehkan penukaran tersirat pembolehubah jenis dan pelakon. Dalam JavaScript, pembolehubah boleh digunakan tanpa mengisytiharkan jenis datanya terlebih dahulu Pada masa ini, jurubahasa JavaScript akan membuat apa yang difikirkannya sebagai pertimbangan yang betul berdasarkan situasi.

Mengapakah JavaScript merupakan bahasa yang ditaip lemah?

Persekitaran pengendalian tutorial ini: sistem Windows 7, versi JavaScript 1.8.5, komputer Dell G3.

静态语言: Kami memanggil bahasa statik​​​yang perlu mengesahkan jenis data pembolehubah sebelum menggunakannya.

动态语言: Kami memanggil bahasa yang perlu menyemak jenis data semasa operasi sebagai bahasa dinamik.

Biasanya, operasi penukaran jenis secara rahsia dipanggil 隐式类型转换:

Bahasa yang menyokong penukaran jenis tersirat dipanggil 弱类型语言 dan bahasa yang tidak menyokong penukaran jenis tersirat dipanggil 强类型语言.

Bahasa yang ditaip dengan kuat:

Bahasa yang menguatkuasakan definisi jenis data. Dalam erti kata lain, sebaik sahaja pembolehubah diberikan jenis data tertentu, ia akan sentiasa menjadi jenis data itu jika ia tidak dihantar. Sebagai contoh: jika anda mentakrifkan pembolehubah integer a, maka adalah mustahil untuk atur cara untuk menganggap a sebagai jenis rentetan. Bahasa definisi yang ditaip kuat ialah bahasa yang selamat jenis.

Bahasa yang ditaip lemah:

Bahasa yang jenis data boleh diabaikan. Ia adalah bertentangan dengan bahasa definisi yang ditaip kuat, di mana pembolehubah boleh diberikan nilai jenis data yang berbeza.

Bahasa yang ditaip lemah membenarkan penukaran tersirat bagi jenis pembolehubah, penukaran jenis paksa, dsb. Contohnya, rentetan dan nilai boleh ditukar secara automatik manakala bahasa yang ditaip kuat secara amnya tidak membenarkan ini.

JavaScript ialah bahasa yang ditaip lemah

JavaScript ialah bahasa pengaturcaraan "ditaip longgar", yang bermaksud bahawa pembolehubah JavaScript boleh ditafsirkan pada berbeza majlis untuk pelbagai jenis.

Dalam JavaScript, pembolehubah boleh digunakan tanpa mengisytiharkan jenis datanya terlebih dahulu Pada masa ini, jurubahasa JavaScript akan membuat apa yang difikirkannya sebagai pertimbangan yang betul berdasarkan situasi. Jika kita menyimpan rentetan dalam pembolehubah sekarang dan mahu menggunakannya sebagai nilai berangka kemudian, ini boleh dilaksanakan sepenuhnya dalam JavaScript, dengan syarat rentetan itu mesti mengandungi sesuatu seperti nombor.

Penjelmaan jenis js lemah

Peraturan umum ialah semakin kuat kekangan, semakin kurang ralatnya, tetapi semakin menyusahkan semasa menulis sesuatu program. Dalam JavaScript, kerana kekangannya agak lemah, ralat jenis ini cenderung berlaku: Contoh paling mudah:

Contoh lain ialah seperti berikut:

var a =200;
var b ="1";
var c= a + b;

Anda mungkin menjangkakan c akan menjadi 201, tetapi Sebenarnya ia adalah "2001", ralat yang tidak pernah berlaku dalam bahasa yang ditaip kuat. Walau bagaimanapun, dengan tepat kerana JavaScript tidak mempunyai kekangan ini, ia boleh menggabungkan jenis angka dan rentetan dengan mudah.

Mengapakah JavaScript merupakan bahasa yang ditaip lemah?

Contoh lain:

var a = '11';
a = a - '';
console.log(typeof a);// -->number

Mengapakah JavaScript merupakan bahasa yang ditaip lemah?

"-" boleh menjadi operator Unary ( negatif), atau perduaan (operasi penolakan)

Dalam pernyataan gelung (jika, sementara), objek Objek boleh ditukar secara tersirat daripada nilai BOOLEAN.

var obj = {name:'jack'}
if(obj){
    //do more
}

Apa yang lebih sukar dicari ialah dalam fungsi alert().

String.prototype.fn = function(){return this};
var a = 'hello';
alert(typeof a.fn()); //-->object
alert(a.fn()); //-->hello

Mengapakah JavaScript merupakan bahasa yang ditaip lemah?

Mengapakah JavaScript merupakan bahasa yang ditaip lemah?

Kami tahu bahawa ini boleh difahami sebagai objek contoh kelas semasa Memandangkan ia adalah objek, jenis a.fn() adalah semula jadi Pemulangan adalah objek.

Kunci adalah yang terakhir alert(a.fn()) Apa yang dikembalikan oleh a.fn() jelas sekali objek, tetapi ia secara tersirat ditukar kepada rentetan "hello" untuk paparan.

[Cadangan berkaitan: tutorial video javascript, Video pengaturcaraan]

Atas ialah kandungan terperinci Mengapakah JavaScript merupakan bahasa yang ditaip lemah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn