رفتن به مطلب

آموزش جامع JavaScript


پست های پیشنهاد شده

Javascript.png

با سلام خدمت دوستان

در این آموزش قصد دارم درباره زبان جاوا اسکریپت آموزش بدم

این آموزش نوع آموزش ها در فضای مجازی بسیار وجود دارد اما قرار هست تفاوت های بسیاری وجود داشته باشد :)

خب ابتدا :

1-در این تاپیک اسپم ندهید و یا سوال نفرمایید /سوال و جواب در تاپیک جداگانه مطرح کنید تا بقیه دوستان استفاده کنند

2-آموزش ها پیوسته میباشند و در آخر به صورت یک فایل PDF در اختیار دوستان قرار میگیرد

3-یک سری پیش نیاز هم لازم هست همانند : HTML

4-اگر هر نوع پیشنهاد و یا انتقادی هم وجود دارد با بنده در ارتباط باشید

5-دوستانی هم که میخواهند در این تاپیک همکاری کنند اعلام نمایند

--------------------

موفق باشید

---------------------

لینک به ارسال

q.jpg

اﻧﻮاع زﺑﺎن ﻫﺎي ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ ﺗﺤﺖ وب

ﻫﻤﺎﻧﻄﻮر ﮐﻪ ﻣﯽ داﻧﯿﺪ ﮐﺎﻣﭙﯿﻮﺗﺮ ﻫﺎي ﻣﻮﺟﻮد در ﺷﺒﮑﻪ اﯾﻨﺘﺮﻧﺖ را ﺑﻪ دو دﺳﺘﻪ اﺻﻠﯽ ﺗﻘﺴﯿﻢ ﻣﯽ ﮐﻨﻨﺪ

1-کامپیوتر کاربر

2-کامپیوتر سرور

پس بنابراین زبان های برنامه نویسی هم به دو دسته تقسیم میشوند

1-تست سرور

2-تحت کلاینت

زبان های تحت کاربر: زبان هایی هستند که بر روی سیستم کاربر شروع به کار میکنند ونیازی به سرور برای پردازش و ... ندارند این زبان های همچون HTML , CSS , Javascript هستند

معمولا از این زبان ها برای طراحی صفحات ثابت (static) استفاده میشود که نیاز به پردازشو یا ارسال اطلاعات ندارند

زبان های تحت سرور : زبان هایی هستند که مستقیم بر روی سرور ایجاد میشوند و برای شروع به کار نیاز به اجرا بر روی سرور دارند ، زبان هایی همانند : PHP , PYthon , RUby , ASP جز دسته زبان های برنامه نویسی سرور میباشند

از این زبان های برای طراحی صفحات Dynamic و یا پویا و... استفاده میشود البته این زبان های مثل زبان های تحت کلاینت جهت طراحی قالب و.... استفاده نمیشود و بلکه یم رابط بین صفحات شما به سرور برای عملیات ها میباشد

نکته : زبان های که دربالا ذکر شد زبان های پرطرفدار و عمومی هستند که بیشتر سرو کار دارید در غیر این صورت زیان های متعددی وجود دارند که انشالله در آینده آموزش خواهیم داد

یک سوال پر کاربرد : پس جاوا چیست ؟ تفاوت آن با جاوا چیست ؟

1-جاوا یک زبان کاملا شی گرا (OOP) اسن که اولین باز توسط شرکت Sunmicrosystem به منظور خلق برنامه های کاربردی و مستقل و قابل اجرا بر روی سیستم عامل ساخته شد اما جاوا اسکریپت یک زبان شبه شی گرا یا همون LOO که اولین بار توسط NetSpace ارائه شد و تنها یک فایل متنی بود که بر روی مرورگر اجرا میشد و هدف اولیه آن هم ارزیابی بود . شاید خیلی از دوستان به یاد داشته باشند که در سیستم عامل های 98 به قبل یک مرورگر به اسم Netspace وجود داشت که خب بهتر از explorer امروزی بود :)

2-جاوا یک زبان کامپایلی هست یعنی بعد اینکه کدها نوشته میشود باید کامپایل شده (تبدیل شده) و سپس اجرا شود اما جاوا اسکریپت یک زبان مفسری هست یعنی زبانی که مرحله اجرا و کامپایل با هم میباشد و جدا نیست مثل جاوا و این وظیفه بر روی مرورگر هست

3- ﯾﺎدﮔﯿﺮي ﺟﺎوااﺳﮑﺮﯾﭙﺖ ﺑﺴﯿﺎر ﺳﺎده ﺗﺮ از ﺟﺎوا اﺳﺖ. اﯾﻦ ﺑﻪ اﯾﻦ ﺧﺎﻃﺮ اﺳﺖ ﮐﻪ ﻫﻤﻪ آﻧﭽﻪ ﺷﻤﺎ ﺑﻪ ﻋﻨﻮان ﯾﮏ ﺗﻮﺳﻌﻪ اﺳﺖ. ﺑﺎ اﯾﻦ ﺣﺎل ﭼﻨﺎﻧﭽﻪ درك درﺳﺘﯽ از HTMLدﻫﻨﺪ وب ﺑﺮاي ﯾﺎدﮔﯿﺮي ﺟﺎوااﺳﮑﺮﯾﭙﺖ ﻧﯿﺎز دارﯾﺪ درﮐﯽ ﻋﻤﯿﻖ از ﺟﺎوااﺳﮑﺮﯾﭙﺖ داﺷﺘﻪ ﺑﺎﺷﯿﺪ ﯾﺎدﮔﯿﺮي ﺟﺎوا ﻧﯿﺰ ﺑﺮاﯾﺘﺎن ﺳﻬﻞ و دﻟﭙﺬﯾﺮ ﺧﻮاﻫﺪ ﺷﺪ!

4- از ﺗﻔﺎوت ﻫﺎي ﻣﻬﻢ دﯾﮕﺮ اﯾﻦ دو زﺑﺎن ﻣﯽ ﺗﻮان ﺑﻪ ﺳﺒﮏ ﺗﻌﺮﯾﻒ ﻣﺘﻐﯿﺮ ﻫﺎ در آن ﻫﺎ اﺷﺎره ﮐﺮد. زﺑﺎن ﻫﺎي ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ ﺗﻘﺴﯿﻢ ﻣﯽ ﺷﻮﻧﺪ. Loosely Type و Strongly Typeاز ﻟﺤﺎظ ﺗﻌﺮﯾﻒ ﻣﺘﻐﯿﺮ ﻫﺎ ﺑﻪ دو دﺳﺘﻪ زﺑﺎن ﻫﺎي در زﺑﺎن ﻫﺎي ﺑﺎ ﻧﻮع ﻗﻮي ﻣﯽ ﺑﺎﯾﺴﺖ اﺑﺘﺪا ﻧﻮع ﻣﺘﻐﯿﺮﻫﺎ را ﺗﻌﯿﯿﻦ و ﺳﭙﺲ در ﺑﺮﻧﺎﻣﻪ از آن اﺳﺘﻔﺎده ﻧﻤﻮد. ﻧﻮع اﯾﻦ ﮔﻮﻧﻪ ﻣﺘﻐﯿﺮ ﻫﺎ را ﻧﻤﯽ ﺗﻮان در ﻃﻮل اﺟﺮا ﺑﺮﻧﺎﻣﻪ ﺗﻐﯿﯿﺮ داد و در ﺻﻮرﺗﯽ ﮐﻪ اﯾﻦ ﻣﺘﻐﯿﺮﻫﺎ ﺑﺎ ﻋﻤﻠﮕﺮﻫﺎي ﻣﻨﺎﺳﺐ ﺧﻮد ﺑﻪ ﮐﺎر از اﯾﻦ دﺳﺖ زﺑﺎن ﻫﺎ java و C++ﻧﺮوﻧﺪ ﻧﺘﺎﯾﺞ ﻧﺎدرﺳﺖ ﺑﻪ دﺳﺖ ﻣﯽ آﯾﻨﺪ و ﯾﺎ ﺧﻄﺎﯾﯽ ﺑﻪ وﻗﻮع ﻣﯽ ﭘﯿﻮﻧﺪد. زﺑﺎن ﻫﺎي ﻫﺴﺘﻨﺪ.

5-در ﻣﻘﺎﺑﻞ در زﺑﺎن ﻫﺎي ﺑﺎ ﻧﻮع ﺿﻌﯿﻒ ﻧﯿﺎزي ﺑﻪ ﺗﻌﺮﯾﻒ ﻣﺘﻐﯿﺮﻫﺎ و ﺗﻌﯿﯿﻦ ﻧﻮع داده آن ﻫﺎ ﻧﻤﯽ ﺑﺎﺷﺪ. در اﯾﻦ زﺑﺎن ﻫﺎ ﺗﻌﯿﯿﻦ ﻧﻮع ﻫﺎي داده ﺑﻪ ﻃﻮر ﺧﻮدﮐﺎر و ﺑﺮ ﺣﺴﺐ ﻧﯿﺎز ﺗﻮﺳﻂ ﺧﻮد زﺑﺎن اﻧﺠﺎم ﻣﯽ ﮔﯿﺮد و ﺑﻨﺎﺑﺮاﯾﻦ در ﻃﯽ ﻓﺮآﯾﻨﺪ ﭘﺮدازش داده ﻫﺎ ﻣﯽ ﺗﻮان در ﻫﺮ ﻣﺮﺣﻠﻪ ﺑﻪ راﺣﺘﯽ ﻧﻮع داده ﻫﺎ را ﺑﺮرﺳﯽ و ﺗﻐﯿﯿﺮ داد. زﺑﺎن ﻫﺎﯾﯽ ﻫﻤﭽﻮن دﺳﺖ ﻫﺴﺘﻨﺪ.

6-جاوا اسکریپت از تمامی نحو ساختاری زبان C پشتیبانی می‌کند. مانند گزاره (if و switch و حلقه‌های while و...) یک مورد استثنا تعیین حوزهٔ متغیرهاست: تعریف حوزه در حد block در جاوا اسکریپت وجود ندارد. هر چند جاوا اسکریپت ۱٫۷ با کلمهٔ کلیدی let این نوع حوزه دهی را امکان‌پذیر می‌سازد. مانند c در جاوا اسکریپت بین عبارت و گزاره تفاوت وجود دارد.

چند نکته :

اول : جاوا اسکریپت هم جز زبان هایی است که به حروف بزرگ و کوچک اهمیت قائل شده مثال : Black با متغیر black کاملا متفاوت است

دوم :داخل اکثر زبان ها ما نوع متغیر تعریف میکنیم که از چه نوعی هستند اما درون جاوا اسکریپت نیاز به اینکار نیست

سوم:جاوا اسکریپت مقدار گرا میباشد ﯾﻌﻨﯽ در ﻫﻨﮕﺎﻣﯽ ﮐﻪ ﺗﻌﺮﯾﻒ (ﻣﻘﺪاردﻫﯽ) ﻣﯽ ﺷﻮﻧﺪ ﻧﻮﻋﺸﺎن ﻧﯿﺰ ﻣﺸﺨﺺ ﻣﯽ ﮔﺮدد. اﯾﻦ وﯾﮋﮔﯽ اﻣﮑﺎن ﺗﻐﯿﯿﺮ ﻧﻮع داده ذﺧﯿﺮه ﺷﺪه در ﯾﮏ ﻣﺘﻐﯿﺮ در ﻫﺮ ﻧﻘﻄﻪ اي از ﺑﺮﻧﺎﻣﻪ را ﻓﺮاﻫﻢ ﻣﯽ ﮐﻨﺪ.

چهارم: ﻗﺮار دادن( ; ) در اﻧﺘﻬﺎي ﻫﺮ دﺳﺘﻮر اﺧﺘﯿﺎري اﺳﺖ. دﺳﺘﻮرات در ﺟﺎوا اﺳﮑﺮﯾﭙﺖ ﻣﯽ ﺗﻮاﻧﻨﺪ ﺑﻪ ; ﺧﺘﻢ ﺷﻮﻧﺪ ﯾﺎ ﻧﺸﻮﻧﺪ. در ﺻﻮرت ﭼﺸﻢ ﭘﻮﺷﯽ از ; ، ﺟﺎوا اﺳﮑﺮﯾﭙﺖ اﻧﺘﻬﺎي ﻫﺮ ﺧﻂ را ﺑﻪ ﻋﻨﻮان ﭘﺎﯾﺎن دﺳﺘﻮر در ﻧﻈﺮ ﺧﻮاﻫﺪ ﮔﺮﻓﺖ. ﺑﺎ اﯾﻦ ﺣﺎل روش ﺻﺤﯿﺢ ، اﺳﺘﻔﺎده از ; در اﻧﺘﻬﺎي دﺳﺘﻮرات اﺳﺖ. ﭼﻮن ﺑﻌﻀﯽ از ﻣﺮورﮔﺮﻫﺎ از روش اول ﭘﺸﺘﯿﺒﺎﻧﯽ ﻧﻤﯽ ﮐﻨﺪ و ﻣﻤﮑﻦ اﺳﺖ در اﺟﺮاي ﮐﺪﻫﺎ دﭼﺎر ﻣﺸﮑﻞ ﺷﻮﻧﺪ.

لینک به ارسال

خب مقدمه کافی است و دوستانی که میخواهند اطلاعات بیشتری درباره سازنده و... بدونند میتونند از wikipedia استفاده کنند

قسمت دوم:

در همه زبان های برنامه نویسی ، شخص برنامه نویس میاد برای راحتی کار خودش از علامت ها و ... استفاده میکند که مشخص کند هر قسمت مربوط به چه چیزی است و... که به آن کامنت میگویند

کامنت ها در برنامه نشان داده نخواهد شد (منظور هیچ عملی انجام نمیدهد) اما در سورس برای برنامه نویس نمایش داده خواهد شد تا کار برنامه نویس راحت کند و برای پیدا کردن قسمت خاص خط به خط نگردد

خب در HTML میان از کد زیر استفاده میکنند:


<!-- متنی که نمایش داده نخواهد شد -->

و یا در CSS


/* متن شما */

و اما در جاوا اسکریپت به شکل زیر میباشد :

برای یک خط توضیح


// توضیح یک خط

و برای چندین خط توضیح از :


/* توضیح چندین
خطی
*/

تعریف یک متغیر:

در بالا توضیح داده شد که در جاوا اسکریپت نیاز نیست به متغیر نوع بدهیم که از نوع string و یا integer و یا long و یا ... باشد برای همین تعریف متغیر نوع خاصی ندارد فقط کافیست که قبل اسم متغیر یک var دهیم و خود به متغیر تبدیل میشود

مثال اول:


var black

مثال 2:


var black = 5

در اینجا متغیر black برابر شد با عدد 5

شما میتونید چندین متغیر هم تعریف کنید به صورت زیر :


var black=24 , var ali=20 , var reza = 'Fun'

دقت کنید برای نمایش مقدار رشته از تک کوتیشن استفاده شده است یعنی 'fun' اما مقدار عدد 5

نکته : در جاوا باید هر متغیر برابر یک مقدار باشد اما جاوا اسکریپت نیاز نیست مثل :


var ali;

ﺑﺮﺧﻼف ﺟﺎوا ﻣﺘﻐﯿﺮﻫﺎ ﻣﯽ ﺗﻮاﻧﻨﺪ در زﻣﺎنﻫﺎي ﻣﺨﺘﻠﻒ ﻣﻘﺎدﯾﺮ ﻣﺘﻔﺎوﺗﯽ داﺷﺘﻪ ﺑﺎﺷﻨﺪ. اﯾﻦ ﯾﮑﯽ از اﻣﺘﯿﺎزات ﻣﺘﻐﯿﺮﻫﺎي ﺑﺪون ﻧﻮع در زﺑﺎن ﺟﺎوااﺳﮑﺮﯾﭙﺖ ﺑﻪ ﺷﻤﺎر ﻣﯽ رود. ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل ﯾﮏ ﻣﺘﻐﯿﺮ ﻣﯽ ﺗﻮاﻧﺪ ﺑﺎﯾﺪ ﯾﮏ ﻣﻘﺪار رﺷﺘﻪاي ﻣﻘﺪاردﻫﯽ اوﻟﯿﻪ ﺷﺪه و ﺳﭙﺲ در اداﻣﻪ ﺑﺮﻧﺎﻣﻪ ﺑﻪ ﯾﮏ ﻣﻘﺪار ﻋﺪدي ﺗﻐﯿﯿﺮ ﮐﻨﺪ. ﺑﻪ ﻣﺜﺎل زﯾﺮ دﻗﺖ ﮐﻨﯿﺪ:


var ali = 20;
alert(ali);
var black= 25
alert(black)

نام گذاری متغیر ها :

متغیر ها در جاوا اسکریپت شرط خاصی برای نام گذاری ندارند اما همیشه سعی کنید الگوهای برنامه نویسی رعایت کنید تا در همه زبان ها به مشکل نخورید مثلا قبل متغیر _ و یا ... قرار ندهید

متغیر با Number شروع نکنید

نمونه های زیر همه دست هستند


var black;
var $black;
var _$black;
var $1;

کلمات کلیدی درون جاوا اسکریپت :

یک سری کلمات هستند که درون جاوا اسکریپت هستند که رزرو شده هستند و شما نمیتوانید از آنها برای نام متغیر استفاده کنید و در صورت استفاده با خطا : Identifier expected مواجه خواهید شد

Break else new var Case finally return void Catch for switch while Continue function this with Default if throw Delete in try Do instanceof typeof

Abstract enum int short Boolean export interface static Byte extends long super Char final native synchronized Class float package throws Const goto private transient Debugger implements protected volatile Double import publ

عملگر های منطقی:

دوستانی که زبان های برنامه نویسی کار میکنند بهتر میدونن که عملگر های منتطقی یکی از مهمترین عناصر هست جرا؟ دلیل جلوتر مشخص میشه

عملگر های منطقی مثل جمع ، ضرب ، تقسیم ، کسر و یا همان ( + - * /) هستند

%D8%B9%D9%85%D9%84%DA%AF%D8%B1_%D9%87%D8%A7.png

در عملگر های منتطقی ++ و یا -- به هر 2 صورت صحیح است x++ و یا ++x اما این دو نتیجه متفاوتی خواهد داشت

در نوع اول x++ :

ابتدا متغیر X در m قرار میگیرد و سپس یک واحد به X افزوده میشود.

در نوع دوم ++x:

ابتدا به X یک واحد اضافه شده و سپس متغیر X در m قرار میگیرد.

عملگر های حسابی از لحاظ اجرا دارای اولویت میباشند.

1. ()

2. ++ , --

3. * , / , %

4. + , -

یک نمونه برای عملکرد های دارای اولویت:


A= B + D * C /A-1 + (E * D)

بهتره برای خودتان چند نمونه بسازید و تست کنید تا مقداری راه بیوفتید توع تعریف متغیر و عملکرد ها و...

خوبی این زبان هم این هست که نیاز به هیچ چیزی نیست و کافیه در یک نوت پد قرار بدید و تست کنید و نتیجه ببینید

لینک به ارسال

logo.png

قسمت سوم :

در بالا گفتیم که نیاز نیست برای متغیر نوع تعیین کنیم اما خب گفتیم برای استاندارد سازی و یا مسائل مختلف میایم تعریف میکنیم

برای همین یک مقدار توضیح خواهم داد :

نوع داده String :

ﯾﻦ ﻧﻮع ﻣﯽ ﺗﻮاﻧﺪ ﺑﺮاي ذﺧﯿﺮه ﺻﻔﺮ ﯾﺎ ﭼﻨﺪﯾﻦ ﮐﺎراﮐﺘﺮ ﺑﻪ ﮐﺎر رود. ﻫﺮ ﮐﺎراﮐﺘﺮ در ﯾﮏ رﺷﺘﻪ ﻣﻮﻗﻌﯿﺘﯽ دارد. ﻣﻮﻗﻌﯿﺖ اوﻟﯿﻦ ﮐﺎراﮐﺘﺮ ﺻﻔﺮ اﺳﺖ. ﺑﺮاي ﺗﻌﺮﯾﻒ ﯾﮏ ﻣﺘﻐﯿﺮ رﺷﺘﻪ اي ﺑﺎﯾﺪ از ( ' ) ﯾﺎ ( " ) اﺳﺘﻔﺎده ﮐﻨﯿﻢ. ﻣﻌﻤﻮﻵ ﺑﺮاي ﺗﻌﺮﯾﻒ ﯾﮏ ﮐﺎراﮐﺘﺮ از ( ' ) و ﺑﺮاي ﺗﻌﺮﯾﻒ ﯾﮏ رﺷﺘﻪ از ( " ) اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد.

مثال :


var color="red" ;
var color='red';

نوع داده Boolean :

یکی از پرطرفدار و پرکاربرد ترین از انواع داده ها Boolean میباشد ، این نوع فقط 2 مقدار را برمیگرداند که False و Trueمیباشد و یا همان درست و یا غلط بودن مقدار

از این نوع برای چک کردن وارد شدن مقدار صحیح استفاده میشود

اﮔﺮ ﭼﻪ ﺑﺮ ﺧﻼف زﺑﺎن ﻫﺎي ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ ﻣﺘﺪاول، در ﺟﺎوا اﺳﮑﺮﯾﭙﺖ false یا 0 برابر نیست اما در صورت لزوم در عبارت های boolean به false تبدیل خواهد شد .

ﻧﻮع داده Number :

اﯾﻦ ﻧﻮع ﻧﯿﺰ ﯾﮑﯽ از ﭘﺮﮐﺎرﺑﺮدﺗﺮﯾﻦ اﻧﻮاع اﺳﺖ .از اﯾﻦ ﻧﻮع داده ﻣﯽ ﺗﻮان ﺑﺮاي ﻧﻤﺎﯾﺶ اﻋﺪاد ﺻﺤﯿﺢ 8 ﺑﺎﯾﺘﯽ و اعداد اعشاری 16 بایتی اﺳﺘﻔﺎده ﮐﺮد.


var numer=55;
var number=5.0;

نوع داده Undefined :

خب اگر ما به صورت معمول به متغیر خود نوع نداده باشیم خود جاوا اسکریپت به صورت پیشفرض از نوع Undefined میشناسد البته باید ما مقداری هم نداده باشیم (اگر مقدار داده باشیم از نوع های بالا پیروی میکند)

یک نکته : اگر ما مقدار نداده باشیم خود چیزی که به ما میدهد Undefined میباشد اما اگر متغیر هم تعریف نکرده باشیم باز همین مقدار برمیگرداند و برای آن هیچ فرقی نمیکند اما کاملا این دو با هم متفاوت هستند برای درک بیشتر این مسوله یک مثال میزنم :


var mahdi ;
alert(typeof mahdi);

مقداری که در خروجی میدهد به ما Undefined

حالا ما متغیری هم معرفی نمیکینم :


var mahdi;
alert(typeof mahdi);
alert (typeof reza) ;

reza یک متغیر هست که اعلان نشده است اما باز خروجی به ما مقدار Undefined را میدهد پس تفاوتی برای این نوع قائل نمیشود پس دقت کنید

یگ نکته دیگه : اگر هر عملگری به غیر از typeof برای Undefined استفاده شود دچار خطا میشود

انواع تبدیل ها :

یکی از ویژگی های دیگری که جاوا اسکریپت دارا هست تبدیل انواع Boolean , number , string میباشد

آنهادر اصل اشیا کاذب هستند به اﯾﻦ ﻣﻌﻨﯽ ﮐﻪ داراي ﺧﺎﺻﯿﺖ ﻫﺎ و ﻣﺘﺪﻫﺎي ﻣﺸﺘﺮك و ﻣﻨﺤﺼﺮ ﺑﻪ ﻓﺮدي میباشند

به عنوان مثال :


var mahdi='red';
alert(mahdi)

در خروجی red چاپ میشود حال ما میخواهیم طول رشته متغیر mahdi حساب کنیم یا همون رشته red


var mahdi='red';
alert(mahdi.length);

خروجی به ما میدهد 3

سه نوع متغیر Boolean , number , string متدی به نام tostring() برای تبدیل دارند

این متد برای نوع boolean یکی از مقادیر flase یا true را بستگی به نوع متغیر برمیگرداند

تبدیل به اعداد :

برای تبدیل رشته و.... به عدد از 2 متد باید استفاده کرد .

برای مثال شما یک طول رشته دارید که درون آن ترکیب از اعداد و حروف و... میباشد و حالا شما میخواهید فقط اعداد آن بیرون بکشید باید از متدهای زیر استفاده کنیم :


1-praseFloat
2-parseInt

نکته1: دقت کنید باید حروف I و F بزرگ باشند در غیر اینصورت با خطا مواجه خواهید شد

نکته2:این متد فقط بر روی رشته های دارای عدد کار میکنند و در غیر این صورت NaN برمیگرداند

مثال:


var iNum1 = parseInt(“1234blue”); //returns 1234
var iNum3 = parseInt("22.5"); //returns 22
var iNum4 = parseInt("blue"); //returns NaN

parseFloat نیز مثل متد parseInt عمل کرده و این متد از اولین کاراکتر شروع میکند و اگر عدد بود مقدار آنرا برمیگرداند و اگر نبود مقدار NaN را برمیگرداند این روند تا آخر کار ادامه پیدا خواهد کرد

ﻋﻤﻞ ﮐﺮده و از اوﻟﯿﻦ ﮐﺎراﮐﺘﺮ ﺷﺮوع ﺑﻪ ﺟﺴﺘﺠﻮ ﻣﯽ ﮐﻨﺪ. اﻟﺒﺘﻪ در اﯾﻦ ﻣﺘﺪ اوﻟﯿﻦ ﮐﺎراﮐﺘﺮ ﻧﻘﻄﻪ ﺣﺴﺎب ﻧﻤﯽ ﺷﻮد و آن را ﺑﻪ ﻫﻤﺎن ﺻﻮرت ﺑﺮﻣﯽﮔﺮداﻧﺪ

اﮔﺮ دو ﮐﺎراﮐﺘﺮ ﻧﻘﻄﻪ در رﺷﺘﻪ وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﻨﺪ دوﻣﯿﻦ ﻧﻘﻄﻪ ﺑﻪ ﻋﻨﻮان ﮐﺎراﮐﺘﺮ ﺑﯽ ارزش ﺷﻨﺎﺧﺘﻪ ﻣﯽ ﺷﻮد و ﻋﻤﻠﯿﺎت ﺗﺒﺪﯾﻞ ﻣﺘﻮﻗﻒ ﻣﯽ ﺷﻮد. ﻣﺜﺎل ﻫﺎ:


var fNum1 = parseFloat(“1234blue”); //returns 1234.0
var fNum3 = parseFloat(“22.5”); //returns 22.5
var fNum4 = parseFloat(“22.34.5”); //returns 22.34
var fNum6 = parseFloat(“blue”); //returns NaN

---------

راستش نوشتن این همه خط آسون نیست و اگر غلط املاء از بنده دیدید به بزرگی خودتون ببخشید

---------

لینک به ارسال

Run_Javascript_Code.png

قسمت چهارم

در آموزش قبل آموختیم که چگونه یک متغیر بسازیم و تبدیل کنیم حالا میخواهیم آموخته های خود درون یک برگه تست کنیم

میدانیم که جاوا اسکریپت به تنهایی قادر به پردازش نیست و باید در مرورگر اجرا شود و سمت کلاینت میباشد پس باید درون یک قالب قرار داد

نحوه قرار گیری در قالب به 2 صورت میباشد :

1-


<script language=”Javascript” src=”scripts/external.js”></script>

2-


<script>
Your Code
</script>

در قسمت اول شما کدهای خودتان را در یک صفحه نوشته و میخواهید از صفحه خارج کنید

در قسمت دوم شما میتونید در صفحه خودتون لود کنید و اجرا کنید

مزایا و معایب فایل های خارجی با داخلی :

1-امنیت : هر شخصی به راحتی میتواند کدهای شما را ببیند و آنالیز کند و به باگ یا حفره ای خاص برسد (فرق زیادی هم براشون نمیکنه کدهای خارجی هم میشه از لینک باز کرد)

2-ساده نویسی(بهینه سازی) :شاید شما بخواهید از یک کد در چندین صفحه مختلف و... استفاده کنید وخب باز نویسی این کدها و... باعث طولانی شدن و تلف شدن زمان و یا ... میشود

3-ذخیره در مرورگر : زمانی که برای اولین بار لود میشود در حافظه نهان مرورگر ذخیره میشود و با بازکردن دوباره سایت نیاز به پردازش دوباره نسبت به مورد دوم نیست

محل قرارگیری کجاست ؟

ببینید معمولا فایل های لازم برای اجرا قالب در header قالب قبل از تگ </heqad> قرار میدهند که بلافاصله از باز شدن قالب شروع به کار کند و...

مثال:


<html>
<head>
<title>music test </title>
<script src="js/sTest.js" ></script>
</head>
<body>
<form>
<input type="" name="url">
<input type="submit" >
</form>

</body>
</html>

نکته:

اما زمانی هست که کدهای جاوا شما سنگین هست و نیازی نیست همان اول لود شوند چون اگر سنگین باشند و نیاز به پردازش بالا تا انجام نشده و مقدار برنگردد بقیه قالب به صورت صحیح لود نمیشود پس در بعضی از مواقع شما میتونید

در آخر قالب لود کنید یعنی قالب لود شده سپس کدها پردازش و جواب ارسال شود که خب سرعت سایت بسیار بالاتر میرود

صفت های فراخانی :

در کدبالا شما میتوانید از چندین صفت استفاده کنید ( معمولا 3 میباشد )

src :این صفت برای فراخانی لینک میباشد مثال اگر فایل شما در مسیر js/test/mahdi.js باشد باید به صورت زیر همراه با ( " " ) و یا ( ' ' ) قرار بگیرد _ (دلیل بسیار هست اما در آموزش های html توضیح داده شده است اما بهتر است از " " استفاده کنید) نمونه :


<script src=" "></script>
<script src=' '></script>

Language:مثل بقیه زبان های برنامه نویسی جاوا اسکریپت هم دارای ورژن و یا نسخه میباشد اما معمولا برابر با javascript و یا یکی از ورژن های آن همانند 1.3 میباشد (در امروزه نیاز به نوشتن نسخه نیست )

Type : این هم نوع خروجی مشخص میکند که معمولا برابر با text/javascript میباشد

یک نمونه از موارد بالا :


<script src="appbanner.js" type="text/javascript"></script>

خب زمانی هم هست که کدها کم است و پردازش سریعا باید انجام شود و موارد این چنینی که در خود قالب قرار بدید

در این قسمت هم شما میتوانید از صفت هایی که در بالا قرار داده شده است استفاده کنید

مثل نمونه زیر :


<html>
<head>
<title>music test </title>
<script >
var mahdi = 25;
alert(mahdi);
</script>
</head>
<body>
<form>
<input type="" name="url">
<input type="submit" >
</form>

</body>
</html>

-------------------------------

در هر 2 صورت کدهای شما اجرا خواهد شد و توضیح دادیم که چرا و چگونه

حالا یک سوال : شخصی از مرورگر قدیمی استفاده میکند و جاوا اسکریپت پشتیبانی نمیکند و یا اینکه غیر فعال کرده است ما باید چه کاری انجام دهیم تا متوجه یشود ؟؟

پاسخ:برای اینکه شخصی متوجه کنیم که سایت ما دارای قابلیت هایی است که نیاز به جاوا اسکریپت دارد میتوانیم از معکوس مورد بالا یا همون noscript استفاده کنیم

البته کسی که هنوز مرورگرش جاوا اسکریپت پشتیبانی نکنه سایت نتونه ببینه بهتره کلاٌ :D

مثال:


<noscript> <p>Your browser doesn’t support Javascript. If it did support Javascript, you would see this message: Hi!</p> </noscript>

نکته : محل قرار گیری هم در بالا توضیح دادیم اما این کد بهتره در header باشه تا اول بسم الله به کاربر اطلاع دهد

آموزش مقدماتی فکر میکنم کاقی باشه

چیزهایی که آموختید :

1-نحوه قرارگیری کدها

2-شکل صحیح کدها

3-تعریف متغیر

4-تبدیل متغیر ها

5-صفت ها

6-انواع متغیر ها

و....

----------------------------------

بسیار سعی مردم ساده گفته باشم و از تجربه بیشتر استفاده کنم

خیلی از موارد در تجربه به دست می آید و در آموزش ها نیست

بزرگترین استاد هم تجربه میباشد

انشالله موفق باشید

Black_Sky

لینک به ارسال

javascript_logo.png

قسمت پنجم:

همه برنامه نویسان با جمله معروف Hello World آشنا هستند و میدانند اولین برنامه ها رو با این جمله نوشتن :D البته ما Hello world چاپ نمیکنیم Black چاپ میکنیم :)

خب در زبان های مختلف برای چاپ و یا خروجی گرفتن از دستورات متعددی استفاده میشود اما معمولا همون print استفاده میشود

مثال :


php = echo
Python =print
Ruby = put

و..... اما در زبان جاوا اسکریپت شما میتونید با document.write خروجی بگیرید

document.write : اين دستور برای نمايش يک متن خروجی که در پرانتز جلوی آن تعيين می شود ، در صفحه به کار می رود . در ادامه با شی document و خواص و متدهای آن آشنا خواهيد شد .

مثال : ما میخواهیم متن Black در صفحه با جاوا اسکریپت نمایش دهیم

میتونیم هم یک متغیر تعریف کنیم و متن درون متغیر چاپ کنیم مثل :


var name= "black"
document.write (name);

و یا میتوانیم متن مورد نظر مستقیم به صفحه وارد کنیم مثل :


document.write("Black")

پس به هر 2 صورت صحیح است حال اگر بخواهیم " " استفاده کنیم چه ؟ دچار تداخل نمیشود ؟

مثال : ما میخواهیم کلمه Black بین "" باشد یعنی به این صورت :


"Black_Sky" Was Here

اگر به صورت زیر بنویسیم :


document.write(" "Bkack_Sky" Was Here ")

با خطا مواجه میشویم چون برنامه قادر به تشخص نیست که کدام رشته را از کجا تا کجا چاپ کند چون در دو از " " استفاده شده است

برای همین از \ استفاده میکینم

شکل صحیح:


document.write(" \"Black_Sky\" Was Here")

برای رفتن به خط بعد

و موارد اینگونه هم میتونید از تگهای HTML استفاده کنید

مثال:


document.write("<br>mahdi<br><b>reza</b><br><u><i>morteza</i></u>")

درون document.write میتونید از تگها و ... استفاده کنید

یعضا کدهای تبلیغاتی دیدید که یک خط شما کپی میکنید که یک فایل js را لود میکند اما وقتی در سایت شما قرار داده میشود یک تبلیغات بسیار بزرگ با لینک و... میباشد

خوب ساختار به همین گونه هست کدهای html و css خودشون در document.write قرار میدهند و در سرور ذخیره میکنند و به شما فقط یک خط کد فراخانی جاوا اسکریپت خارجی میدهند

یا مثلا سایت هایی که ابزاردهی میکنند و شما کدهاشون درون سایت قرار میدید و میبینید یک ساعت میباشد و یا ...

لینک به ارسال

قسمت ششم :

در آموزش بالا آموختید که چگونه خروجی بگیرید توسط document.write اما فقط همین نیست شما میتونید توسط پنجره popup هم خروجی خودتون نمایش بدید

Alert:پنجره ای که به صورت popup نمایش داده میشود و شما دوستان بیشتر در تبلیغات و... میبینید و یا زمانی هست که وارد یک سایت میشوید تا پنجره تایید نکنید اجازه ورود نخواهد داد

ساختار Alert : ساختار به همان صورت بالا میباشد با این تفاوت که به جای document.write از alert استفاده میکنیم

نمونه :


alert("mahdi")

خروجی :

alert.jpg

خب خروجی ما چاپ شده است

حالا اگر بخواهیم در متغیر تعریف کنیم و یا ... در قسمت پنجم کامل توضیح داده شده و یکی هستند

حالا اگر بخواهیم مثل document.write به خط بعدی برویم چه کار کنیم ؟ خوب اینجا از کدهای html نمیشه استفاده کرد و به صورت زیر ظاهر میشوند :

alert.jpg

بس برای خط بعد رفتن از ( n/ ) استفاده میکنیم

مثال:


alert("mahdi\n reza\n Morteza\n")

خروجی ما میشود :

alert3.jpg

البته یک سری از کاراکترهایی هستند که شما قادر به استفاده به صورت مستقیم نیستید پس باید به همین روش عمل کنید که در جدول زیر توضیح داده شده است :

other.jpg

این ها به 3 صورت هستند و یکی از آنها alert میباشد

در آموزش های بعدی کامل یاد خواهیم داد

لینک به ارسال

ifelse.gif

قسمت هفتم :

خوب در این قسمت وارد دستورات شرطی میشویم

خونسرد باشید این تصویر نه نقشه و نه مدار و ... هست صرفا جهت مفهوم درس میباشد ;)

در دنیای واقعی ما همیشه در فکر هستیم که اگر اینکار کردیم نشد بعدشم چیکار کنیم و یا اگه اون کار کردیم بازم نشد چیکار کنیم ؟ چه کار میکنید واقعا؟هیچی برای خودتون یک راه حل قرار میدید

مثال: اگر پول من به مقدار 100 تومان برسد دوچرخه خریداری میکنم اما اگر نرسد باید 1 سال صبر کنم

ما اومدیم جیب خودمون بررسی کردیم که اگر پول 100 تومان بود بریم خرید دوچرخه اما فکر این هم کردیم که اگر نبود باید 1 سال صبر کنم به این میگن شرط برای خودمون

در دنیای برنامه نویسی هم این شرط ها وجود دارند و با if و else مشخص میشوند

if : اگر شرط برقرار بود عملیات انجام شود و یا به عبارن دیگه دستورات شرط

esle اگر شرط برقرار نبود دستورات else اجرا شود

برای مثال یک متغیر تعریف میکنیم به اسم x و مقدار اون برابر mahdi قرار میدهیم و یک متغیر دیگه که میخواهیم مقایسه کنیم مثلا y که برابر reza باشد :


var x = "mahdi"
var y = "reza"

دقت کنید : نوع درست یا غلط بودن و یا مقایسه با یکدیگر توسط عملگر های منتطقی انجام میدهد که در جدول زیر توضیح داده شده است

%D8%B4%D8%B1%D8%B7%DB%8C.png

حال میخواهیم بررسی کنیم که اگر مهدی بود شرطی برقرار شود مثلا بنویسد hello mahdi


var x ="mahdi"
var y = "reza"
if( y == x) {
document.write("hello Mahdi");
}

ما از


==

استفاده کردیم برای برقراری شرط دلیل هم در بالا در جدول قرار داده شده است

خروجی کد بالا به ما چیزی نمیدهد چرا ؟ چون x = y نیست

حالا در 2 متغیر یکی میکنیم ببینیم شرط درست است یا خیر ؟


var x ="mahdi"
var y = "mahdi"
if( y == x) {
document.write("hello Mahdi");
}else {
document.write("No")
}

خروجی به ما میدهد :

hello Mahdi

به همین سادگی حال میخواهیم بگیم اگر برابر نبود متنی چاپ کند

یعنی رضا با مهدی برابر نیست در خط زیر پس چاپ کن No که با دستور else میباشد


var x ="mahdi"
var y = "reza"
if( y == x) {
document.write("hello Mahdi");
}else {
document.write("No")
}

خروجی به ما No میدهد

چندین مثال میزنم :

1-


var x = 10;
var y = 20;
if( y <= x) {
document.write("Ok");
}else {
document.write("No ")
}

2-


var x = 10;
var y = 20;
if( y != x) {
document.write("Ok");
}else {
document.write("No ")
}

نکته : شما باید درون عملگر ها دقت کنید

روش صحیح مقایسه ها به این صورت است که ابتدا عملگر مد نظر مثلا < و بعد =

یعنی :


<=
>=
!=
==

و اگر به صورت زیر باشد صحیح نیست


=>
=<
=!

یک سوال شاید برای شما پیش آمده باشد که اگر جندین شرط وجود داشته باشد چه کار کنیم ؟

خب نیاز به esle if پیدا میکنیم و ساختار همان اسم اما یه مقدار تفاوت که فکر نمیکنم نیاز به توضیح باشد


if ( گروه شرط های شماره 1 )
{
دستوراتی که در صورت بر قرار بودن گروه شرط های 1 اجرا می شوند
}
else if ( گروه شرط های شماره 2 )
{
دستوراتی که در صورت بر قرار بودن گروه شرط های 2 اجرا می شوند
}
else if ( گروه شرط های شماره 3 )
{
دستوراتی که در صورت بر قرار بودن گروه شرط های 3 اجرا می شوند
}
.
.
.
.
.
.
.
else
{
دستوراتی که در صورت عدم بر قراری تمام گروه شرط های فوق اجرا می شوند
}

نکته 1 : به تعداد مورد نياز می توان در اين ساختار به وسيله دستور else if شرط و دستورات جديد تعريف کرد .

نکته 2 :استفاده از کروشه در قسمت دستورات شرط if ، فقط در زمانی که دستورات مورد نظر بيش از يک خط هستند ، ضروری است .

نکته 3 : تعيين قسمت else در ساختار فوق اختياری بوده و می تواند تعريف نشود .

نکته 4 : در زمانی که تعداد حالت های شروط بسيار زياد هستند ، بهتر است از ساختار Switch استفاده کرد .

نکته 5 : دستورات شرطی تقریبا در اکثر زبان ها به همین صورت هستند که با if و else میباشند پس این بدونید که اگر این آموزش ها کامل یاد بگیرید در زبان های دیگر راحت میتونید استفاده کنید و یاد بگیرید

انشالله که استفاده کرده باشید

موفق باشید

Black_Sky

لینک به ارسال

Loop.jpg

قسمت هشتم :

در قسمت قبل یاد گرفتید که چگونه دستورات شرطی استفاده کنیم

در این قسمت درباره حلقه ها و یا همون Loop صحبت میکنیم

اصلا حلقه یا loop چیست ؟

اگر شما بخواهید یک سری دستور یا پارامتر خاصی را به صورت تعداد دفعاتی معین انجام شود چه کار کنیم ؟ برای مثال:

میخواهیم برنامه ای بنویسیم که شروع کند به شمردن اعداد از 1 تا 10 خب اگر خودمان بنویسیم باید به همین مقدار کد بنویسیم که شاید بشه 10 خط

خب اگر عدد بیشتر بود چی ؟مثلا 100000000 ؟ باید بی مقدار کد بنویسیم

یا اگر بخواهیم مثا شمارنده های معکوس از 100 شروع کند به کم کردن چه کار کنیم ؟ ما میتونیم اینکار انجام بدیم ؟

ما 4 متود داریم که توضیج خواهم داد :

1-for

2-while

3-do ... while

for ... in-4

----------------------------------------------

For :از حلقه for ، زمانی استفاده می شود که می خواهيم مجموعه دستورالعمل های حلقه به تعداد دفعات معينی انجام شود که ساختار آن به صورت زیر میباشد

--------------------------------------------

اين حلقه در هنگام تعريف 3 پارامتر اصلی دارد :

مقدار اوليه متغير (Counter): به وسيله اين مقدار ، مقدار اوليه برای شروع شمارنده حلقه تعيين می شود .

عبارت کنترلی (Condition Expression): در اين قسمت يک عبارت کنترلی مرتبط با شمارنده حلقه تعيين می شود ، که در هر بار اجرای مجدد حلقه ، شرط عبارت کنترل شده و در صورت برقرار بودن شرط ، دستورات حلقه اجرا می شود .

گام افزايش يا کاهش (Step) : در اين قسمت ، ميزانی که متغير شمارنده حلقه ، در هر بار اجرای دستورات آن افزايش يا کاهش می يابد را تعيين می کنيم .

پس ساختار ما میشود :


for (Counter;Condition Expression;Step) {
قسمت بدنه
}

خب یک مثال:

ما میخواهیم از شماره 2 شروع کند به شمردن و هر جا که عدد 20 شد آن متوقف کند و برای ما نمایش دهد

خب ما مقدار اولیه 2 قرار باید بدیم پس Counter میشود 2 پس عدد 2 درون یک متغیر ذخیره میکنیم :


for (x = 2;Condition Expression;Step) {
قسمت بدنه
}

مسئله به ما گفته است که هرجا 20 رسید قطع کن و چیزی چاپ نکن پس باید بگیم که از x بشمار تا 20 که میشه :


for (x = 2;x<=20;Step) {
قسمت بدنه
}

در قسمت سوم مسئله گفته شده است بشمارد تا 20 خب مقدار اولیه ما 2 هست یعنی باید به عدد 2 ما اضافه کند پس میشه افزایشی که در بالا گفته بودم برای 1 واحد 1 واحد افزایشی از چی استفاده میکنیم

از ++ استفاده میکنیم و متغییر میگیم اضافه کند که میشه :


for (x = 2;x<=20;x++) {
قسمت بدنه
}

خب شمارش آغاز میشه و تا عدد 20 میرود اما ما میخواهیم ببینیم چطوری میشمارد و یا اینکه میخواهیم یک دستور 20 دفعه انجام دهد پس دستورات هم در قسمت بدنه وارد میکنیم :


for (x = 2;x<=20;x++) {
document.write("print number" +x+ "<br>")
}

خروجی ما هم میشود :

loop2.jpg

از 2 شروع کرد و دستورات چاپ کرد تا به 20 برسد

مثال 2 : همانطور که گفتيم می توان قسمت پارامترهای مقدار اوليه و گام افزايش يا کاهش را در يک حلقه for خالی گذاشته و مقدار اوليه را قبل از تعريف حلقه و گام حلقه را در درون بلاک کد حلقه تعيين کرد . مثال شماره 1 را به اين صورت نيز می توان نوشت :


var x = 1;
for ( ; x <= 20 ; )
{
document.write ("print number " + x + "<br />") ;
x++ ;
}

باز خروجی به همان صورت میباشد

نکته و مثال 3 : گام يک حلقه می تواند منفی يا کاهشی نيز باشد . در مثال زير شمارنده حلقه با هر بار اجرای حلقه يک واحد کاهش می يابد (در بالا توضیح دادم برگردید متوجه میشوید):


var x ;
for ( x = 20 ; x >= 1 ; x-- )
{
document.write ("Line number is " + x + "<br />") ;
}

خروجی میشود :

loop3.jpg

شما میتونید از دستورات if و else هم برای برقراری شرط درون حلقه ها استفاده کنید که اگر شرط برقرار بود حلقه شروع به کار کند و اگر نبود alert بدهد

اما خوب حلقه ها از پارامترهایی پشتیابنی میکنند که میتوان به آنها شرط داد و بدون نیاز به if و esle و ان هم while میباشد

دراصل ماجرا با for تفاوت خاصی ندارد اما از نظر ساختار و ویژگی مقداری متفاوت است

در قسمت بعد آموزش while میدهیم

موفق باشید

لینک به ارسال

قسمت نهم (While):

در بالا توضیح دادیم که برای شرط درون حلقه ها میتوان از if هم استفاده کرد اما در جاوا اسکریپت متد وجود دارد برای اینکار به اسم while

while چیست ؟

از حلقه while در جاوا اسکريپت ، برای اجرای دستورالعمل های مورد نظر تا زمانی که شرط يا شروط تعيين شده برای حلقه درست باشند ، استفاده می شود .

1-در اين حالت ، ابتدا شرط حلقه در مقابل کلمه کليدی while تعريف می شود .

2-در هر بار اجرای حلقه ، برنامه شرط يا شروط حلقه را چک کرده و در صورت بر قرار بودن آن ، دستورالعمل های حلقه را يکبار اجرا کرده و مجددا به ابتدای حلقه باز می گردد .

3-در حلقه while نيز می توان از يک متغير برای کنترل اجرای حلقه استفاده کرد .

4-در صورت استفاده از يک متغير شمارنده ، بايد گام افزايش يا کاهش متغير در بدنه دستورات حلقه تعريف شود و در صورت عدم استفاده از يک متغير کنترلی ، بايد شرط حلقه در ادامه به نحوی نقض شود ، وگرنه حلقه به صورت بی نهايت ادامه می يابد .


while ( شرط يا شروط حلقه )
{
دستوراالعمل های مورد نظر حلقه
}

یک مثال ساده :


var n = 1 ; تعريف و مقدار دهی متغير کنترلی حلقه
while ( n <= 5 ) قسمتی که شرط قرار میگیرد ما برای مثال قرار دادیم شما میتونید هر شرطی قرار بدید
{
document.write ("Line number is " + n + "<br />") ; دستور چاپ در این خط داده ایم
n++ ; گام افزايشی متغير کنترلی حلقه و یا میتونید از کاهشی استفاده کنید
}

فقط ساختار تفائت دارد دیدید چیز خاصی وجود ندارد

do while :

ساختار حلقه do ... while ، دقيقا همانند حلقه while است ، با اين تفاوت که شرط حلقه do ... while در انتهای حلقه تعريف و کنترل می شود . به عبارت ديگر در اين حلقه ابتدا يکبار دستورات حلقه اجرا شده و در آخر شرط حلقه برای اجرای مجدد ، کنترل می شود که در صورت درست بودن يکبار ديگر دستورات آن خواهد شد .

مزيت اين حلقه نسبت به حلقه while اين است که ، در حلقه while در صورت عدم برقراری شرط حلقه دستورات آن هيچگاه اجرا نخواه شد . اما در حلقه do ... while ، حتی در صورت غلط بودن و عدم برقراری شرط حلقه ، دستورات آن حداقل يکبار اجرا خواهد شد .

شکل کلی تعريف يک حلقه do ... while به صورت زير است :


do
{
دستورات حلقه
}
while ( شرط يا شروط حلقه )


var n = 1 ; تعريف و مقدار دهی متغير کنترلی حلقه
do
{
document.write ("Line number is " + n + "<br />") ;
n++ ; گام افزايشی متغير کنترلی حلقه
}
while ( n <= 5 )

خروجی میشود :


Line number is 1
Line number is 2
Line number is 3
Line number is 4
Line number is 5

مثال : در مثال زير يک حلقه do ... while تعريف شده که شرط اجرای دستورات آن کوچکتر بودن متغير c از 5 است . اما قبل از حلقه متغير c با مقدار 8 مقدار دهی شده است . می بينيم که با وجود اشتباه بودن و عدم برقراری شرط حلقه دستورات آن حداقل يکبار اجرا شده و خروجی توليد کرده است ، ولی سری دوم اجرای حلقه به دليل عدم برقراری شرط آن اجرا نشده است :


var c = 8 ; تعريف و مقدار دهی متغير کنترلی حلقه
do
{
document.write ("Line number is " + c + "<br />") ;
c++ ;
}
while ( c <= 5 )

خروجی میشود :


Line number is 8

لینک به ارسال

قسمت دهم :

ذر این قسمت درباره توابع صحبت میکنیم

برای استفاده از دستوراتی که تاکنون آموختید باید از توابع استفاده کنید

توابع به مجموعه ای از واحد دستور العمل ها میباشد (زیر برنامه ها) که هربار لازم است میتواند توسط طراح و برنامه نویس اجرا شود

سوال:چرا از توابع استفاده کنیم ؟ مگه به صورت عادی نمایش نمیدهد؟!

جواب:چرا نمایش میدهد اما فرض کنید چندین عمل دارید که لازم است در چندین جای مختلف در اون برنامه اجرا شود ، خب باید شما آنرا چندین باره بنویسید و.....

استفاده از توابع در صفحات و اسکريپت ها ، امکانات زير را به برنامه نويس می دهد :

1-دستورات يک تابع ( حتی در زمانی که اسکريپت آن در درون صفحه قرار دارد ) ، تا زمانی که فراخوانی نشود ، اجرا نخواهد شد . از توابع برای تعريف دستور العمل هايي استفاده می شود که می خواهيم اجرای آنها کنترل شده باشد و در مواقع معينی ( مثل وقوع يک رويداد يا ... ) انجام شود .

3-يک تابع را می توان از هر نقطه ای در صفحه فراخوانی کرد .

4-يک تابع می توان يکسری متغيرها را به عنوان پارامتر ورودی دريافت کرده و همچنين يک مقدار را به عنوان خروجی به نقطه ای که از آن فراخوانی شده، باز گردهند .

توابع متشکل از چندیت خط دستور هستند و میتوانند چندین بار مورد استفاده قرار بگیرند.

فرم کلی یک تابع به صورت زیر است :


function نام تابع ( )
{
دستورات تابع
}

نام تابع که مشخص است همان اسمی که برای فرم کلی دستورالعمل ها میدهیم

دستورات هم که مشخص است پس چیز گنگ و یا ... وحود ندارد

یک نمونه :


function welcome( )
{
document.write ( "Just For Fun" )
}

و اما خروجی چیزی نمایش داده نمیشود چون تابع در جایی فراخانی نشده است پس برای همین باید به صورت زیر فراخانی شود :

برای مثال بالا فراخانی میکنیم :


welcome ( ) ;

نکته : يک تابع را می توان توسط رويدادهای يک کنترل HTML مثل يک دکمه فرمان نيز فراخوانی کرد . در اين حالت بايد مقدار رويداد مورد نظر را در تگ کنترل ، برابر نام تابع در نظر گرفت . به مثال زير دقت کنيد .

مثال : در مثال زير تابع welcome که در مثال قبل توسط يک اسکريپت ديگر فراخوانی شده بود ، در اينجا توسط رويداد کليک ( onclick ) دکمه فرمان btnclick فراخوانی می شود . برای فراخوانی تابع بر روی دکمه فرمان مثال کليک کنيد .


< html >
< head >
< title > عنوان صفحه < /title >
< /head >
< body >
< script type="text/javascript" >
function welcome( )
{
document.write ( "Just For Fun Black_Sky" )
}
< /script >
< input type="button" id="Button1" onclick="welcome( )" value=" click me ! " / >
< /body >
< /html >

یک تابع میتواند پارامتر هایی (Parameters) را نیز قبول کند.

نمونه :


function function_name(Parameters){
قسمت بدنه ی تابع
}

Parameters: ( آرگومان)

يک متغير است که می توان در هنگام فراخوانی يک تابع ، مقدار آن را به تابع ارجاع داد . به پارامتر ، آرگومان نيز می گويند .

يک تابع می تواند ، چندين متغير را به عنوان پارامتر ورودی دريافت کند . پارامترهای يک تابع را بايد در هنگام تعريف تابع ، در پرانتز مقابل نام آن تعيين کرد ، که پارامترها را با کاما از هم جدا می کنيم .

در هنگام فراخوانی يک تابع که دارای پارامتر است ، بايد در پرانتز مقابل نام آن ، مقادير متناظر با پارامترهايش را اعلام کرد . اين پارامترها بايد از لحاظ تعداد و نوع کاملا يکسان با پارامترهای تعريف شده در تابع باشند .

ساختار به صورت زیر میباشد:


funciton Name ( Parametr 1 , Parametr 2 , ... )
{
Code
}

مثال:


function black ( var num1 , var num2 )
{
code
}

در هنگام فراخوانی يک تابع نيز بايد به شکل زير پارامترهای آن را مقدار دهی کرد . توجه شود که نوع و تعداد متغيرها بايد کاملا يکسان با پارامترهای تعريف شده برای تابع باشد ، در غير اين صورت error رخ داده و تابع اجرا نمی شود .


function نام تابع g ( Parametr 1 مقدار , Parametr 2 مقدار , ... )
{
دستورات تابع
}

فراخانی باید مقدار دهی شود مثل :


multiple ( 2 , 10 ) ;

نکته مهم : پارامتر های يک تابع ، به عنوان متغيرهای محلی برای آن تابع قابل استفاده هستند .

برای کسانی که تازه برنامه نویسی شروع کرده اند مقدار درک شاید سخت باشد برای همین یک مثال میزنم :

یک تابع تعریف میکنیم به اسم black (دقت کنید کوچک و بزرگ بودن مهم است) و 2 پارامتر تعریف میکنیم به num1 , num2 پس میشود :


function black ( num1 , num2 )
{

}

حالا ما میخواهیم مقدار های num1 در num 2 ضرب کنیم پس میشود :


function black ( num1 , num2 )
{
document.write(num1 * num2)
}

حال یک تابع تعریف میکنیم به اسم black2 و در آن مقدارها را تعیین میکنیم (در اینجا میخواهیم تابع را در تابع دیگر فراخانی کنیم)


function black2 ( )
{
var a = Text1.value ;
var b = Text2.value ;
multiple ( a , b ) ;
}

و در آخر میشود :


< script type="text/javascript" >
function black ( num1 , num2 )
{
document.write ( num1 * num2 ) ;
}
< /script >
< script type="text/javascript" >
function black2 ( )
{
var a = Text1.value ;
var b = Text2.value ;
black ( a , b ) ; فراخوانی تابع با پارامترهای لازم و چاپ خروجی
}
< /script >
< input type="button" id="Button2" onclick="black2( )" value=" click me ! " />
< input type="text" id="Text1" />
< input type="text" id="Text2" />

نحوه تعريف مقدار بازگشی برای يک تابع :

يک تابع می تواند پس از انجام دستورات در نظر گرفته شده برای آن ، مقداری را به عنوان خروجی به نقطه ای که از آن فراخوانی شده است ، باز گرداند .

برای تعيين مقدار بازگشتی يک تابع از دستور return استفاده کرده ، که مقدار خروجی را درپرانتز مقابل آن دستور به شکل زير تعريف می کنيم .

return ( مقدار بازگشتی ) ;

نکته : مقدار بازگشتی ، می تواند يک رشتته يا عدد ، يک متغير و يا يک عبارت محاسباتی باشد .

مثال : تابع black را در مثال قبل با دستور return بازنويسی کرده ايم . در اين حالت تابع به جای استفاده از دستور document.write با دستور return ، مقدار را برای چاپ خروجی به تابع black2 بر می گرداند :


< script type="text/javascript" >
function black ( num1 , num2 )
{
return ( num1 * num2 ) ;
}
< /script >
< script type="text/javascript" >
function black2 ( )
{
var a = Text1.value ;
var b = Text2.value ;
document.write (black ( a , b )) ; فراخوانی تابع با پارامترهای لازم
}
< /script >
< input type="button" id="Button2" onclick="black2( )" value=" click me ! " />
< input type="text" id="Text1" />
< input type="text" id="Text2" />

لینک به ارسال

قسمت یازدهم :

کادر پيام يا هشدار ( alert Box ) __ قبلا توضیح داده شده است

کادر دريافت تاييد (confirm Box )

کادر دريافت ورودی ( prompt Box )

-----------

در آموزش قسمت ششم توضیح دادیم که چگونه از alert ها درون جاوا اسکریپت استفاده کنیم و خب این پنجره دارای قابلیت و ویژگی هایی است که در اینجا بحث میکنیم

جهت یاد آوری :

برنامه ای بنویسید که یک عدد بگیرد و اگر آن عدد کوچکتر از 10 بود یک متن alert کند و اگر نبود یک پیغام جهت خطا نمایش دهد( چاپ کند) .

نکته 1 : متن خطاها اختیاری میباشد

نکته 2: وقتی میگوییم چاپ کند یعنی به صورت پرینت نمایش دهد (document.write)

----

راه حل ها به روش های متفاوتی میباشد که خب این یکی از ویژگی های برنامه نویسی میباشد اما من ساده ترین روش ها را با استفاده از چیزهایی که آموختید قرار میدهم

1-ابتدا یک تابع تعریف میکنیم مثلا به نام mahdi

2-درون تابع از دستورات شرطی if و else استفاده میکنیم

3-با استفاده از alert و document.write دستورات خروجی میگیریم

=======


function mahdi ()
{
var x =input.value;
if (x <= 10)
alert("Good Work");
else document.write("No") ;
}

ساختار html هم به صورت زیر میشود :


<input type="text" id="input" / >
<input type="button" value="click " onclick="mahdi()" />

confirm Box :

خب درباره پیغام خطا توضیح دادیم و اما برای اعلام يک پيام به کاربر و دريافت نظر آن مبنی بر قبول يا عدم قبول پيام مورد نظر از confirm Box استفاده می شود .

اين کادر دارای 2 دکمه فرمان OK و Cancel است ، که در صورت انتخاب گزينه OK ، کادر مقدار مثبت ( True ) و در صورت انتخاب گزينه Cancel ، کادر مقدار منفی ( False ) را به صفحه بر می گرداند .

ساختار :

ساختار هم به صورت زیر میباشد :


confirm ( " متن پيام " ) ;

خب همانطور که گفتیم از 2 مقدار استفاده میکند درست یا غلط خب ما میتونیم از پاسخ درست یا غلطی که به ما برمیگرداند در برنامه نویسی استفاده کنیم همانند دستورات شرطی اما دقت کنید اینجا فقط 2 مقدار هست بگذارید یک نمونه مثال برنم :

میخواهم از کاربر درخواست کنیم که به یک صفحه منتقل شود اما قبلش میخواهیم پیغامی براش نمایش داده شود که آیا میخواهید منتقل شوید یا خیر

خب اگر مقدار برگشتی true بود پس ما منتقل میکنیم (و یا متنی چاپ میکنیم هر کدام راحت تر هستید) اگر مقدار flase برگشت یک متن دیگه نمایش دهد

به صورت زیر میتوان نوشت :


function mahdi( )
{
var x = confirm ( "Do you want go to home page ? " ) ;
if ( x == true )
document.write( "Go To Home " );
else
document.write ( " You pressed Cancel ! " ) ;
}

, html


<input type="button" id="btnChange" value=" go to Home Page ? " onclick="mahdi( )" />

prompt Box :

در این باکس هم میتوان مقداری وارد کرد و آن هم دارای 2 مقدار هست ok و cancell

ورودی از سمت کاربر دریافت میشود

نمونه :


<script type="text/javascript" >
function mahdi( )
{
var name = prompt ( "enter your name") ;
if ( name != null )
document.write ( "hello dear " + name + " " + "Welcome" ) ;
}
}
</script >
<input type="button" value=" Enter " onclick="mahdi( )" />

لینک به ارسال

*** صحبتی با دوستان :

* اول اینکه ممنون از همه دوستانی که این تاپیک پیگیری میکنند دوم چند نکته نیاز دیدم که بگم

* این آموزش ها مقدمه ای بر آموزش های بعدی در زبان های مختلف هستند یعنی سعی کردم به حدی به زبان ساده صحبت کنم که هم برای برنامه نویسان و هم برای کاربران عادی راحت و قابل درک باشد پس به راحتی قابل آموختن هستند اما اگر * این آموزشها نیاموخته باشید و منظور از نوع متغیر ها ، دستورات شرطی و... ندانید مطمئن باشید در آموزش بعدی که زبان هایی همچون php , perl , python , ruby هستند هم نمیتوانید برنامه نویسی کنید چون خیلی از توضیحات در این آموزش

* داده شده است .پس دقت کنید و تمرین ها خط به خط خودتون بنویسید و انجام بدید تا به مشکل بخورید و در صدد حل مشکل باشید

---------------------------

***خیلی از دوستان گفتند چرا از این زبان شروع کردید به آموزش »

>>این زبان همانطور که در پست دوم این تاپیک توضیح دادم یک زبانی هست که بر روی مرورگر اجرا میشود و نیاز به هیچ ابزار یا ... ندارد و مقداری قابل درک و فهم تر برای شروع میباشد

>>در این زبان شما نیاز به پردازش خاصی نداید که باگ خاصی بدهد و سیستم دچاز ضعف امنیتی کند و بیشتر مواقع ارجعیت دارد

>>این زبان پایه زبان های و یا کتابخانه هایی همچون Jquery و ... میباشد و بعد آموزش میتونید به راحتی با خوندن چند خط jquery هم یاد بگیرید (البته استاد شدن نه)

*** سوال بعدی که دوستان پرسیدند آموزش ها از چه منبعی میباشد ؟!

>> آموزش ها از تمامی منابع در سرتاسر نت جمع آوری گردیده منبع خاص و مشخصی ندارد که کپی شده باشد یا ... به راحتی میتونید ببینید

>>ashiyane.org - w3school -developer1 - کتاب javascript نویسنده احمد بادپی و خودم و تجربیاتم

>>پس به عبارت دیگر منبع ها متعدد میباشد

-------------------------

قسمت دوازدهم :

حلقه ها رو آموختیم و اما ادامه دستورات break و continue

Break :

شما زمانی میخواهید که شرط درون حلقه چک کنید تا مقدار معینی اما بعدش میخواهید به نقطه خاصی از برنامه که رسید آن متوقف شود و از حلقه خارج شود

برای این کار شما باید از دستور break استفاده کنید . هر جا که دستور break وجود داشته باشد حلقه چک میشود وچه درست و چه غلط از حلقه خارج میشود

نکته: دستورات break , continue هر 2 در حلقه ها و... قابل استفاده هستند

یک مثال میزنم : من میخواهم یک مقدار عدد از کاربر بگیرم و بعد شروع کند به شمارش تا به عدد 100 برسد و بعد متوقف کند


function mahdi(){
var x = txtinput.value ;
for ( ; ;x++)
{
document.write("Mahdi" +" "+ x + "</br>")
if (x == 100) break;
}
}

و ساختار html آن میشود :


<input type="text" id="txtinput" />
<input type="button" onclick="mahdi( )" value="click me" />

به همین سادگی شروع به شماردن کرد و ایستاد

حتی اگر بخواهید هم میتونید از کاربر هر 2 مقدار بگیرید هم مقدار شروع و هم مقدار پایان


function mahdi(){
var x = txtinput.value ;
var y = input.value ;
for ( ; ;x++)
{
document.write("Mahdi" +" "+ x + "</br>")
if (x == y) break;
}
}

انقدر میشمارد تا به عدد ما برسد و break هم پایان بهش میدهد

continue :

این دستور زمانی هست که شما میخواهید درون حلقه یک بار شرط چک شود و اگر درست نبود حلقه متوقف میشود و به ابتدای حلقه میرود

مثال:


var x;
for ( x= 1 ; x <=25; x++ ){
if ( x == 17) continue;
document.write("mahdi" + x +"<br>");
}

-----------------------------

حالا قسمت به قسمت بررسی میکنیم :

1-یک متغیر تعریف کردیم :


var x;

2-حلقه که قبلا آموزش دادیم مینویسیم :


for ( x= 1 ; x <=25; x++ )

3-شرطی قرار میدهیم که اگر به عدد 17 رسید حلقه متوقف و باز شرط چک کند :


if ( x == 17) continue;

4-در این خط هم دستور چاب یا... میدهیم


document.write("mahdi" + x +"<br>");

-------

موفق باشید

Black_Sky

لینک به ارسال
  • 2 هفته بعد...

Error.png

قسمت سیزدهم :

خطا در جاوا اسکریپت

زمانی که شما کدنویسی میکنید باید توامی جوانب و شرایط هم در نظر بگیرید بسته شدن ناگهانی ، داشتن خطا و موارد این چنینی که خب قبل باید برایش فکری میکردید

خطا ها به حالت های مختلفی میتوانند رخ دهند

همانند :: دادن مقدار نادرست از سمت کاربر

زمانی هست شما یک برنامه مینویسید که درون اعمال ضرب و تقسیم انجام میشود و خب خیلی از مواقع ابهاماتی هم در ریاضیات وجود دارد مثل عدد تقسیم بر صفر

حال اگر کاربر این عدد تقسیم بر 0 کند برنامه شما دچار اختلال شده و از کار می افتد

یک برنامه نباید از کار بیوفتد و برنامه نویس باید به فکر باشد که اگر خطا ایجاد شد قبلا برای آن طرحی داده است مثلا نمایش پیغامی همانند : این عمل مجاز نیست

البته شما میتوانید از دستورات شرطی هم استفاده کنید اما برنامه شما دارای یک سری محدودیت هم خواهد شد که بعدا توضیح خواهم داد

در زبان انگلیسی برای تلاش مجدد از کلمه try استفاده میکنند و در اینجا هم در صورت خطا میخواهیم تلاش کنیم تا مشکل کاربر برطرف یا گزارش یا هر نحو دیگر انجام دهیم پس از توابع try و catch استفاده میکنیم

Try & Catch :

به صورت کلی ساختار دستورات به اینگونه است که شما دستوراتی که میخواهید انجام شود درون try قرار میدهید و دستوراتی که میخواهید بعد اتفاق افتادن خطا نمایش داده شود و یا انجام شود درون catch قرار میدهیم

به اینصورت اول try دستور انجام میدهد و در صورت غلط بودن و بروز خطا به catch میرود

مثالی از ساختار اولیه و خام :


try
{
You Code Is Not True
}
catch ( X )
{
Command 2
}

یک مثال : یک برنامه مینویسیم که mahdi را چاپ کند


function test()
{
document.wriet ( "Mahdi" ) ;
}

html


<input type="button" value="click me !" onclick="test()" />

خب در بالا میبینید که برنامه به درستی نوشته نشده است و شما نمیتوانید از دستور شرطی اینجا استفاده کنید که اگر برنامه به صورت املاء هم اشتباه بود کاری انجام دهد پس همین برنامه درون try قرار میدهیم:


function test()
{
try
{
document.wriet ( "Mahdi" ) ;
}
}
catch ( error )
{
alert ( "WOW / Error" ) ;
}
}

ابندا چک کرد و خطا داد و برای جایگزینی خطا یک alert تعیین کردیم

به همین سادگی ()

دستور throw :

این دستور برای زمان هایی که پروژه های سنگین تر و نیار به خطایابی سخت تر و کامل تر میباشد استفاده میشود

البته از نظر مفهوم و درک کمی سخت به نظر میرسد اما چیز خاصی ندارد

توسط دستور throw در جاوا اسکريپت می توان يک خطايابی کامل تر را انجام داد . با استفاده از اين دستور به همراه ساختار try ... catch ، می توان روند اجرای برنامه و بروز خطا را کاملا تحت کنترل داشت و يک پيغام خطا دقيق طراحی کرد .

نکته : دستور throw به تنهايي کاربردی نداشته و بايد آنرا با ساختار دستوری try ... catch به کار برد .

در مثال زير سعی شده است ، تا چگونگی استفاده از يک دستور throw را در قالب ساختار try ... catch توضيح داد .

مثال : در مثال زير يک اسکريپت ساده برای دريافت ورودی از کاربر طراحی شده است . تابع Enter_Num که توسط دکمه فرمان Enter Number فراخوانی می شود ، در ابتدا يک کادر متن برای دريافت ورودی از کاربر ، نمايش می دهد . مقدار دريافتی از کاربر در متغير Num ذخيره می شود . سپس در يک ساختار try ... catch ، مقدار دريافتی از کاربر بررسی می شود .

در حالت اول ، چنانچه کاربر مقداری را در کادر وارد نکرده و آنرا خالی ارسال کرده باشد ، برنامه خطای 1 را شناسايي و يک پيام هشدار مبنی بر وارد کردن عدد نمايش داده و سپس مجددا تابع Enter_Num را برای دريافت مقدار صحيح اجرا می کند . در حالت دوم اگر کاربر عددی بزرگتر از 100 را وارد کرده باشد ، برنامه خطای دوم را شناسايي کرده و يک پيغام هشدار مبنی بر بزرگ بودن عدد وارده را نمايش داده و مجددا تابع Enter_Num را اجرا می کند . به کد مثال و نحوه استفاده از دستور throw دقت کنيد :


<script type="text/javascript" >
function Enter_Num ( )
{
var Num = prompt ( "Enter a number please : " , "" ) ;
try
{
if ( !Num )
throw "Error1"
else if ( Num > 100 )
throw "Error2"
}
catch ( er )
{
if ( er == "Error1" )
{
alert ( "Plese enter a number !" ) ;
Enter_Num ( ) ;
}
if ( er == "Error2" )
{
alert ( "Number too big . Enter a smaller number !" ) ;
Enter_Num( ) ;
}
}
}
</script >
<input type="button" id="BtnEnter" value="Enter Number " onclick="Enter_Num( )" />

لینک به ارسال
  • 2 سال بعد...

سلام مهندس واقعا عالی بود دست گلت درد نکنه

مهندس من یک سوال دارم 

من میخام یک فایل جاوا اسکریپت خارجی بسازم و توی اون یک متغیر از نوع رشته ای تعریف کنم و از این فایل خارجی در دو تا از صفحه های سایت استفاده کنم به این صورت که در صفحه اول که index هستش یک کنترل textbox و یک دکمه قرار بدم و با کلیک بر روی دکمه مقدار درون textbox در درون متغیر ذخیره بشه و در صفحه دوم سایت یک کنترل label قرار بدم و مقدار درون متغیر رو در label نمایش بدم

ممنون میشم راهنمایی بفرمایید

لینک به ارسال

سلام

به انجمن خوش اومدین دوست عزیز

 

لطفا سوالاتون رو در این بخش مطرح کنید:
برنامه نویسی استاتیک

لینک به ارسال
  • Morteza unpinned this موضوع

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...