Pra-penjelasan dengan kata kunci VAR
Pertama -tama mari kita lihat hasil eksekusi kode ini:
Salinan kode adalah sebagai berikut:
peringatan (n); // pop-up yang tidak ditentukan
var n = 10;
Hasil pop-up tidak ditentukan, mengapa tidak 10? Mari kita lihat hasil eksekusi kode berikut:
Salinan kode adalah sebagai berikut:
waspada (n);
n = 10;
Laporan Operasi adalah sebagai berikut:
Mengapa laporan kesalahan kali ini adalah bahwa ketika kode berjalan, variabel n tidak dinyatakan; Melalui perbandingan dua potong kode ini, kami menemukan bahwa ada perbedaan antara variabel dengan kata kunci dan variabel VAR tanpa kata kunci VAR. Sebelum kode dieksekusi, browser tampaknya telah memberi mereka nilai awal yang tidak ditentukan. Oleh karena itu, sebelum kode dijalankan, proses mesin browser secara otomatis memindai variabel dengan kata kunci VAR dan kata kunci fungsi dan fungsi dan fungsi yang ditentukan sebelum kode dijalankan disebut pra-interpretasi.
Pra-eksplanasi dengan kata kunci fungsi
Mari kita lihat hasil eksekusi kode berikut:
Salinan kode adalah sebagai berikut:
fn (); // popt halo
fungsi fn () {
waspada ('halo');
}
Hasil eksekusi muncul halo, dan FN dapat dieksekusi secara normal. Alasannya adalah bahwa FN sudah diabaikan sebelum kode dieksekusi. FN telah didefinisikan (didefinisikan) selama pra-eksplanasi. Kami memiliki pertanyaan lagi, mengapa hasil eksekusi kode pertama tidak muncul 10, tetapi tidak terdefinisi, dan konsep lain diperkenalkan lagi.
Menyatakan dan definisi dalam javascript
Kami biasanya menggunakan tombol VAR untuk mendeklarasikan variabel dan menggunakan kata kunci fungsi untuk mendefinisikan fungsi. Namun, kata kunci fungsi menyatakan dan mendefinisikan fungsi pada saat yang sama, sementara VAR hanya dapat mendeklarasikan variabel dan tidak memiliki fungsi definisi.
Berikut ini adalah variabel yang dinyatakan dengan kata kunci VAR:
Salinan kode adalah sebagai berikut:
var n; // mendeklarasikan variabel n
var m = 10; // mendeklarasikan variabel m dan menetapkan 10 untuk itu
Berikut ini adalah fungsi yang ditentukan dengan kata kunci fungsi:
Salinan kode adalah sebagai berikut:
// tentukan fungsi fn
fungsi fn () {
waspada ('halo');
}
Perbedaan antara pra-penjelasan kata kunci VAR dan kata kunci fungsi
Faktanya, perbedaan antara keduanya adalah bahwa ketika sudah diabaikan dengan kata kunci VAR, hanya bagian deklarasi yang telah dijelaskan sebelumnya (karena tidak memiliki kemampuan untuk mendefinisikan dirinya sendiri), sedangkan ketika dijelaskan sebelumnya dengan kata kunci fungsi, deklarasi dan definisi telah dijelaskan sebelumnya pada saat yang sama. Kemudian kami akan menganalisis kode pertama lagi dan menganalisisnya sebagai berikut:
Pra-eksplanasi tidak konvensionalitas (penipuan)
Mengapa dikatakan tidak konvensional? Silakan lihat kode berikut (kecuali Firefox):
Salinan kode adalah sebagai berikut:
waspada (n);
fn ();
if (false) {
var n = 10;
fungsi fn () {
waspada ('halo');
}
}
Tidak ditentukan akan muncul di baris pertama eksekusi kode, dan halo akan muncul di baris kedua eksekusi kode; Karena N dan FN sudah dijelaskan sebelum eksekusi kode. Bahkan jika kondisi dinilai salah, mesin browser persisten akan memindai variabel n yang dinyatakan dengan kata kunci VAR dan FN dengan definisi kunci fungsi.
*Pra-interpretasi mengabaikan peraturan ulang, bukan redefinisi
Karena tempat ini relatif kusut dan tidak mudah dimengerti, ia telah menambahkan tanda bintang, silakan lihat kode berikut:
Salinan kode adalah sebagai berikut:
waspada (n);
var n = 10;
var n = 9;
var n;
waspada (n);
Apa hasil eksekusi dari kode ini? Mari kita analisis:
Lanjutkan untuk mengunggah kode, silakan menganalisis hasil eksekusi berikut:
Salinan kode adalah sebagai berikut:
fn ();
fungsi fn () {
peringatan ('1');
}
fn ();
fungsi fn () {
peringatan ('2');
}
fn ();
Diagram analisis kode adalah sebagai berikut:
Analisis Fungsi Pra-Penjelasan dengan Definisi Fungsi
Meringkaskan:
Posting blog ini menggunakan kode besar dan tangkapan layar untuk meninjau pra-interpretasi dalam JavaScript. Melihat berbagai buku, ada sangat sedikit deskripsi pra-interpretasi. Bahkan, tidak ada banyak skenario yang digunakan dalam pekerjaan. Sayangnya, pra-interpretasi merupakan pertanyaan wawancara yang harus diwawancarai untuk perusahaan-perusahaan besar. Ketika saya pertama kali berhubungan dengannya, saya merasa bahwa itu selalu tidak menulis kode sesuai dengan akal sehat, tetapi kadang -kadang bisa berjalan secara normal dan tidak akan melaporkan kesalahan. Tentu saja, ini juga meningkatkan eksplorasi misteri kami dan juga memungkinkan kami untuk lebih memahami bagaimana mesin browser menjelaskan dan mengeksekusi kode kami. Saya akan menggunakan beberapa kasus klasik untuk menganalisisnya di posting blog berikutnya. Sekali lagi terima kasih atas dukungan Anda!