Ada DUA hal yang perlu Anda pahami tentang undefined ...
- yang jenis
undefined
yang hanya dapat memiliki satu nilai .
- yang variabel
undefined
Sekarang baca yang berikut ini dengan sangat hati-hati ...
Ada begitu banyak nilai tipe number
(10, 10.01, 1e1). Tetapi hanya ada satu nilai tipe undefined
, dan nilai itu disimpan dalam variabel undefined
. Nilai yang memiliki representasi NO literal - misalnya, nilai-nilai jumlah 1
, 100
, 1e-1
semua literal dari jumlah jenis, tetapi nilai yang disimpan dalam variabel undefined
tidak memiliki bentuk literal.
undefined
adalah variabel, hanya variabel normal, yang JavaScript nyatakan dan berikan nilai tipe undefined
dalam lingkup global. Jadi, Anda dapat melakukan semua hal berikut ...
jenis tidak terdefinisi; // "tidak terdefinisi"
undefined = 100;
jenis tidak terdefinisi; // "angka"
undefined = void 0;
jenis tidak terdefinisi; // "tidak terdefinisi"
window.undefined === tidak terdefinisi; // benar
window.undefined === batal 0; // benar
- jika Anda tidak ingin menggunakan variabel
undefined
, Anda bisa menghasilkan nilai tipe undefined
dengan ekspresi void 0
- yang satu-satunya tujuan adalah mengembalikan nilai tipe undefined
.
... adakah yang bisa menjelaskan kepada saya mengapa hal ini dimasukkan ke dalam JavaScript ...
TIDAK. Sama seperti tidak ada yang bisa menjelaskan mengapa variabel yang tidak dideklarasikan pergi ke lingkup global alih-alih lokal. Anda hanya perlu melatih diri Anda untuk menggunakannya dengan cerdas alih-alih mencoba mencari pembenaran atas keberadaannya.
... kami memiliki nilai nol ...
Meskipun null
bisa melakukan sesuatu undefined
, itu lebih atau kurang terkait dengan objects
daripada skalar. Memang, JavaScript menganggap null
dirinya sebagai objek - typeof null
mengembalikan "objek".
Menurut pendapat saya, intinya adalah untuk TIDAK mencoba alasan tujuan absolut dari undefined
dan null
- dan menggunakannya dalam kode Anda secara cerdas, sehingga kode Anda dapat dibaca, dipelihara, dan dapat digunakan kembali.
undefined
dan kapan harus menggunakannull