Mengapakah Mengisytiharkan Pembolehubah JavaScript di Konsol Menghasilkan \'undefined\'?

Susan Sarandon
Lepaskan: 2024-10-20 08:43:30
asal
586 orang telah melayarinya

Why Does Declaring JavaScript Variables at the Console Result in

Mengapa Output Konsol "tidak ditentukan" Apabila Mengisytiharkan Pembolehubah JavaScript di Konsol?

Apabila mengisytiharkan pembolehubah JavaScript di konsol menggunakan var a; , ia mungkin kelihatan membingungkan apabila konsol mencetak "tidak ditentukan." Walau bagaimanapun, tingkah laku ini bukan semata-mata disebabkan oleh ketiadaan pemula dalam pernyataan pengisytiharan.

Sebab Sebenar: Pernyataan Eval

Sebab di sebalik tingkah laku ini terletak pada cara kerja pernyataan eval. Apabila menilai ungkapan atau pernyataan, pernyataan eval mentafsir keputusannya. Walau bagaimanapun, jika hasilnya adalah nilai, eval mengembalikan nilai tersebut. Jika tidak, jika hasilnya kosong (seperti yang berlaku dengan var a;), eval mengembalikan tidak ditentukan.

Pengisytiharan Pembolehubah sebagai Ungkapan

Menariknya, JavaScript merawat var a; pernyataan pengisytiharan sebagai ungkapan dan bukannya pernyataan. Ini bermakna ia mengembalikan hasil, yang kebetulan kosong. Oleh itu, apabila var a; diproses dalam konsol, pernyataan eval secara berkesan mentafsir hasil kosong dan mengembalikan tidak ditentukan, yang kemudiannya dicetak ke konsol.

Pengisytiharan Diabaikan

Dalam kes tertentu, pembolehubah dan pengisytiharan fungsi seterusnya mungkin diabaikan oleh konsol jika terdapat pernyataan dengan hasil yang tidak kosong. Contohnya:

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

Ini kerana penilaian SourceElements (termasuk pengisytiharan) berhenti sebaik sahaja hasil yang tidak kosong ditemui, yang membawa kepada pencetakan hasil pernyataan tersebut dan bukannya keputusan kosong bagi pengisytiharan seterusnya.

Pengisytiharan Fungsi lwn. Ungkapan

Satu lagi perbezaan halus timbul dengan pengisytiharan dan ungkapan fungsi. Apabila fungsi diisytiharkan menggunakan fungsi f() {}, ia dianggap sebagai pernyataan Pengisytiharan Fungsi, yang mengembalikan hasil kosong dan membawa kepada pencetakan konsol "tidak ditentukan." Walau bagaimanapun, apabila fungsi ditakrifkan menggunakan (fungsi f() {}), ia dianggap sebagai Ungkapan Fungsi, yang menilai kepada fungsi itu sendiri dan dicetak sedemikian dalam konsol.

Atas ialah kandungan terperinci Mengapakah Mengisytiharkan Pembolehubah JavaScript di Konsol Menghasilkan \'undefined\'?. 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!