جاوااسکریپت و جاوا در ظاهر یک شباهتهایی دارند ولی در باطن کاملاً دو تا زبان متفاوت هستند. سینتکس (نحوه نوشتن کدهای) جاوااسکریپت شبیه جاواست و ساختارهای شرطی و نامگذاریهاشون مثل همه (اصلاً دلیل اینکه اسمش رو از LiveScript به جاوااسکریپت تغییر دادن همین بود که شبیه جاوا به نظر برسه!)، اما تفاوتهاشون خیلی عمیقه.
جاوااسکریپت یک زبان خیلی آزاد و راحت هست. نیازی نیست همه متغیرها، کلاسها و متدها رو از قبل با جزئیات سختگیرانه تعریف کنی. اصلاً لازم نیست نگران عمومی (public) یا خصوصی (private) بودن کدهات باشی یا اینترفیسها رو پیادهسازی کنی. نوع دادهها (عدد، متن و...) موقع نوشتن کد اجباری نیستند.
در عوض، جاوا یک زبان کلاسمحور و بسیار سختگیره که برای امنیت بالا و سرعت زیاد طراحی شده. این سختگیری یعنی مثلاً نمیتونی یک عدد رو الکی به یک شیء تبدیل کنی یا به بخشهای ممنوعه حافظه دسترسی داشته باشی. کدهای جاوا کاملاً از کلاسها تشکیل میشن و ارثبری در اون پیچیدهتره، همین موضوع یادگیری و کار با جاوا رو نسبت به جاوااسکریپت سختتر میکنه.
در واقع جاوااسکریپت روحش رو از زبانهای پویای کوچکتری مثل HyperTalk و dBase گرفته. این زبانها به خاطر سینتکس راحتتر و دردسر کمتر برای ساخت شیءها، برای مخاطبهای خیلی وسیعتری طراحی شده بودند.
| ویژگی | جاوااسکریپت (JavaScript) | جاوا (Java) |
| مبنای طراحی | شیءگرا بدون تفاوت سختگیرانه بین انواع شیءها. ارثبری از طریق مکانیزم پروترتایپ (پیوند داخلی). میتونی ویژگیها رو خیلی سریع و هندوانهای به هر شیء اضافه کنی. | کلاسمحور. برنامهها به کلاسها و نمونهها تقسیم میشن و ارثبری فقط از طریق سلسلهمراتب کلاسهاست. نمیتونی وسط کار چیزی به کلاس اضافه کنی. |
| نوع متغیرها | نیازی به تعریف نوع متغیر نیست (پویا و راحت). | حتماً باید نوع متغیر (عدد، متن و...) مشخص باشه (ایستا و سختگیر). |
| دسترسی به هارد | به دلایل امنیتی نمیتونه خودکار روی هارد دیسک کاربر چیزی بنویسه. | میتونه روی هارد دیسک سیستم بنویسه و فایل بسازه. |
این محتوا کاملا رایگان توسط تیم کدلپر ترجمه شده و در اختیار شما کاربران عزیز قرار گرفته است، هر گونه کپی برداری برای مقاصد غیر رایگان و بدون ذکر منبع، مورد پیگیری قانونی قرار میگیرد.
ترجمه شده از منبع: https://developer.mozilla.org/en-US/docs/Web/JavaScript