مهندس نرمافزار هستم و به عنوان Senior Software Engineer مشغول به کارم. به جاوااسکریپت، پایتون، دیتابیسها و طراحی و معماری نرمافزار علاقه زیادی دارم. وبلاگهام: yavarjs.ir و hamidreza.tech
جاوااسکریپت: بررسی این که آیا یک متغیر تعریف شده است یا نه
در جاوااسکریپت یک متغیر تعریف شده است «اگر و فقط اگر» حین ِ دسترسی به آن خطای ِ ReferenceError تولید نشود.
راه ِ معمولی که خیلیها برای ِ بررسی ِ تعریف شده بودن ِ یک متغیر استفاده میکنن، به شکل ِ زیر است:
typeof variableName !== 'undefined'
عبارت ِ بولین ِ بالا در دو حالت مقدار ِ false خواهد داشت:
- متغیر ِ مورد ِ نظر در scope وجود نداشته باشد
- متغیر ِ مورد ِ نظر وجود داشته باشد و مقدار آن undefined باشد
در غیر ِ این صورت عبارت، مقدار ِ true را برمیگرداند.
اما راه ِ مطمئن، درست و البته کمی پردردسر ِ این مشکل، این است که تلاش کنیم تا به متغیر دسترسی پیدا کنیم و سپس اگر خطای ِ RefrenceError تولید شد، آن را catch کنیم و از این طریق بفهمیم که متغیر تعریف شده یا نه:
var barIsDeclared = true;
try { bar; }
catch (e) {
if (e.name === "ReferenceError") {
barIsDeclared = false;
}
}
منبع: https://stackoverflow.com/questions/16719277/checking-if-a-variable-exists-in-javascript
لینک پست اصلی در وبلاگ شخصی بنده: http://mahdavipanah.com/blog/js-variable-exists/
مطلبی دیگر از این انتشارات
عجایب optional chaining در js
مطلبی دیگر از این انتشارات
دلایل قانع کننده برای یادگیری جاوا اسکریپت
مطلبی دیگر از این انتشارات
یک لقمه Sass دور هم