Menentukan sama ada pembolehubah tidak ditakrifkan dalam JavaScript adalah penting untuk fungsi kod yang boleh dipercayai. Walaupun terdapat pelbagai pendekatan untuk isu ini, setiap kaedah mempunyai kelebihan dan kelemahan tersendiri.
Pengendali dalam menilai sama ada sifat wujud dalam objek, tanpa mengira nilainya. Pendekatan ini amat berguna jika anda ingin menyemak kehadiran pembolehubah tanpa mengira sama ada ia telah diberikan nilai secara eksplisit.
if ("myVariable" in window) { // myVariable is defined }
Jenis operator mengembalikan jenis data pembolehubah. Undefined ialah jenis data yang sah dalam JavaScript, jadi membandingkan pembolehubah kepada "undefined" secara langsung akan menentukan statusnya yang tidak ditentukan dengan tepat.
if (typeof myVariable === "undefined") { // myVariable is undefined }
Adalah penting untuk ambil perhatian bahawa kaedah ini hanya boleh mengenal pasti pembolehubah yang tidak ditakrifkan, tidak diberikan kepada null atau nilai palsu yang lain.
Walaupun kurang dipercayai daripada kaedah lain, paksaan boolean boleh digunakan untuk menyemak undefined. Dengan memaksa pembolehubah kepada boolean secara tersirat, anda boleh memanfaatkan fakta bahawa undefined ialah nilai palsu. Walau bagaimanapun, kaedah ini boleh membawa kepada hasil yang tidak dijangka jika pembolehubah telah ditetapkan kepada nilai palsu yang lain, seperti 0 atau "".
if (!myVariable) { // myVariable is undefined (or null, 0, "", etc.) }
Serupa dengan paksaan boolean, membandingkan pembolehubah terus kepada undefined boleh berfungsi, tetapi ia sememangnya tidak boleh dipercayai. Memandangkan undefined boleh ditimpa atau ditugaskan semula, kaedah ini mungkin menghasilkan keputusan yang salah.
if (myVariable == undefined) { // myVariable may or may not be undefined }
Dalam beberapa kes, mungkin sesuai untuk menggunakan blok cuba-tangkap untuk mengendalikan ralat yang akan dilemparkan jika pembolehubah tidak ditentukan. Walau bagaimanapun, pendekatan ini boleh menyusahkan dan hanya disyorkan untuk senario tertentu.
try { if (myVariable) { // myVariable is defined } } catch (err) { // myVariable is undefined }
Apabila menyemak undefined dalam JavaScript, kaedah yang paling sesuai bergantung pada keperluan khusus kod . Untuk menentukan sama ada pembolehubah telah diisytiharkan, tanpa mengira nilainya, pengendali dalam adalah pilihan paling selamat. Jika minat terletak semata-mata untuk membezakan yang tidak ditentukan daripada jenis data lain, jenis pengendali adalah diutamakan. Paksaan Boolean dan perbandingan langsung kepada undefined kurang dipercayai dan harus digunakan dengan berhati-hati.
Atas ialah kandungan terperinci Bagaimana untuk Boleh Memeriksa sama ada Pembolehubah JavaScript Tidak Ditakrifkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!