آموزش برنامه نویسی جاوا اسکریپت-جلسه بیست و دوم

آموزش برنامه نویسی جاوا اسکریپت-جلسه بیست و دوم

هر متغیری یک بلاک اسکوپ دارد یعنی یک ناحیه ای دارد که در آن تعریف شده و دارای ارزش است . مثلا اگر یک متغیر داخل یک فانکشن تعریف شده خارج از آن در دسترس نیست و خطا میده .

Scope

پیشنهاد ویژه: آموزش رایگان جاوااسکریپت

<p id=”demo1″></p>
<p id=”demo2″></p>
<script>
myFunction();
function myFunction() {
  let carName = “Volvo”;
  document.getElementById(“demo1″).innerHTML = typeof carName + ” ” + carName;
}
document.getElementById(“demo2”).innerHTML = typeof carName;
</script>

در این مثال چون متغیر داخل تابع فانکشن تعریف شده خارج از تابع اگر بخواهیم چاپ کنیم دیگر در دسترس نیست . 

Scope Global: اگر متغیررا با شکل های var,let و const را خارج از فانکشن تعریف کنیم در واقع Global هست و از بخش های مختلف برنامه می توان به آن دسترسی داشت.

تفاوت var, let و const

متغیر هایی که با استفاده از let  و const تعریف می‌شوند محدوده آن‌ها بلوک است یعنی در همان بلوکی که تعریف شده است معتبر است. در حالی که var اینطور نیست ، حتی اگر درون یک بلوک هم تعریف شود در همه قسمت‌های تابع قابل استفاده است.
پیشنهاد مقاله: آموزش برنامه نویسی جاوااسکریپت-جلسه بیست و هشتم

Hoisting

اگر ما یک متغیر را تعریف کنیم مثلا x=5 و چاپ کنیم و بعد دوباره  با var تعریفش کنیم و مقدار دهی نکنیم از مقدار قبلی استفاده میکند و باعث ایجاد خطا می شود و البته این خطا مشخص هم نمی شود برای اینکه این مشکل پیش نیاید از متغیر های let  و  const تعریف شدند . این متغیر ها چون بلوکی هستند فقط در بلوک خود قابل استفاده هستند و اگر در جای دیگر فراخوانی شوند خطا می دهند . البته متغیری که با let تعریف می شود می تواند مقدار جدیدی بپذیرد و شبیه let عمل میکند در این مورد ولی متغیری که با const تعریف شود حتی مقدار جدید هم نمی پذیرد و به همین دلیل اگر متغیر ثابتی داشته باشیم بهتر است با const تعریفش کنیم.
پیشنهاد مقاله: آموزش برنامه نویسی جاوااسکریپت-جلسه دهم

اشتراک گذاری :
مریم گوهرزاد
نویسنده

مریم گوهرزاد

مدرس و بنیانگذار هلدینگ آرتا رسانه. برنامه نویس و محقق حوزه بلاکچین و توسعه‌دهنده بلاکچین | متخصص Solidity | توسعه‌دهنده وب Full-Stackمن یک توسعه‌دهنده علاقه‌مند به فناوری‌های بلاکچین و وب ۳ هستم و در زمینه Solidity، توسعه قراردادهای هوشمند و ساخت برنامه‌های غیرمتمرکز (DApps) فعالیت می‌کنم. تمرکز من بر طراحی و پیاده‌سازی راهکارهایی است که در کنار بهره‌گیری از فناوری‌های نوین، عملکرد مناسب، امنیت و تجربه کاربری مطلوبی ارائه دهند.در کنار تخصص در حوزه بلاکچین، به عنوان یک توسعه‌دهنده وب Full-Stack نیز در طراحی و توسعه وب‌سایت‌ها و برنامه‌های تحت وب فعالیت می‌کنم. تجربه کار در بخش‌های Front-End و Back-End به من این امکان را داده است که پروژه‌ها را از مرحله ایده و طراحی تا توسعه و اجرا، با دیدی جامع دنبال کنم. در فرآیند توسعه، توجه ویژه‌ای به کدنویسی تمیز، معماری مناسب، طراحی واکنش‌گرا، عملکرد مطلوب و تجربه کاربری روان دارم.

TEST_VALUE_123
https://t.me/artarasaneh
tel:09193426251
https://wa.me/+989193426251
https://instagram.com/artarasaneh_com