خب بیاین ببینیم جاوا اسکریپت چه چیزای خفنی برامون داره، چه کارایی میتونیم باهاش انجام بدیم و چه تکنولوژی هایی ازش استفاده میکنن.
جاوا اسکریپت اول برای «زنده کردن صفحات وب» ساخته شد
برنامه هایی که با این زبان نوشته میشن اسمشون اسکریپت (script) هست، میشه اونا رو توی HTML یک صفحه وب نوشت و موقعی که صفحه بارگذاری میشه به صورت خودکار اجرا بشن
اسکریپت ها به صورت متن ساده نوشتن میشن و مراحل پیچیدهای برای اجرا شدن لازم نیست انجام بشه (میشه با یک ویرایشگر متن به راحتی اسکریپت نوشت)
پس بذارین یه نکتهای همینجا بهتون بگم جاوااسکریپت(JavaScript) با یه زبان دیگهای که اسمش جاوا(Java) هست خییییلی فرق میکنه
چرا بهش میگیم جاوا اسکریپت؟
زمانی که جاوا اسکریپت ساخته شد، اوایل اسمش LiveScript بود. اما اون زمان جاوا خیلی محبوب بود پس تصمیم گرفتن که از جایگاه جاوا استفاده کنن و اسمش رو گذاشتن "برادر کوچکتر جاوا" تا از محبوبیت جاوا استفاده کنه.
اما بیشتر که تکامل پیدا کرد جاوا اسکریپت به یه زبان کاملا مستقل تبدیل شد با ویژگی های خاص خودش به نام ECMAScript
جاوا اسکریپت نه تنها توی مرورگر بلکه توی سرور یا هر جایی که موتور جاوا اسکریپت وجود داشته باشه میتونه اجرا بشه
مرورگر توی خودش یه موتور جاوا اسکریپت داره که با استفاده از اون میتونه اسکریپتها رو اجرا کنه که بعضیا بهش «ماشین مجازی جاوا اسکریپت هم میگن»
موتور های مختلف، اسمای مخفف متفاوتی دارن که چند تاشون رو براتون میگم و جلوش هم مرورگر هایی که از این موتور ها استفاده میکنن مینویسم براتون :
این اصطلاحات بالا رو سعی کنین که یادتون بمونه، چون توی مقاله هایی که توسعه دهندهها مینویسن از این چیزا زیاد استفاده میکنن مثلا اگه جایی خوندین که فلان ویژگی توی V8 فقط پشتیبانی میشه احتمالا توی مرورگر های Chrome و Opera کار میکنه
موتورها خیلی پیچیده هستن ولی اصول اولیه خیلی راحته
۱− موتوری که توی مرورگر هست میاد و اسکریپت رو میخونه یا parseاش میکنه
۲− بعد میاد اسکریپت رو تبدیلش میکنه به زبان ماشین (منظورم همون compile کردنه)
۳− و بعد از کامپایل خیلی سریع اجراش میکنه
موتورها توی هر کدوم از مراحل بهینه سازی هم انجام میدن، حتی اسکریپتی که کامپایل شده رو موقع اجرا بررسی میکنه و اطلاعاتی که از اول تا اخر برنامه رد و بدل میکنه رو تجزیه و تحلیل میکنه فرایند بهینه سازیش اینجوریه
جاوا اسکریپت کنونی یه زبان برنامه نویسی «امن» هست، دسترسی سطح پایین یعنی کار با مموری یا CPU رو نمیده بهمون برای این که اوایل جاوا اسکریپت برای مرورگر ها ساخته شد و نیازی به این چیزا نداشت
قابلیت های جاوا اسکریپت بستگی داره به این که کجا اجرا بشه به عنون مثال Node.js از توابعی پشتیبانی می کنه که به جاوا اسکریپت امکان خوندن و نوشتن فایل ها ، انجام درخواست های شبکه و ... رو میده
جاوا اسکریپت توی مرورگر میتونه همه کارهایی که مربوطه به دستکاری صفحه وب، تعامل با کاربر و سرور رو انجام بده.
خب بذارین چند تا مثال براتون بزنم تا بهتر متوجه بشین:
دست و پای جاوا اسکریپت توی مرورگر بسته هست اونم به خاطر اینه که اطلاعات کاربر توسط سایت های مخرب لو نره و به خطر نیوفته
چند تا از این محدودیت ها رو براتون میگم :
بعضی از این محدودیت بستگی به این داره که جاوا اسکریپت کجا اجرا بشه مثلا اگه روی سرور اجرا بشه این محدودیت ها وجود نداره، مرورگرهای جدید هم اجازه میدن به افزونه هایی که ممکنه مجور های زیادی بخوان
حداقل سه نکته جالب در مورد جاوا اسکریپت وجود داره:
جاوا اسکریپت تنها فناوری هستش که این سه تا رو با هم دیگه ترکیب میکنه
این چیزیه که جاوا اسکریپت رو منحصر به فرد میکنه به همین دلیل گسترده ترین ابزار برای ایجاد رابط های مرورگره
جاوا اسکریپت همچنین امکان ایجاد سرور و برنامه برای موبایل و ... هم بهمون میده
سینتکس(نحوه نوشتن کد) جاوا اسکریپت مناسب نیاز همه نیست، افراد مختلف ویژگی های مختلفی میخوان برای پروژههاشون
این اواخر زبان های زیادی به وجود اومدن که قبل از اجرا شدن توی مرورگر تبدیل میشن به جاوا اسکریپت، ابزار های جدید این عمل تبدیل کردن رو خیلی سریع انجام میدن و به توسعه دهندهها این اجازه رو میدن که توی یه زبان دیگه کد بزنن و در نهایت به صورت خودکار اون رو به جاوا اسکرپت تبدیل کنن
چند تا از این زبان رو براتون مینویسم :
البته خیلی بیشتر از این ها هستن ولی اگه بخوایم از هر کدوم از این زبان های تبدیل کننده استفاده کنیم باید جاوا اسکریپت رو بلد باشیم تا واقعا بفهمیم داریم چیکار میکنیم
اگر توی این مقاله مشکلی بود یا خواستین توی این پروژه مشارکت کنین این لینک گیتهابش هست.