جاوا اسکریپت (Java Script) چیست؟
جاوااسکریپت، به اختصار JS (به انگلیسی: JavaScript) زبان برنامهنویسی سطح بالا، پویا، مبتنی بر شی، وابستگی کم به نوع (Weakly typed)، چند رویه و تفسیری است. در کنار HTML و CSS، جاوااسکریپت یکی از سه هسته صفحات دنیای وب میباشد.
JavaScript به صورت «جاوااسکریپت» خوانده میشود، ولی در فارسی به صورت «جاوااسکریپت» ترجمه میشود و اگر به صورت «جاوا اسکریپت» ترجمه شود اشتباه است چون دو کلمه جدا از هم نیست و اگر به صورت دو کلمه جدا نوشته شود خطاهای نگارشی ایجاد میشود، بهطور مثال ممکن است کلمه جاوا در انتهای خط و کلمه اسکریپت در ابتدای خط بعدی نوشته شود.
علیرغم اشتباه عمومی، زبان جاوااسکریپت با زبان جاوا ارتباطی ندارد، اگر چه ساختار این زبان به سی پلاس پلاس (++C) و جاوا شباهت دارد که این امر برای یادگیری آسان در نظر گرفته شدهاست. از همین رو دستورهای متداول مانند if, for, try..catch ,”while” و… در این زبان هم یافت میگردند.
این زبان میتواند هم به صورت ساخت یافته و هم به صورت شی گرا مورد استفاده قرار گیرد. در این زبان اشیاء با اضافه شدن متدها و خصوصیات پویا به اشیاء خالی ساخته میشوند، بر خلاف جاوا. بعد از ساخته شدن یک شی به روش فوق، این شی میتواند به عنوان نمونهای برای ساخته شدن اشیاء مشابه مورد استفاده قرار گیرد.
به علت این قابلیت زبان جاوااسکریپت برای ساختن نمونه از سیستم، مناسب است.
کاربرد گسترده این زبان در سایتها و صفحات اینترنتی بوده و به کمک این زبان میتوان به اشیاء داخل صفحات HTML دسترسی پیدا کرد و آنها را تغییر داد. به همین علت برای پویانمایی در سمت کاربر، از این زبان استفاده میشود.
تاریخچه جاوا اسکپریت :
جاوااسکریپت را در ابتدا شخصی به نام برندان ایچ در شرکت نتاسکیپ با نام Mocha طراحی نمود. این نام بعداً به LiveScript و نهایتاً به جاوااسکریپت تغییر یافت.[۳] این تغییر نام تقریباً با افزوده شدن پشتیبانی از جاوا در مرورگر وب Netscape Navigator همزمانی دارد. اولین نسخهٔ جاوااسکریپت در نسخه ۲٫۰B3 این مرورگر در دسامبر ۱۹۹۵ معرفی و عرضه شد. این نام گذاری منجر به سردرگمیهای زیادی شده و این ابهام را ایجاد میکند که جاوااسکریپت با جاوا مرتبط است در حالی که اینطور نیست. عدهٔ زیادی این کار را یک ترفند تجاری برای به دست آوردن بخشی از بازار جاوا که در آن موقع زبان جدید مطرح برای برنامهنویسی تحت وب بود میدانند.[۴][۵]
به دلیل موفقیت عمدهٔ جاوااسکریپت در نقش زبان نویسهای سمت کاربر (Client Side Scripting Language) برای صفحات وب، مایکروسافت یک نسخه سازگار از این زبان را ایجاد کرد و به علت مشکلات حقوقی آن را جی اسکریپت نامید. این زبان در نسخه ۳٫۰ از مرورگر اینترنت اکسپلورر و در اوت ۱۹۹۶ داده شد. تفاوتهای این دو زبان به حدی جزئی است که اغلب جی اسکریپت و جاوااسکریپت به جای هم به کار میروند. هرچند که مایکروسافت در اینجا چند ده دلیل برای تفاوت جی اسکریپت با استاندارد ECMA مطرح میکند.
نتاسکیپ جاوااسکریپت را به سازمان Ecma International برای استانداردسازی ارسال کردهاست و نتیجه نسخهٔ استاندارد شدهای به نام ECMAScript است.[۶]
جاوااسکریپت به یکی از زبانهای برنامهنویسی پر طرفدار در وب تبدیل شدهاست. هر چند ابتدا بسیاری از برنامه نویسان حرفهای زبان را کم ارزش تلقی میکردند چون مخاطبین آن نویسندگان صفحات وب و آماتورهای این چنینی بودند.[۷] ظهور ایجکس بار دیگر جاوااسکریپت را در معرض توجه قرار داد و برنامه نویسان حرفهای بیشتری را به خود جذب نمود. نتیجه ازدیاد فریمورک و کتابخانههای جامعی در این زمینه، بهبود شیوههای رایج برنامهنویسی در جاوااسکریپت و افزایش کاربرد جاوااسکریپت خارج از وب است
جاوا اسکریپت (Java Script) چیست؟
شی گرایی در جاوا اسکریپت (Java Script) به چه معنی است؟
شی گرایی یک الگو و شیوه تفکر در برنامه نویسی است. رویکرد برنامه نویسی شی گرا از جزء به کل یا پایین به بالا است (Bottom-Up). یعنی در ابتدا واحدهای کوچکی از برنامه ایجاد میشوند و با پیوند این واحدهای کوچک به یکدیگر، واحدهای بزرگ تر شکل میگیرند و به همین ترتیب برنامه کامل تر میشود. برنامه نویسی شی گرا دو مفهوم کلاس (Class) و شی (Object) را ارائه میدهد.
شی گرایی در برنامه نویسی می تواند مشکلات زیادی را برای شما حل کند و باعث سادهتر شدن فرآیند کدنویسی شود. از آنجایی که مفاهیم شی گرایی به شدت به دنیای واقعی نزدیک است، درک آن برای برنامه نویس آسان خواهد بود. در شی گرایی برخلاف روشهای کدنویسی دیگر مانند رویه ای به جای دست و پنجه نرمکردن با تعداد زیادی متغیر و توابع، مستقیما با اشیا (Objects) کار میکنید. برای درک بهتر این موضوع بهتر است با مثالی این مطلب را توضیح دهیم.
کارگاهی را در نظر بگیرید که دارای دستگاههای تولیدی مختلف است. این کارگاه را میتوان به عنوان یک کلاس در نظر گرفت. هر یک از این دستگاهها محصول متفاوتی تولید میکنند که میتوان آنها را به عنوان شی در نظر گرفت. اگر برای محصولات مشکلی پیش بیاید یا اگر بخواهیم تغییر در آنها ایجاد کنیم نیازی به تخریب و از نو ساختن کارگاه نیست.
به عنوان مثال اگر محصول خروجی کیک باشد، زمانیکه بخواهیم کیک شیرینتری داشته باشیم لازم نیست تغییری در کارگاه یا دستگاهها ایجاد کنیم، کافیست کمی شکر به خمیر کیک اضافه کنیم. این دقیقا همان اتفاقی است که در برنامه نویسی شی گرا میافتد.
نقاط قوت جاوا اسکریپت
هر یک از زبان هایی که در دنیای برنامه نویسی مورد استفاده قرار می گیرند نقاط قوت و ضعف هایی دارند که زبان جاوا اسکریپت هم از این موضوع مستثنا نیست. این زبان به دلیل مزایای فراوانی که دارد در میان برنامه نویسان از محبوبیت زیادی برخوردار است که به طور خلاصه به برخی از آنها اشاره می کنیم :
- بر اساس بررسی سایت stackoverflow محبوب ترین زبان برنامه نویسی سال ۲۰۱۸ است
- برای پردازش و اجرا به کامپایلر احتیاجی ندارد.
- یادگیری جاوا اسکریپت نسبت به خیلی از زبان های برنامه نویسی راحت تر است.
- به صورت کراس پلتفورم روی مرورگر ها یا پلتفرم های مختلف اجرا می شود.
- نسبت به زبان های برنامه نویسی دیگر سبک تر و سریع تر است.
- فریم ورک ها،کتابخانه ها و به صورت کلی ابزارهای بسیار زیادی را در اختیارتان قرار می دهد.
- زبان بومی مرورگر وب است و در مرورگر کاربران پردازش می شود.
- امکان ایجاد صفحات وب تعاملی و پویا را به برنامه نویسان می دهد.
- در جواب عمل کاربران، عکس العمل نشان می دهد.
نقاط ضعف جاوا اسکریپت
برخی از ضعف های این زبان برنامه نویسی عبارتند از :
- دشواری در تشخیص دلیل خطا دادن و مشکل در دیباگ کردن
- محدودیت در اجرای اسکریپت های جاوا اسکریپت با ایجاد محدودیت هایی جهت حفظ امنیت
- اجرا نشدن بر روی مرورگرهای قدیمی
- نفوذپذیری نسبت به اکسپلویت ها و عوامل مخرب
- می تواند برای اجرای کدهای مخرب در کامپیوتر کاربران استفاده شود.
- با رندر شدن متفاوت بر روی ابزارهای مختلف می تواند باعث ایجاد تناقض و نداشتن یکپارچگی شود.
ایجاد برنامههای وب و موبایل
توسعه دهندگان میتوانند از فریمورکهای مختلف جاوا اسکریپت برای توسعه و ساخت برنامههای وب و موبایل استفاده کنند. فریمورکهای جاوا اسکریپت مجموعهای از کتابخانههای جاوا اسکریپت هستند که قابلیت نوشتن کد از قبل را به توسعه دهندگان برای استفاده از ویژگیهای برنامهنویسی روزمره ارائه میدهند: به معنای واقعی کلمه یک فریمورک برای ساخت وب سایتها یا برنامههای کاربردی وب.
فریمورکهای محبوب جاوا اسکریپت React، Angular و Vue میباشند. بسیاری از شرکتها از Node.js که یک محیط runtime جاوا اسکریپت برروی موتور V8 گوگل کروم میباشد استفاده میکنند. چند نمونه از مثالهای مشهور آن: PayPal، LinkedIn، Netflix و Uber میباشد.
چه پیشزمینههایی برای یادگیری جاوا اسکریپت (Java Script) نیاز است؟
برای یادگیری جاوا اسکریپت نیاز نیست حتما برنامهنویس کارکشتهای باشید؛ اما باید با زبانهای طراحی وب پایه همچون HTML و CSS آشنایی اندکی داشته باشید. این را هم به خاطر داشته باشید که جاوا اسکریپت زبان برنامه نویسی است و بر خلاف اچتیامال و سیاساس که زبان نشانهگذاری هستند، کمی بیشتر شما را درگیر «برنامه نویسی» میکند، به همین خاطر ممکن است برای یادگیری آن کمی به صبر و حوصله و تمرین بیشتری نیاز داشته باشید.
همچنین اگر اچتیامال یا سیاساس بلد نیستید یا از یادتان رفته است، توصیه میکنیم همین حالا آموزش HTML و CSS را از طریق لینکهای زیر دنبال کنید و خود را برای شروع دوره جاوا اسکریپت آماده کنید.
دلیل یادگیری js
جاوااسکریپت یکی از زبانهای اصلی برنامه نویسی مورد نیاز برای ورود به دنیای وب است. بهخصوص که امروزه جاوااسکریپت گسترش و پیشرفت بسیار زیادی داشته و با فریمورکهای قدرتمندی همچون انگولار، ریاکت، vue، Node و … دراکثر پروژهها مورد استفاده قرار میگیرد.
ابزارها و کتابخانههای معروف جاوا اسکریپت (Java Script)
یکی از مزایای جاوا اسکریپت، فریمورکها و کتابخانههایی است که بر پایه این زبان شکل گرفتهاند. کتابخانه هر زبان برنامه نویسی، در واقع مجموعهای از دستورات آن زبان است که در قالب خلاصه و آماده برای استفاده قرار میگیرد. یکی از مشهورترین و نامآشناترین کتابخانههای جاوا اسکریپت، Jquery است. جیکوئری در واقع مجموعهای از دستورات پیچیدهی جاوااسکریپت است که بهصورت بسیار ساده و آسان در اختیار همه قرار دارد. جیکوئری این امکان را به شما میدهد که بجای کدنویسی طولانی، کدهای خود را در یک یا چند سطر خلاصه کنید با استفاده از جیکوئری میتوانید بجای کدنویسی طولانی از مزیتهای جیکوئری برای مثال این است که برای یک کار اگر باید ده خط کد جاوا اسکریپت بنویسید، با استفاده از یک متد یک خطی جیکوئِری میتوانید همان کار را با کیفیت و دقت بالا انجام دهید.
این روزها با پیشرفت جاوااسکریپت دیگر تنها یک زبان برنامه نویسی برای طراحی وبسایت و افزودن انیمیشن نیست. فریمورکها و ابزارهای زیادی با کمک جاوااسکریپت توسعه داده شداست که با آنها میتوان اپلیکیشنها یا سیستم های پیچیده و نیمه پیچیده پیاده سازی کرد. برای مثال ریاکت که توسط فیسبوک و یا angularjs که توسط گوگل توسعه داده شدهاست نام برد. با معرفی nodejs امکان اجرای جاوااسکریپت سمت سرور فراهم شد.
بهطور کلی با زبان جاوااسکریپت از سرورها تا اپلیکیشنهای موبایل تا سیستمهای وب قابل پیادهسازی هستند. ابزارهای زبان مورد بحث، این روزها بهقدری گسترده شدهاند که نمیتوانیم بدون آنها به دنیای وب فکر کنیم. از بین مشهورترین ابزارها و فریمورکهای توسعهیافته به زبان جاوااسکریپت میتوان به موارد زیر اشاره کرد:
ReactJS که بسیاری از سایتها و سرویسهای بزرگ بر پایهی این فریمورک توسعه داده شدهاند.
React Native محصول شرکت فیسبوک که به کمک آن با جاوااسکریپت میتوان برنامه موبایل نوشت.
فریم ورک AngularJs گوگل که آخرین نسخه آن angular 4 است و بسیاری از ابزارها و سرویسهای بزرگ بر پایهی آن توسعه داده شدهاند.
زبان اپن-سورس NodeJS که امکان برنامهنویسی با زبان جاوااسکریپت را در سمت سرور فراهم میکند.
نکته:
وانیلا جاوااسکریپت یا وانیلا جی اس (Vanilla JS) اصطلاحی است که به همان زبان جاوااسکریپت اطلاق میشود. در حقیقت، وانیلا جی اس هیچ فریمورک یا کتابخانه خاصی نیست. این اصطلاح بیشتر برای کسانی ساخته شدهاست که گمان میکنند برای استفاده از جاوااسکریپت، حتماً باید از کتابخانههای موجود یا فریمروک خاصی استفاده کنند.