جاوا اسکریپت و تاریخچه آن
جاوااسکریپت در شرکت نت اسکیپ با نام Mocha توسط شخصی به نام برندان آیک طراحی شده است.که این نام بعدها به livescript و درنهایت به javascript تغییر یافته است.برای مدت طولانی javascript در تعداد اندکی از مرورگرها کار می کرد.برای اینکه مایکروسافت ازاین قافله عقب نماند از اسکریپت اختصاصی سمت کلاینت ایجاد کرد و به علت مشکلات حقوقی آن را JScript معرفی نمود.
نت اسکیپ جاوااسکریپت رابه سازمان Ecma International که یک انجمن صنعتی برای استانداردسازی سیستمهای اطّلاعاتی و ارتباطاتی است ارسال نمود.که نتیجه استاندارد شده آن اکمااسکریپت نام گرفت.در واقع javascript نام تجاری اکما اسکریپت می باشد. آخرین ورژن آن هم با اسم ECMAScript 2017 در ژوئن 2017 منتشر شد.
جاوا اسکریپت با چه هدفی ایجاد گردید؟
- انیمیشن
با بکار آمدن javascript و بکارگیری انیمیشن ها برا ایجاد جلوه بصری زیبا در وب سایت ها تحول تازه را در این زمینه به راه انداخت.
- تغییر محتوای
یکی دیگر از اهداف بوجود امدن جاوا اسکریپت تغییر محتوای قسمتی از صفحه سایت بود. که قبل از آن برا مشاهده تغییر کوچک در صفحه باید کل صفحه از اول بارگزاری می شد. که این موضوع تجربه کاربری خوبی را به کاربر القا نمیکرد. با این حال جاوا اسکریپت این مشکل را با ajax حل کرد. بطوری که موقع تغییر محتوای یک بخش از صفحه دیگر کل صفحه از اول بارگزاری نمیشد.
- اعتبارسنجی فرم ها
یکی دیگر از اهداف ایجاد این زبان اعتبارسنجی فرم ها بود. که به کمک آن دیگر اطلاعات مربوط به هر المنت با توجه به ماهیت آن از کاربر گرفته میشد. و در صورتی که اطلاعات اشتباه از لحاظ ساختاری وارد میشد اجازه ثبت شدن را نمی داد.مثلا ما اگر برای المنتی که ورودی ان فقظ شماره بود یک متن ارسال می کردیم به ما هشدار میدهد که ورودی ما از لحاظ ساختاری صحیح نمیباشد.
جاوا اسکریپت مفسری است یاکامپایلری ؟
نحوه کارکرد مفسر و کامپایلر
کامپیوترها زبان ما انسان ها را نمی فهمند.فقط زبان خودشان را می فهمند.ما برای اینکه برنامه ای را که نوشتیم را به کامپیوتر ها بفهمانیم از مترجم ها (کامپایلر، مفسر) استفاده می کنیم.که کد ما را به کد ماشین تبدیل می کنند.
زبانهای مفسری (Interpreted)
در اینوع زبان ها کد های ما به صورت خط به خط اجرا می شوند.و به هیچ سیستم عاملی وابسته نیستند.چون به صورت همزمان و از طریق مفسر اجرا می شوند.
زبان های کامپایلری (Compiler)
در این نوع زبان ها ابتدا سورس کد ها به طور کامل ترجمه شده سپس پردازش و اجرا می شوند .فایلی که کامپایلر در اختیار ما قرار می دهد برای سیستم عامل مورد نظر ماست لکن به کدهای نوشته شده هیچ وابستگی ندارند پس زبان های کامپایلری به سیستم عامل ها وابسته هستند.
خب حالا هردوی این زبان ها مزایا ومعایب خودشان را دارند. برای مثا در بحث سرعت، زبان کامپایلری سرعتش از زبان مفسری بیشتر است چون نیاز نیست در هر بار اجرا ترجمه ما به کد ماشین انجام شود و از طرفی دیگر با توجه به اینکه منع برنامه ای که با زبان کامپایلری نوشته میشود را لازم نیست در اختیار دیگران قرار دهیم از نظر امنیت نسبت به مفسری جایگاه بالاتری دارد. در مقابل زبان مفسری بشدت از زبان کمپایلری انعطاف پذیر تر است.همچنین سرعت توسعه بالاو مدیریت خطا در مفسر ها بهتر از کامپایلر می باد.
بالاخره جاوا اسکریپت مفسری است یا کامپایلری؟
متاسفانه بسیاری از توسعه دهندگان جاوا اسکریپت را در زمره ربان های مفسری قرار می دهند در حالی که این چنین نیست. در واقع اگر می گویند یک زبان مفسری است یا کامپایلری به معروف ترین پیاده سازی آن زبان اشاره میکنند.و الا برای مثال ما میتوانیم سی پلاس پلاس مفسری (ch) ویا پایتون کامپایلری داشته باشیم.
حالا روشی که موتورهای پردازش جاوااسکریپت مثل V8 (در ادامه به شرح موتور های پردازش جاوااسکریپت خواهیم پرداخت) کد های مارا پردازش می کنند شبیه به کامپایلر است.موتور V8 با زبان ++C ساخته شده که عملا سورس مارا به کد ماشین تبدیل میکند سپس انرا اجرا می کند.ولی باز موتور V8 هیچوقت یک فایل قابل اجرا در اختیار ما قرار نمی دهد و این چیزی است که باعث می شو ما با قاطعیت نتوتنیم بگوییم جاوااسکریپت یک ریان مفسری است یا کامپایلری.
موتور های پردازش جاوا اسکریپت
لیستی از پروژه های معروف که موتور جاوا اسکریپت را پیاده سازی کردند.
- V8 – اوپن سورس, توسعه داده شده توسط گوگل, نوشته شده با ++c
- Rhino – توسط سازمان موزیلا مدیریت میشه, اوپن سورس, به طور کامل با جاوا نوشته شده
- SpiderMonkey – اولین موتور جاوا اسکریپت, که قبل ها توسط نت اسکیپ استفاده میشده و الان هم فایرفاکس
- JavascriptCore – اوپن سورس, به اسم Nitro معرفی شده و توسط اپل توسعه داده میشه برای مرورگر سافاری
- KJS – موتور KDE که در حقیقت توسط Harri Porten برای یه پروژه KDE به نام مرورگر Konqueror توسعه داده شده
- (Chakra (JScript9 – اینترنت اکسپلورر
- (Chakra (JavaScript – مایکروسافت اج
- Nashron – اوپن سورس که قسمتی از OpenJDK هست که با Oracle Java و Tool Group نوشته شده
- JerryScript – یه موتور سبک برای اینترنت اشیا.
مهمترین این موتور ها،موتور V8 می باشد.که توسط گوگل با سی پلاس پلاس نوشته شده و داخل کروم و Node JS استفاده می شود.این موتور برای افزایش کارایی اجرایی جاوااسکریپت در داخل مرروگر ساخته شده است.که برای افزایش سرعت موتور V8 کد های جاوا اسکریپت راتبدیل به کدهای ماشین بهینه تری میکند.
معرفی اجمالی دوره
در دوره آموزش جاوا اسکریپت از مقدماتی تا پیشرفته ابتدا به خواستگاه جاوا اسکریپت تاریخچه آن از زمان ارائه آن تا اکنون را بررسی خواهیم کرد . بعد ویژگی هایی که جاوا اسکریپت را یکی از بهترین و محبوب ترین زبان های برنامه نویسی دنیا کرده است . مقایسه درآمد برنامه نویسان جاوا اسکریپت دردنیا با دیگرزبان های برنامه نویسی و چندین مورد دیگر را بررسی میکنیم .
مباحث دوره مقدماتی
از جمله مفاهیمی که به شرح و یادگیری آنها خواهیم پرداخت عبارت اند از :
- تاریخچه و ویژگیهای جاوا اسکریپت< /li>
- ساختار اصلی کد ها
- انواع متغییر ها
- عملگرهای ریاضی انتسابی مقایسه ای و منطقی
- توابع
- حلقه ها
- ابجکت ها
- رویدادها
- کار با متن ها
- کار با تاریخ وزمان
- محدوده ها
- و…..
و در آخر با استفاده از مفاهیمی که یاد گرفتیم به ساخت پروژه ماشین حساب خواهیم پرداخت . تا عملا نحوه کاربرد مواردی که آموزش گرفته ایم. را در پروژه های واقعی استفاده نماییم.با آموزش جاوا اسکریپت با ما باشید. تا جاوا اسکریپت را هرچه اصولی تر و کاملا تر یاد بگیرید .ما مباحثی را که در قسمت بالا ذکر کردیم . را با سعی و دقت زیاد گرد آوری کرده ایم . تا شما عزیزان این زبان پر کاربرد و میشه گفت پر طرفدار و از طرفی دارای بازار کار زیاد را یاد بگیرید .و آینده خود به نوعی تضمین کنید .
مباحث دوره متوسطه
در دوره متوسطه آموزش جاوا اسکریپت به یادگیری مفاهیم زیر خواهیم پرداخت..
- اشاره گر this و شرایط مختلف آن
- معرفی DOM و پیمایش در Element ها
- در جستجوی DOM ها!
- انوع Node و ویژگیهای آنها و استفاده از دادهها در DOM
- کار با attribute ها در DOM
- ویرایش HTML صفحه با استفاده از امکانات DOM
- کلاسها و استایلها در DOM
- جغرافیای المنتها در صفحه
- نقاط در DOM
- ساخت یک صفحه پارالاکس با استفاده از جاوا اسکریپت
- مدل BOM
- مفهوم همگام و ناهمگام و ترد – مقدماتی
- json و ایجکس
- ….
مباحث دوره پیشرفته
در دوره پیشرفته آموزش جاوا اسکریپت به یادگیری مفاهیم زیر خواهیم پرداخت..
- ریجکس و استفاده از قدرت آن در جاوا اسکریپت
- انمیشنها در جاوا اسکریپت
- مدیریت خطاها در جاوا اسکریپت
- اشیا (آبجکتها) در جاوا اسکریپت – پیشرفته
- توابع در جاوا اسکریپت – پیشرفته
- آشنایی با مفهوم شی گرایی
- سازندهها گام نخست در شی گرایی جاوا اسکریپت
- شی گرایی در جاوا اسکریپت – پرتوتایپها
- کلاس ها قسمت اول
- کلاس ها قسمت دوم
- پردازش همگام و غیرهمگام در جاوا اسکریپت (sync & async)
- Bubbling و Capturing
- کار با فرمها و ایجاد یک فرم ولیدیتور
- ذخیره سازی دادهها در مرورگر
- …
جاوا اسکریپت یکی از قدرتمندترین و انعطاف پذیرترین زبان های برنامه نویسی وب امروزی می باشد. برای کسانی طراحی و توسعه وب را در پیش میگیرند. یکی از بهترین گزینه ها آموزش برنامه نویسی جاوا اسکریپت میباشد.
برای نصب javacsript به محیط های خاصی نیاز ندارید.برای مثال تا به امروز هر مرورگری را که می شناسید. مثل Chrome ، Mozilla Firefox ، Safari و… همه اینا javascript را پشتیبانی می کنند.این زبان به شما کمک میکند تا صفحات وب سریع زیبا و دلنشین ایجاد کنید. و بهترین حس را به کاربران خود ارائه دهید.
با فریم ورک (frameworks)هایی که javascript دارد. از جمله Angular ,React , jQuery ,Node.js شما می توانید هم در زمینه فرانت اند(front-end) و هم در بخش بک اند(back-end) فعالیت کنید. استفاده از javascript هم اکنون برای توسعه برنامه های موبایل ،دسک تاپ و بازی ها گسترش یافته است. برای همین برای کسانی که در javascript سر رشته دارند. در بازار کار شغل های زیاد با دستمزد های بالایی وجود دارد.
در پایان…
بعد از اتمام ین سه دوره که به تسلط قابل قبولی در بحث javascript رسیدیم سراغ فریم ورک های javascript از جمله React , Node.js خواهیم رفت. که لازمه یادگیری اسان انها نیاز به تسلط مطلوب در جاوا اسکریپت را دارد.که ما آنها را در سه دوره به شما آموزش خواهیم داشت. تا در این دوره های جدید به مشکل برنخوریم.
از شما عزیزان خواهشمندیم تا هر انتقاد و یا پشنهادی بابت آموزش و یا مشکلات موجود در پروژه داشته باشید . برای ما بفرستید . تا ما با بررسی پیشنهادات شما پروژه ایی کامل و جامع تهیه کنیم .
دیدگاهتان را بنویسید