Rumah  >  Artikel  >  hujung hadapan web  >  Adakah anda tahu mata pengetahuan kemahiran TypeOf_javascript ini

Adakah anda tahu mata pengetahuan kemahiran TypeOf_javascript ini

WBOY
WBOYasal
2016-05-16 15:14:331331semak imbas

Semalam, saya bermain dengan rakan sekerja saya. Mereka memberi saya soalan pengekodan, yang saya fikir ia agak menyeronokkan. Jika ada yang salah, sila nyatakan dan kita boleh membuat kemajuan bersama.

Kodnya seperti ini:

<!DOCTYPE html>
<head>
<title>typeof</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
</head>
<body>
<script>
var a= a||null; 
var b= c||null; 
var c= typeof f;
console.log(a);
console.log(b);
console.log(c);
</script>
</body>
</html>

Jadi, jika anda menjalankan kod ini, apakah yang akan dicetak penyahpepijat krom?

Sila lihat pemaparan


Mengapa keputusan ini berlaku?

Mula-mula analisa dua nol dalam gambar di atas


Kerana Javascript akan membuat pra-parse (menaik) sebelum melaksanakan kod.

Apakah itu mengangkat?

Iaitu, dalam JavaScript, anda boleh mengisytiharkan berbilang penyataan var di mana-mana sahaja dalam fungsi Ia akan berfungsi seolah-olah ia diisytiharkan di bahagian atas fungsi dan akan memberikan pembolehubah yang diisytiharkan oleh var nilai awal yang tidak ditentukan. Tingkah laku ini dipanggil mengangkat.

Jadi, sebelum melaksanakan kod di atas, Javascript akan terlebih dahulu menghurai (mengangkat) semua pembolehubah var (a, b, c) Apabila a||null dilaksanakan, a tidak ditentukan dan kerana ia adalah | , jadi hasilnya adalah batal.

c||null adalah kebenaran.

Mari kita lihat sekali lagi, mengapa jenis f tidak ditentukan? Jika f tidak ditakrifkan, bukankah ralat harus dilaporkan?

Ya, jika kami menggunakan pembolehubah yang tidak ditentukan, penyemak imbas akan melaporkan ralat.

Walau bagaimanapun, apabila menggunakan typeof untuk menentukan pembolehubah yang tidak ditentukan, undefined akan dikembalikan.

Apakah mekanisme yang digunakan oleh jenis untuk menentukan jenis nilai? Ringkasannya adalah seperti berikut:

1. Untuk nilai jenis angka, typeof akan mengembalikan nombor Nota: NaN juga merupakan jenis angka kerana ia mewakili nilai bukan angka khas dalam JavaScript.

2. Untuk nilai jenis rentetan, typeof akan mengembalikan rentetan.

3. Untuk nilai jenis Boolean, typeof akan mengembalikan boolean.

4. Untuk objek, tatasusunan dan null, jenis akan mengembalikan objek

5. Untuk jenis fungsi, jenis mengembalikan fungsi

6 Jika operan tidak ditakrifkan (tidak wujud atau tidak diberikan nilai), undefined akan dikembalikan.

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