SlideShare a Scribd company logo
1 of 91
Download to read offline
‫وب‬ ‫بر‬ ‫مبتنی‬ ‫نویسی‬ ‫برنامه‬
Web Programming
‫خدا‬ ‫نام‬ ‫به‬
1
JavaScript
‫اسکریپت‬ ‫جاوا‬
2
‫سه‬‫مولفه‬‫اصلی‬‫که‬‫برای‬‫ایجاد‬‫صفحات‬‫وب‬‫امروزی‬‫به‬‫کار‬‫روند‬‫می‬HTML،CSS‫و‬JavaScript‫هستند‬.
HTML‫در‬‫واقع‬‫محتوای‬‫صفحه‬‫وب‬‫را‬‫تعریف‬‫کند‬‫می‬‫که‬‫شامل‬،‫متن‬‫گرافیک‬‫و‬…‫است‬.
CSS‫برای‬‫زیبایی‬‫ظاهر‬‫صفحه‬‫به‬‫کار‬‫رود‬‫می‬‫و‬‫همۀ‬‫صفحاتی‬‫که‬‫رنگ‬‫و‬‫فونت‬‫زیبایشان‬‫شما‬‫را‬‫محصور‬‫خود‬‫کند‬‫می‬‫از‬‫ا‬‫ین‬
‫تکنولوژی‬‫استفاده‬‫اند‬‫کرده‬.
‫اگر‬‫بخواهید‬‫ها‬‫مولفه‬‫و‬‫اجزای‬‫پویا‬‫در‬‫صفحه‬‫داشته‬‫باشید‬‫یا‬‫عناصر‬‫موجود‬‫در‬‫صفحه‬‫را‬‫به‬‫ای‬‫گونه‬‫قابل‬‫ریزی‬‫برنامه‬‫کنی‬،‫د‬‫جاوا‬
‫اسکریپت‬‫این‬‫توانایی‬‫را‬‫در‬‫اختیارتان‬‫خواهد‬‫گذاشت‬.
‫اسکریپت‬ ‫جاوا‬
3
‫اسکریپت‬ ‫جاوا‬ ‫تاریخچه‬
4
‫توسعه‬‫جاوا‬‫اسکریپت‬‫در‬‫سال‬۱۹۹۵‫و‬‫توسط‬‫گروه‬Netscape‫شروع‬‫شد‬.‫این‬‫افراد‬‫در‬‫واقع‬
‫همان‬‫سازندگان‬‫مرورگر‬Netscape‫بودند‬.‫از‬‫آنجا‬‫که‬‫در‬‫آن‬‫زمان‬‫جاوا‬‫نیز‬‫زبان‬‫محبوب‬‫و‬
‫داغی‬‫برای‬‫وب‬‫به‬‫شمار‬،‫رفت‬‫می‬‫تصمیم‬‫گرفتند‬syntax‫این‬‫زبان‬‫را‬‫به‬‫جاوا‬‫نزدیک‬‫کنند‬.
‫نتیجه‬‫کار‬‫جاوا‬‫اسکریپت‬‫بود‬‫که‬‫شما‬Scheme))‫و‬‫ویژگی‬‫گرایی‬‫شی‬‫زبان‬SmallTalk‫و‬
‫نحو‬‫جاوا‬‫را‬‫به‬‫ارث‬‫برده‬‫است‬.‫اولین‬‫نسخه‬‫از‬‫این‬‫زبان‬‫که‬‫در‬‫ماه‬‫مه‬۱۹۹۵‫منتشر‬‫شد‬
Mocha‫نام‬‫گرفت‬.‫سپس‬‫در‬‫سپتامبر‬۱۹۹۵‫به‬LiveScript‫تغییر‬‫کرد‬‫و‬‫نهایتا‬‫در‬‫دسامبر‬
‫همان‬‫سال‬‫نام‬‫نهایی‬‫جاوا‬‫اسکریپت‬‫برای‬‫آن‬‫در‬‫نظر‬‫گرفته‬‫شد‬.
Influences
5
‫توسط‬ ‫سازی‬ ‫استاندار‬ECMA
6
‫در‬‫سال‬۱۹۹۷‫اولین‬‫نسخه‬‫رسمی‬‫این‬‫زبان‬‫که‬‫توسط‬‫سازمان‬‫جهانی‬ECMA‫استاندارد‬‫شد‬
‫به‬‫عنوان‬ECMA-262‫منتشر‬‫شد‬.
 ECMAScript is the official name for JavaScript. A new name
became necessary because there is a trademark on Java (held
originally by Sun, now by Oracle). At the moment, Mozilla is one
of the few companies allowed to officially use the name
JavaScript because it received a license long ago.
ECMAScript6
7
‫اکما‬‫اسکریپت‬ES6‫در‬،‫واقع‬‫ورژن‬‫ششم‬‫زبان‬‫جاوا‬‫اسکریپت‬‫است‬‫که‬‫به‬‫آن‬
ECMAScript 2015‫نیز‬‫می‬‫گویند‬.(‫زمان‬‫استاندارد‬‫شدن‬‫آن‬‫سال‬۲۰۱۵‫بود‬‫و‬‫سازمان‬
‫المللی‬‫بین‬Ecma International‫آن‬‫را‬‫استاندارد‬‫سازی‬‫و‬‫پیاده‬‫سازی‬‫می‬‫کند‬)‫و‬‫از‬‫زمان‬
‫ارائه‬‫جاوا‬،‫اسکریپت‬‫بزرگ‬‫ترین‬‫تغییر‬‫و‬‫تحول‬‫آن‬‫محسوب‬‫می‬‫شود‬.‫با‬ES6‫مواردی‬‫مانند‬:
‫کالس‬،‫ها‬‫برنامه‬‫نویسی‬،‫تابعی‬‫ماژول‬‫ها‬‫اضافه‬‫شده‬‫است‬.
‫کند؟‬‫می‬ ‫کار‬ ‫چگونه‬ ‫اسکریپت‬ ‫جاوا‬
8
،‫مرورگر‬‫صفحه‬‫را‬‫بارگذاری‬‫کند‬‫می‬‫و‬‫پس‬‫از‬‫ترجمه‬‫کدهای‬HTML،‫از‬‫متن‬‫به‬‫دست‬‫آمده‬
‫چیزی‬‫به‬‫نام‬Document Object Model‫یا‬‫مدل‬‫گرا‬‫شی‬‫متن‬‫برنامه‬‫و‬‫به‬‫اختصار‬
DOM‫را‬‫سازد‬‫می‬.DOM‫یک‬‫نمایش‬‫زنده‬‫از‬‫صفحه‬‫وب‬‫را‬‫به‬‫کد‬‫جاوا‬‫اسکریپت‬‫شما‬‫ارائه‬
‫دهد‬‫می‬.‫در‬‫این‬‫مرحله‬‫کد‬‫شما‬‫تواند‬‫می‬‫های‬‫روزرسانی‬‫به‬‫مورد‬‫نیاز‬‫برای‬DOM‫را‬‫انجام‬‫داده‬‫و‬
‫بالفاصله‬‫به‬‫کاربر‬‫ارائه‬‫دهد‬.
9
10
‫اسکریپت‬ ‫جاوا‬ ‫کاربرد‬
11
‫کاری‬‫که‬‫مرورگر‬‫تواند‬‫می‬‫توسط‬‫جاوا‬‫اسکریپت‬‫انجام‬‫دهد‬‫این‬‫است‬‫که‬‫به‬‫شما‬‫این‬‫امکان‬‫را‬
‫دهد‬‫می‬‫کد‬‫خود‬‫را‬‫به‬‫ای‬‫گونه‬‫بنویسید‬‫که‬‫به‬‫رویدادهای‬‫انجام‬‫گرفته‬‫در‬‫سمت‬‫کاربر‬‫مانن‬‫د‬
‫حرکت‬‫دادن‬،‫موس‬‫کلیک‬‫بر‬‫روی‬‫یک‬‫دکمه‬‫و‬…‫پاسخگو‬‫باشد‬.‫با‬‫وجود‬‫چنین‬‫امکاناتی‬‫شما‬
‫توانید‬‫می‬‫به‬‫راحتی‬‫های‬‫برنامه‬‫کوچک‬‫و‬‫بسیار‬‫کاربردی‬‫برای‬‫اهدافی‬‫که‬‫در‬‫نظر‬‫دارید‬‫ب‬‫نویسید‬.
‫مخرب‬ ‫کدهای‬‫اسکریپت‬ ‫جاوا‬
12
‫با‬‫توجه‬‫به‬‫های‬‫قابلیت‬‫بیشماری‬‫که‬‫جاوا‬‫اسکریپت‬،‫دارد‬‫طبیعی‬‫است‬‫که‬‫افراد‬‫سودجو‬‫سعی‬
‫کنند‬‫با‬‫استفاده‬‫از‬‫آن‬‫های‬‫برنامه‬‫مخرب‬‫مانند‬،‫ها‬‫ویروس‬‫بدافزارها‬‫و‬…‫را‬‫بنویسند‬‫و‬‫امنی‬‫ت‬
‫کاربران‬‫را‬‫به‬‫خطر‬‫بیاندازند‬.‫به‬‫چند‬‫نمونه‬‫از‬‫کارهایی‬‫که‬‫احتماال‬‫شما‬‫هم‬‫اید‬‫شنیده‬‫یا‬‫ق‬‫ربانی‬‫آن‬
‫اید‬‫شده‬‫اشاره‬‫کنیم‬‫می‬:‫سرقت‬‫اطالعات‬،‫ها‬‫کوکی‬‫رمزهای‬‫عبور‬‫و‬‫های‬‫کارت‬‫اعتباری‬‫و‬‫همچنی‬‫ن‬
‫ارسال‬‫های‬‫ویروس‬‫خطرناک‬‫به‬‫کامپیوتر‬‫شخصی‬‫شما‬.
Speaking JavaScript
13
‫کدهای‬ ‫قرارگیری‬ ‫محل‬JavaScript
14
‫کدهای‬JavaScript‫در‬‫صفحه‬HTML‫باید‬‫بین‬‫تگهای‬<script> Code </script>
‫قرار‬‫داده‬‫شود‬.‫کدهای‬JavaScript‫را‬‫می‬‫توان‬‫در‬‫بدنه‬‫صفحه‬HTML‫بین‬‫تگهای‬‫باز‬‫و‬‫بسته‬
body‫و‬‫یا‬‫در‬‫قسمت‬head‫صفحه‬‫قرار‬‫داد‬.
‫نکته‬
15
‫ممکن‬‫است‬‫برای‬‫تگ‬<script type="text/javascript">‫خصوصیت‬type‫را‬‫تنظیم‬
‫کنیم‬.‫در‬HTML5‫نیاز‬‫به‬‫انجام‬‫این‬‫کار‬،‫نیست‬‫چون‬‫در‬‫تمام‬‫مرورگرها‬‫اسکریپت‬‫پیشفرض‬،
JavaScript‫است‬.
‫قسمت‬ ‫در‬ ‫اسکریپت‬ ‫جاوا‬ ‫کد‬ ‫مثال‬head
16
‫مثال‬‫جاوا‬ ‫کد‬‫قسمت‬ ‫در‬ ‫اسکریپت‬body
17
‫نکته‬
18
‫بهتر‬‫است‬‫کدهای‬‫جاوا‬‫اسکریپت‬‫در‬‫انتهای‬‫تگ‬body‫آورده‬‫شوند‬.
‫فایل‬ ‫یک‬ ‫از‬ ‫استفاده‬JavaScript‫خارجی‬External JavaScript
19
‫کدهای‬JavaScript‫را‬‫همچنین‬‫می‬‫توان‬‫در‬‫یک‬‫فایل‬‫خارجی‬‫قرار‬‫داد‬.‫این‬‫فایل‬‫ها‬‫را‬‫باید‬
‫با‬‫فرمت‬.js‫ذخیره‬‫نمود‬.‫توجه‬‫کنید‬‫که‬‫اسکریبت‬‫خارجی‬‫نمی‬‫تواند‬‫شامل‬‫تگ‬‫های‬‫باز‬‫و‬‫ب‬‫سته‬
<script>‫و‬</script>‫باشد‬.
‫به‬ ‫خارجی‬ ‫اسکریپت‬ ‫اتصال‬ ‫نحوه‬HTML
20
‫برای‬‫استفاه‬‫از‬‫یک‬‫فایل‬‫اسکریبت‬‫خارجی‬‫در‬‫صفحه‬HTML،‫باید‬‫خصوصیت‬src‫تگ‬
<script>‫را‬‫با‬‫آدرس‬،‫فایل‬‫تنظیم‬‫کنید‬:
External References
21
‫صف‬ ‫یک‬ ‫به‬ ‫خارجی‬ ‫اسکریپت‬ ‫فایل‬ ‫چندین‬ ‫کردن‬ ‫اضافه‬‫حه‬
22
‫برای‬‫اضافه‬‫کردن‬‫چندین‬‫فایل‬‫اسکریپت‬‫خارجی‬‫به‬‫یک‬‫صفحه‬html‫باید‬‫هر‬‫کدام‬‫را‬‫جداگانه‬
‫باید‬‫تگ‬<script>‫به‬‫صفحه‬‫معرفی‬‫کرد‬.
‫خارجی‬ ‫اسکریپت‬ ‫از‬ ‫استفاده‬ ‫مزایای‬
23
‫جدا‬‫سازی‬‫کدهای‬JavaScript‫از‬‫کدهای‬HTML
‫افزایش‬‫خوانایی‬‫برنامه‬‫و‬‫قابلیت‬‫نگهداری‬‫برنامه‬
‫فایل‬‫های‬‫جاوا‬‫اسکیپت‬‫کش‬‫شده‬(Cache)‫سرعت‬‫لود‬‫صفحات‬‫را‬‫باالتر‬‫می‬‫برد‬.
‫اسکریپت‬ ‫جاوا‬ ‫در‬ ‫نمایش‬ ‫امکانات‬
24
‫جاوا‬‫اسکریپت‬‫می‬‫تواند‬‫داده‬‫ها‬‫را‬‫به‬‫روش‬‫های‬‫مختلفی‬‫نمایش‬‫دهد‬:
‫نوشتن‬‫در‬‫یک‬‫المان‬html‫با‬‫استفاده‬‫از‬‫دستور‬innerHTML
‫نوشتن‬‫در‬‫خروجی‬‫سند‬html‫با‬‫دستور‬document.write()
‫نوشتن‬‫در‬‫پنجره‬‫های‬‫هشدار‬‫با‬‫دستور‬window.alert()
‫نوشتن‬‫در‬‫داخل‬‫کنسول‬‫مرورگر‬‫با‬‫دستور‬console.log()
‫از‬ ‫استفاده‬innerHTML
25
‫برای‬‫دستیابی‬‫به‬‫یک‬‫عنصر‬html‫می‬‫توانید‬‫از‬‫متد‬
document.getElementById(id)‫در‬‫جاوا‬‫اسکریپت‬‫استفاده‬‫کنید‬.‫خصوصیت‬id
‫عنصر‬‫مورد‬‫نظر‬‫را‬‫تعیین‬‫می‬‫کند‬.‫خصوصیت‬innerHTML‫محتوای‬‫مورد‬‫نظر‬‫که‬‫قرار‬‫است‬
‫در‬‫المان‬‫تعیین‬‫شده‬‫قرار‬‫گیرد‬‫را‬‫مشخص‬‫می‬‫کند‬.
‫مثال‬
26
‫نکته‬
27
‫استفاده‬‫از‬‫خاصیت‬innerHTML‫برای‬‫تغییر‬‫داده‬‫هایی‬‫که‬‫یک‬‫عنصر‬html‫نمایش‬‫می‬
،‫دهد‬‫روش‬‫رایجی‬‫می‬‫باشد‬.
‫از‬ ‫استفاده‬document.write()
28
‫نکته‬
29
‫استفاده‬‫از‬document.write()‫بعد‬‫از‬‫اینکه‬‫سند‬html‫به‬‫صورت‬‫کامل‬‫لود‬‫شده‬،‫باشد‬
‫تمام‬‫عناصر‬‫موجود‬‫در‬‫صفحه‬‫را‬‫از‬‫بین‬‫می‬‫برد‬.
‫نکته‬
30
‫متد‬document.write()‫تنها‬‫باید‬‫برای‬‫تست‬‫کردن‬‫بکار‬‫رود‬.
‫از‬ ‫استفاده‬window.alert()
31
‫متد‬ ‫از‬ ‫استفاده‬console.log()
32
‫به‬‫منظور‬‫اشکال‬‫زدایی‬(debugging)‫می‬‫توان‬‫از‬‫متد‬console.log()‫برای‬‫نمایش‬‫داده‬
‫ها‬‫استفاده‬‫کرد‬.
‫مثال‬
33
‫بزرگ‬ ‫و‬ ‫کوچک‬ ‫حروف‬ ‫به‬ ‫حساس‬
34
‫کدهای‬JavaScript‫به‬‫حروف‬‫کوچک‬‫و‬‫بزرگ‬‫حساس‬‫است‬Case Sensitive)).
Comments
35
‫توضیحات‬‫تک‬‫خطی‬(Single Line Comments)
‫توضیحات‬‫چند‬‫خطی‬(Multiple Lines Comments)
Semicolons
36
‫به‬‫طور‬‫معمول‬‫در‬‫پایان‬‫هر‬‫دستور‬‫قابل‬،‫اجرا‬‫یک‬‫سمیکالن‬(;)‫اضافه‬‫می‬‫کنیم‬.‫براساس‬
‫استانداردهای‬JavaScript،‫قرار‬‫دادن‬،‫سمیکالن‬‫اختیاری‬‫است‬‫و‬‫مرورگر‬‫فرض‬‫می‬‫کند‬‫که‬
‫آخر‬،‫خط‬‫انتهای‬‫دستور‬‫است‬.‫به‬‫همین‬‫خاطر‬‫در‬‫اغلب‬‫مثال‬‫ها‬‫سمیکالن‬‫را‬‫در‬‫آخر‬‫خط‬‫نمی‬
‫بینید‬.‫استفاده‬‫از‬،‫سمیکالن‬‫این‬‫امکان‬‫را‬‫به‬‫شما‬‫می‬‫دهد‬‫که‬‫چندین‬‫دستور‬‫را‬‫در‬‫یک‬‫خ‬‫ط‬
‫بنویسید‬.
‫نکته‬
37
‫پایان‬‫دادن‬‫دستورات‬‫با‬semicolons‫الزامی‬‫نیست‬‫ولی‬‫توصیه‬‫می‬‫شود‬‫که‬‫در‬‫پایان‬
‫دستورات‬semicolons‫را‬‫قرار‬‫دهید‬.
‫اسکریپت‬ ‫جاوا‬ ‫در‬ ‫مقادیر‬JavaScript Values
38
‫در‬‫جاوا‬‫اسکریپت‬‫دو‬‫نوع‬‫از‬‫مقادیر‬‫وجود‬‫دارد‬.‫یکی‬‫مقادیر‬‫ثابت‬(Fixed values)‫که‬‫لیترال‬
(literals)‫نامیده‬‫می‬‫شوند‬‫و‬‫دیگری‬‫مقادیر‬‫متغیر‬(variable values)‫که‬‫متغیر‬
(variable values)‫نامیده‬‫می‬‫شوند‬.
‫متغیر‬JavaScript Variables
39
‫متغیرها‬‫برای‬‫ذخیره‬‫مقادیر‬‫داده‬‫ها‬‫بکار‬‫می‬‫روند‬.‫در‬‫جاوا‬‫اسکریپت‬‫متغیر‬‫با‬‫کلمه‬‫کلی‬‫دی‬var
‫اعالن‬(declare)‫می‬‫شود‬.
‫کلیدی‬ ‫کلمه‬let
40
‫در‬ECMAScript6‫کلمه‬‫کلیدی‬let‫برای‬‫تعریف‬‫متغیر‬‫معرفی‬‫شده‬‫است‬.‫متغیری‬‫که‬‫ب‬‫ا‬
‫کلمه‬‫کلیدی‬let‫اعالن‬،‫شود‬‫تنها‬‫در‬‫بلوک‬‫تعریف‬‫شده‬‫قابل‬‫دستیابی‬‫می‬‫باشد‬(Block
Scope).‫تا‬‫قبل‬‫از‬ES6‫تنها‬‫دو‬‫نوع‬‫حوزه‬‫متغیر‬‫وجود‬‫داشت‬‫که‬‫عبارت‬‫از‬Global
Scope‫و‬Function Scope.
Global Scope
41
‫متغیرهای‬Global‫از‬‫همه‬‫جای‬‫برنامه‬‫قابل‬‫دسترسی‬‫هستند‬.
Function Scope
42
‫متغیرهای‬Local‫تنها‬‫درون‬‫تابعی‬‫که‬‫اعالن‬‫می‬‫شوند‬‫قابل‬‫دسترسی‬‫هستند‬.
Block Scope
43
‫متغیرهایی‬‫که‬‫با‬‫کلمه‬‫کلیدی‬var‫اعالن‬‫شوند‬‫نمی‬‫توانند‬Block Scope‫داشته‬‫باشند‬.‫این‬
‫متغیرهای‬‫که‬‫درون‬‫یک‬‫بلوک‬{}‫تعریف‬‫شوند‬‫خارج‬‫از‬‫بلوک‬‫قابل‬‫دستیابی‬‫هستند‬.‫متغیر‬‫های‬
‫که‬‫با‬‫کلمه‬‫کلیدی‬let‫تعریف‬‫شوند‬‫می‬‫توانند‬Block Scope‫باشند‬.‫این‬‫متغیرها‬‫خارج‬‫از‬
‫بلوک‬}{‫قابل‬‫دستیابی‬‫نمی‬‫باشند‬.
‫متغیر‬ ‫مجدد‬ ‫اعالن‬Redeclaring Variables
44
‫متغیر‬ ‫مجدد‬ ‫اعالن‬Re-Declaring Variables
45
‫ها‬ ‫شناسه‬Identifiers
46
‫متغیرهای‬‫جاوا‬‫اسکریپت‬‫باید‬‫با‬‫نام‬‫های‬‫یکتا‬‫شناسایی‬‫شوند‬.‫این‬‫نام‬‫های‬‫یکتا‬‫شن‬‫اسه‬
(identifiers)‫نام‬‫دارند‬.‫قواعد‬‫نام‬‫گذاری‬‫شناسه‬‫ها‬‫به‬‫صورت‬‫زیر‬‫است‬:
‫نام‬‫شناسه‬‫ها‬‫می‬‫تواند‬‫حاوی‬،‫حروف‬‫اعداد‬‫و‬‫کاراکترهای‬_(underscore)‫و‬&(dollar)‫باشد‬.
‫نام‬‫شناسه‬‫حتما‬‫باید‬‫با‬‫حرف‬‫شروع‬‫شود‬.
‫نام‬‫شناسه‬‫می‬‫تواند‬‫با‬‫عالمت‬&‫و‬_‫نیز‬‫شروع‬‫شود‬‫ولی‬‫این‬‫کار‬‫توصیه‬‫نمی‬‫شود‬.
‫نام‬‫شناسه‬‫ها‬‫نسبت‬‫به‬‫حروف‬‫کوچک‬‫و‬‫بزرگ‬‫حساس‬‫است‬.
‫از‬‫کلمات‬‫رزرو‬‫شده‬‫نباید‬‫به‬‫عنوان‬‫نام‬‫شناسه‬‫استفاده‬‫کرد‬.
‫کلیدی‬ ‫کلمه‬ ‫با‬ ‫ثابت‬ ‫تعریف‬Const
47
‫در‬ES6‫کلمه‬‫کلیدی‬const‫برای‬‫تعریف‬‫ثابت‬‫معرفی‬‫شده‬‫است‬.‫مقدار‬‫ثابت‬‫در‬‫طول‬‫برن‬‫امه‬
‫قابل‬‫تغییر‬‫نمی‬‫باشد‬.
‫کلیدی‬ ‫کلمه‬ ‫با‬ ‫ثابت‬ ‫تعریف‬Const
48
‫مقدار‬‫ثابت‬‫را‬‫باید‬‫در‬‫هنگام‬‫اعالن‬‫مقدارش‬‫را‬‫مشخص‬‫نمود‬.
‫داده‬ ‫های‬ ‫نوع‬Data Types
49
‫نوع‬‫عددی‬(numbers)
‫نوع‬‫رشته‬‫ای‬(strings)
objects
Booleans
JavaScript Types are Dynamic
50
‫جاوا‬‫اسکریپت‬‫نوع‬‫های‬‫داده‬‫دینامیک‬‫دارد‬‫به‬‫این‬‫معنی‬‫که‬‫متغیرها‬‫می‬‫توانند‬‫نوع‬‫های‬‫م‬‫ختلف‬
‫را‬‫نگه‬‫دارند‬.
‫داده‬ ‫نوع‬Boolean
51
‫ای‬ ‫رشته‬ ‫داده‬ ‫نوع‬
52
‫نوع‬‫داده‬‫رشته‬‫ای‬‫برای‬‫ذخیره‬‫و‬‫مدیریت‬‫متن‬‫بکار‬‫می‬‫رود‬.
‫رشته‬ ‫طول‬ ‫آوردن‬ ‫دست‬ ‫به‬
53
‫برای‬‫به‬‫دست‬‫آوردن‬‫طول‬‫رشته‬‫می‬‫توان‬‫از‬‫تابع‬length‫استفاده‬‫کرد‬.
‫رشته‬ ‫روی‬ ‫بر‬ ‫اعمال‬ ‫قابل‬ ‫متدهای‬
54
 length
 indexOf()
‫رشته‬ ‫روی‬ ‫بر‬ ‫اعمال‬ ‫قابل‬ ‫متدهای‬
55
 search()
‫نکته‬
56
‫آرایه‬Arrays
57
‫عناصر‬‫آرایه‬‫داخل‬[ ]‫نوشته‬‫می‬‫شوند‬‫و‬‫با‬‫کاما‬‫از‬‫یکدیگر‬‫جدا‬‫می‬‫شوند‬.
58
‫عملگرها‬
Operators
‫عملگرها‬Operators
59
Arithmetic Operators
Assignment Operators
String Operators
Comparison Operators
Logical Operators
Type Operators
‫محاسباتی‬ ‫عملگرهای‬Arithmetic
60
‫عملگرهای‬‫ریاضی‬‫بر‬‫روی‬‫اعداد‬‫اجرا‬‫می‬‫شوند‬.
‫مثال‬
61
‫تخصیص‬ ‫عملگرهای‬Assignment
62
‫مثال‬
63
‫ای‬ ‫رشته‬ ‫عملگرهای‬String
64
‫عملگر‬+‫برای‬‫الحاق‬‫دو‬‫رشته‬‫به‬‫یکدیگر‬‫بکارمی‬‫رود‬.
‫ای‬ ‫مقایسه‬ ‫عملگرهای‬Comparison
65
‫مثال‬
66
‫منطقی‬ ‫عملگرهای‬Logical
67
‫مثال‬
68
69
‫توابع‬
Function
‫تابع‬
70
‫تابع‬‫یک‬‫بلوکی‬‫از‬‫کد‬‫می‬‫باشد‬‫که‬‫برای‬‫انجام‬‫یک‬‫وظیفه‬‫خاص‬‫ایجاد‬‫می‬‫شود‬.‫در‬‫جاوا‬‫اس‬‫کریپت‬
‫تابع‬‫زمانی‬‫اجرا‬‫می‬‫شود‬‫که‬‫توسط‬‫شی‬‫دیگر‬‫فراخوانی‬(Invoke or Call)‫شود‬.
‫تعریف‬ ‫نحوه‬‫تابع‬
71
‫نوشتن‬‫تابع‬‫با‬‫کلمه‬‫کلیدی‬function‫شروع‬‫می‬،‫شود‬‫سپس‬‫نام‬‫تابع‬‫و‬‫بعد‬‫از‬‫آن‬‫عالمت‬)(
‫آورده‬‫می‬‫شود‬.‫کد‬‫بدنه‬‫تابع‬‫درون‬‫بلوک‬{}‫قرار‬‫می‬‫گیرد‬.‫نام‬‫تابع‬‫از‬‫قوانین‬‫نام‬‫گذاری‬‫شناسه‬
‫ها‬‫تبعیت‬‫می‬‫کند‬.‫تابع‬‫می‬‫تواند‬‫دارای‬‫مقداری‬‫به‬‫عنوان‬‫ورودی‬‫باشد‬‫که‬‫به‬‫آن‬‫پارامتر‬‫گ‬‫فته‬‫می‬
‫شود‬.‫لیست‬‫پارامترهای‬‫تابع‬‫درون‬‫پرانتز‬‫مشخص‬‫می‬‫شود‬.
‫تابع‬ ‫فراخوانی‬Function Invocation
72
‫کدهای‬‫داخل‬‫بلوک‬‫تابع‬‫زمانی‬‫که‬‫تابع‬‫فراخوانی‬‫می‬،‫شود‬‫اجرا‬‫می‬‫گردد‬.‫فراخوانی‬‫تابع‬‫م‬‫ی‬
‫تواند‬‫هنگامی‬‫روی‬‫دهد‬‫که‬:
‫یک‬‫رویدادی‬‫اتفاق‬‫می‬‫افتد‬(ً‫ال‬‫مث‬‫کاربر‬‫دکمه‬‫ای‬‫را‬‫کلیک‬‫می‬‫کند‬)
‫دستوری‬‫در‬،‫برنامه‬‫تابع‬‫را‬‫فراخوانی‬‫کند‬
‫خود‬‫تابع‬‫خودش‬‫را‬‫فراخوانی‬‫کند‬(self invoked)
‫تابع‬ ‫برگشتی‬ ‫مقدار‬Function Return
73
‫تابع‬‫می‬‫تواند‬‫پس‬‫از‬‫اجرای‬،‫کارش‬‫مقداری‬‫را‬‫به‬‫شی‬‫که‬‫آن‬‫را‬‫فراخوانی‬‫کرده‬‫بود‬‫برگشت‬‫دهد‬.
‫مقدار‬‫برگشتی‬‫تابع‬‫با‬‫کلمه‬‫کلیدی‬return‫مشخص‬‫می‬‫شود‬.
‫مثال‬
74
‫تابع‬ ‫از‬ ‫استفاده‬ ‫دالیل‬
75
‫استفاده‬‫مجدد‬‫از‬‫کد‬(reuse code)
‫کد‬‫یک‬‫بار‬‫نوشته‬‫می‬‫شود‬‫ولی‬‫می‬‫تواند‬‫به‬‫دفعات‬‫مورد‬‫استفاده‬‫قرار‬‫گیرد‬.
76
Objects
‫واقعی‬ ‫دنیای‬ ‫اشیای‬Real Life Objects
77
‫در‬‫دنیای‬‫واقعی‬‫اشیا‬‫دارای‬‫خاصیت‬(properties)‫و‬‫متدهایی‬(methods)‫می‬‫باشند‬.
‫تعریف‬object‫اسکریپت‬ ‫جاوا‬ ‫در‬
78
‫برای‬‫تعریف‬‫یک‬،‫شیء‬‫از‬‫آکوالد‬‫استفاده‬‫می‬‫شود‬.‫داخل‬،‫آکوالد‬‫خصوصیات‬‫شیء‬‫بصور‬‫ت‬
(‫مقدار‬=‫نام‬‫خصوصیت‬)‫تعریف‬‫می‬‫شود‬.‫خصوصیت‬‫ها‬‫با‬‫کاما‬‫از‬‫هم‬‫جدا‬‫می‬‫شوند‬:
‫تعریف‬object‫اسکریپت‬ ‫جاوا‬ ‫در‬
79
Object‫را‬‫به‬‫صورت‬‫چند‬‫خطی‬‫هم‬‫می‬‫توان‬‫تعریف‬‫کرد‬.
‫یک‬ ‫های‬ ‫خصوصیت‬ ‫به‬ ‫دسترسی‬‫شی‬
80
‫دسترسی‬‫به‬‫خصوصیت‬‫های‬‫یک‬‫شی‬‫به‬‫دو‬‫روش‬‫ممکن‬‫است‬:
‫شی‬ ‫متدهای‬Object Methods
81
Object‫ها‬‫می‬‫توانند‬‫دارای‬‫متد‬‫باشند‬.‫متد‬‫ها‬‫عملیاتی‬(actions)‫هستند‬‫که‬‫می‬‫توانند‬‫بر‬
‫روی‬‫شی‬‫اجرا‬‫شوند‬.‫متد‬‫ها‬‫در‬‫خصوصیت‬‫شی‬‫مانند‬‫تابع‬‫ذخیره‬‫می‬‫شوند‬.
‫کلیدی‬ ‫کلمه‬this
82
‫در‬‫تعریف‬‫تابع؛‬‫کلمه‬this‫به‬‫صاحت‬‫خود‬‫تابع‬‫اشاره‬‫می‬‫کند‬.‫به‬‫عنوان‬‫مثال‬‫در‬‫زیر‬this
‫خود‬‫شی‬person‫می‬‫باشد‬‫که‬‫دارای‬‫تابع‬fullName‫می‬‫باشد‬.
‫شی‬ ‫متدها‬ ‫به‬ ‫دسترسی‬Accessing Object Methods
83
‫برای‬‫دسترسی‬‫به‬‫متد‬‫های‬‫شی‬‫از‬‫روش‬‫زیر‬‫استفاده‬‫می‬‫شود‬.
84
Events
‫ها‬ ‫رویداد‬JavaScript Events
85
‫زمانی‬‫که‬‫از‬‫جاوا‬‫اسکریپت‬‫در‬‫صفحات‬html‫استفاده‬‫می‬،‫شود‬‫جاوا‬‫اسکریپت‬‫می‬‫تواند‬‫به‬‫رویداد‬
‫های‬‫که‬‫در‬‫صفحه‬‫اتفاق‬‫می‬‫افتد‬‫واکنش‬‫نشان‬‫دهد‬.‫نمونه‬‫هایی‬‫از‬‫رویداد‬‫هایی‬‫که‬‫در‬‫یک‬‫صفح‬‫ه‬
html‫اتفاق‬‫می‬‫افتد‬‫موارد‬‫زیر‬‫است‬:
‫لود‬‫شدن‬‫صفحه‬html‫به‬‫پایان‬‫به‬‫رسد‬(‫صفحه‬‫به‬‫طور‬‫کامل‬‫لود‬‫شود‬)
‫فیلد‬‫ورودی‬‫داده‬‫ای‬‫تغییر‬‫کند‬.
‫دکمه‬‫ای‬‫در‬‫صفحه‬‫کیلیک‬‫شود‬
‫و‬...
‫ها‬ ‫رویداد‬JavaScript Events
86
‫در‬‫عناصر‬html‫امکان‬‫اضافه‬‫کردن‬‫مدیریت‬‫رویدادها‬(event handler)‫به‬‫عنوان‬
‫خصوصیت‬‫وجود‬‫دارد‬.
‫رویداد‬ ‫دادن‬ ‫رخ‬ ‫هنگام‬ ‫تابع‬ ‫فراخوانی‬
87
‫با‬‫توجه‬‫به‬‫اینکه‬‫کدهای‬‫جاوا‬‫اسکریپت‬‫برای‬‫مدیریت‬‫رویداد‬‫ممکن‬‫است‬‫چندین‬‫خط‬‫با‬،‫شد‬‫بهتر‬
‫است‬‫در‬‫خصویت‬‫عنصر‬html‫مورد‬‫نظر‬‫تابعی‬‫فراخوانی‬‫شود‬.
‫ها‬ ‫رویداد‬ ‫ترین‬ ‫متداول‬Common HTML Events
88
89
‫کنترلی‬ ‫ساختارهای‬
90
91
The End

More Related Content

Similar to Java script

تحقیق وب یک و دو و سه و چهار
تحقیق وب یک و دو و سه و چهارتحقیق وب یک و دو و سه و چهار
تحقیق وب یک و دو و سه و چهارMedical4Tourist
 
Navid Conference - 1394 - Shiraz, Iran
Navid Conference - 1394 - Shiraz, IranNavid Conference - 1394 - Shiraz, Iran
Navid Conference - 1394 - Shiraz, IranHamed Takmil
 
Scalable javascript application - طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپت
Scalable javascript application -  طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپتScalable javascript application -  طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپت
Scalable javascript application - طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپتefazati
 
Node js-&-express-hassan-tafreshi-persian-lan
Node js-&-express-hassan-tafreshi-persian-lanNode js-&-express-hassan-tafreshi-persian-lan
Node js-&-express-hassan-tafreshi-persian-lanHassan Tafreshi
 

Similar to Java script (7)

تحقیق وب یک و دو و سه و چهار
تحقیق وب یک و دو و سه و چهارتحقیق وب یک و دو و سه و چهار
تحقیق وب یک و دو و سه و چهار
 
Navid Conference - 1394 - Shiraz, Iran
Navid Conference - 1394 - Shiraz, IranNavid Conference - 1394 - Shiraz, Iran
Navid Conference - 1394 - Shiraz, Iran
 
CSS
CSSCSS
CSS
 
Scalable javascript application - طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپت
Scalable javascript application -  طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپتScalable javascript application -  طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپت
Scalable javascript application - طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپت
 
Node js-&-express-hassan-tafreshi-persian-lan
Node js-&-express-hassan-tafreshi-persian-lanNode js-&-express-hassan-tafreshi-persian-lan
Node js-&-express-hassan-tafreshi-persian-lan
 
jQuery
jQueryjQuery
jQuery
 
How Create Waf With Naxsi
How Create Waf With NaxsiHow Create Waf With Naxsi
How Create Waf With Naxsi
 

More from M Nemati

Introduction
IntroductionIntroduction
IntroductionM Nemati
 
Operating System - Chapter 01
Operating System - Chapter 01Operating System - Chapter 01
Operating System - Chapter 01M Nemati
 
Network security
Network securityNetwork security
Network securityM Nemati
 
Artificial Intelligence (AI)
Artificial Intelligence (AI)Artificial Intelligence (AI)
Artificial Intelligence (AI)M Nemati
 
Machine & Assembly Language - Chapter 5
Machine & Assembly Language - Chapter 5Machine & Assembly Language - Chapter 5
Machine & Assembly Language - Chapter 5M Nemati
 
Machine & Assembly Language - Chapter 4
Machine & Assembly Language - Chapter 4Machine & Assembly Language - Chapter 4
Machine & Assembly Language - Chapter 4M Nemati
 
Machine & Assembly Language - Chapter 3
Machine & Assembly Language - Chapter 3Machine & Assembly Language - Chapter 3
Machine & Assembly Language - Chapter 3M Nemati
 
Machine & Assembly Language - Chapter 2
Machine & Assembly Language - Chapter 2Machine & Assembly Language - Chapter 2
Machine & Assembly Language - Chapter 2M Nemati
 
Machine & Assembly Language - Chapter 1
Machine & Assembly Language - Chapter 1Machine & Assembly Language - Chapter 1
Machine & Assembly Language - Chapter 1M Nemati
 
IoT Course - Chapter 1
IoT Course -  Chapter 1IoT Course -  Chapter 1
IoT Course - Chapter 1M Nemati
 
IoT Course - Chapter 2
IoT Course -  Chapter 2IoT Course -  Chapter 2
IoT Course - Chapter 2M Nemati
 
Fundamentals of programming
Fundamentals of programmingFundamentals of programming
Fundamentals of programmingM Nemati
 
مقدمه درس برنامه نویسی مبتنی بر وب
مقدمه درس برنامه نویسی مبتنی بر وبمقدمه درس برنامه نویسی مبتنی بر وب
مقدمه درس برنامه نویسی مبتنی بر وبM Nemati
 
Java how to_program 1
Java how to_program 1Java how to_program 1
Java how to_program 1M Nemati
 

More from M Nemati (19)

Bootstrap
BootstrapBootstrap
Bootstrap
 
CSS
CSSCSS
CSS
 
HTML
HTMLHTML
HTML
 
Introduction
IntroductionIntroduction
Introduction
 
Operating System - Chapter 01
Operating System - Chapter 01Operating System - Chapter 01
Operating System - Chapter 01
 
Network security
Network securityNetwork security
Network security
 
Artificial Intelligence (AI)
Artificial Intelligence (AI)Artificial Intelligence (AI)
Artificial Intelligence (AI)
 
Machine & Assembly Language - Chapter 5
Machine & Assembly Language - Chapter 5Machine & Assembly Language - Chapter 5
Machine & Assembly Language - Chapter 5
 
Machine & Assembly Language - Chapter 4
Machine & Assembly Language - Chapter 4Machine & Assembly Language - Chapter 4
Machine & Assembly Language - Chapter 4
 
Machine & Assembly Language - Chapter 3
Machine & Assembly Language - Chapter 3Machine & Assembly Language - Chapter 3
Machine & Assembly Language - Chapter 3
 
Machine & Assembly Language - Chapter 2
Machine & Assembly Language - Chapter 2Machine & Assembly Language - Chapter 2
Machine & Assembly Language - Chapter 2
 
Machine & Assembly Language - Chapter 1
Machine & Assembly Language - Chapter 1Machine & Assembly Language - Chapter 1
Machine & Assembly Language - Chapter 1
 
IoT Course - Chapter 1
IoT Course -  Chapter 1IoT Course -  Chapter 1
IoT Course - Chapter 1
 
IoT Course - Chapter 2
IoT Course -  Chapter 2IoT Course -  Chapter 2
IoT Course - Chapter 2
 
J query
J queryJ query
J query
 
Fundamentals of programming
Fundamentals of programmingFundamentals of programming
Fundamentals of programming
 
HTML
HTMLHTML
HTML
 
مقدمه درس برنامه نویسی مبتنی بر وب
مقدمه درس برنامه نویسی مبتنی بر وبمقدمه درس برنامه نویسی مبتنی بر وب
مقدمه درس برنامه نویسی مبتنی بر وب
 
Java how to_program 1
Java how to_program 1Java how to_program 1
Java how to_program 1
 

Java script