Mengapakah Pengisytiharan Pembolehubah Konsol JavaScript Menghasilkan \'Tidak Ditakrifkan\'?

Patricia Arquette
Lepaskan: 2024-10-20 08:38:31
asal
557 orang telah melayarinya

Why Does JavaScript Console Variable Declaration Result in

Mengapa Pengisytiharan Pembolehubah JavaScript di Konsol Menghasilkan "Tidak Ditakrifkan"

Apabila mengisytiharkan pembolehubah dalam konsol JavaScript menggunakan sintaks var a;, ia mencetak "undefined." Tingkah laku ini boleh mengejutkan dan sering ditangani dalam siaran Stack Overflow. Walau bagaimanapun, perbincangan ini gagal menjelaskan sepenuhnya mengapa ini berlaku.

Tingkah laku konsol adalah hasil langsung daripada cara JavaScript menilai ungkapan. Apabila menilai pernyataan var a;, JavaScript menganggapnya sebagai ungkapan sendiri dan mengembalikan hasilnya, yang sememangnya "tidak ditentukan."

Lebih membingungkan mengapa konsol juga mencetak "tidak ditentukan" apabila mengisytiharkan pembolehubah dengan nilai awal, seperti var a = 3. Yang mengejutkan, semua pernyataan pengisytiharan berubah dalam JavaScript (kedua-dua var dan fungsi) mengembalikan "tidak ditentukan" jika terdapat pernyataan lain dengan hasil "sebenar".

Sebagai contoh :

> var a = 3;
undefined

> var a = 3; a = 4;
4

> var a = 3; a = 4; var a = 5; function f() {};
4
Salin selepas log masuk

Tingkah laku ini berakar umbi dalam pernyataan eval, yang, menurut spesifikasi ECMAScript:

  • Mengembalikan "tidak ditentukan" jika nilai penyiapan program yang dinilai kosong .

Penilaian var a = 4 penyataan kembali (biasa, kosong, kosong), yang memenuhi kriteria untuk mengembalikan "tidak ditentukan."

Walau bagaimanapun, eval juga menentukan bahawa jika nilai penyiapan program yang dinilai tidak kosong, maka nilai penyata terakhir dikembalikan. Dalam contoh terakhir, a = 4 ialah pernyataan terakhir, jadi nilainya (4) dikembalikan.

Ringkasnya, konsol JavaScript mencetak "tidak ditentukan" untuk pengisytiharan berubah kerana pengisytiharan ini mengembalikan "tidak ditentukan" apabila dinilai sebagai ungkapan. Tingkah laku ini boleh mengelirukan, terutamanya apabila memberikan nilai awal kepada pembolehubah, tetapi ia berpunca daripada mekanisme penilaian asas ungkapan dan pernyataan JavaScript.

Atas ialah kandungan terperinci Mengapakah Pengisytiharan Pembolehubah Konsol JavaScript Menghasilkan \'Tidak Ditakrifkan\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!