1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، ثبت نام کنید.
    بستن اطلاعیه

آموزش جاوااسکریپت در 34 جلسه

شروع موضوع توسط minaaa ‏12/2/12 در انجمن Java Script

  1. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,795
    تشکر شده:
    6,456
    امتیاز دستاورد:
    113
    پاسخ : آموزش جاوااسکریپت در 34 جلسه

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

    جاوااسکریپت به حروف کوچک و بزرگ حساس است
    تابعی که نامش "myfunction" با تابعی که نامش "myFunction" و همچنین متغیری با نام "myVar" با متغیری به نام "myvar" متفاوت است.
    جاوااسکریپت به اندازه حروف حساس است پس در هنگام ایجاد و یا فراخوانی متغیرها، اشیاء و توابع دقت کنید.

    فضای سفید
    جاوااسکریپت از فضاهای خالی اضافی صرف نظر می کند. شما می توانید از فضاهای خالی برای زیباتر شدن کدتان استفاده کنید. دو خط زیر با هم برابرند:
    کد:

    var name="Hege";
    var name = "Hege";


    شکستن یک خط کد
    در جلسات ابتدایی گفتم که در صورت عدم استفاده از سمی کالن جاوااسکریپت هر خط را یک دستور در نظر می گیرد اما با استفاده از بک اسلش (\) در داخل یک متن رشته ای می توانید یک خط را به دو خط بشکنید. به مثال زیر توجه کنید:
    کد:

    document.write("Hello \
    World!");

    هرچند شما نمی توانید کد را به صورت زیر به دو خط بشکنید:
    کد:

    document.write \
    ("Hello World!");


    بسیار خوب در این جلسه نکات پایه ای جاوااسکریپت تمام شد. در جلسات بعد به مفاهیم اشیاء در جاوااسکریپت می پردازیم.

    [HR][/HR]
     
  2. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,795
    تشکر شده:
    6,456
    امتیاز دستاورد:
    113
    پاسخ : آموزش جاوااسکریپت در 34 جلسه

    آموزش جاوااسکریپت – جلسه بیست و دوم: اشیاء: معرفی اشیاء (Objects)
    بخش دوم آموزش جاوااسکریپت با عنوان اشیاء را آغاز می کنیم. آنچه تا اینجا آموخته اید همگی مقدمات و پایه های جاوااسکریپت بود.

    جاوااسکریپت یک زبان شیء گراست. (Object Oriented Programming (OOP) language)
    یک زبان OOP این امکان را فراهم می کند که شما اشیای خودتان را تعریف کنید و انواع داده ای خودتان را بسازید.

    برنامه نویسی شیءگرا:
    جاوااسکریپت یک زبان شیءگراست. نحوه ساخت اشیاء در بخش پیشرفته (بخش سوم) آموزش داده خواهد شد. در اینجا ما از اشیای داخلی جاوااسکریپت استفاده کرده ونگاهی به آنها می اندازیم و نحوه استفاده از آنها را می آموزیم. در چند جلسه بعدی که مربوط به این بخش است هر یک از این اشیا را بررسی اجمالی کرده و مثال های زیادی از آن ها را خواهیم دید.
    بدانید که شیء نوع خاصی از داده است. هر شیء یک مجموعه خصوصیات (properties) و متدها (methods) دارد.

    خصوصیت ها
    خصوصیت ها مقادیری است که به شیء وصل است. در مثال زیر ما از خصوصیت length در شیء string استفاده کرده ایم تا تعداد کاراکترهای یک رشته را به دست آوریم:
    کد:

    <script type="text/javascript">
    var txt="Hello World!";
    document.write(txt.length);
    </script>

    نتیجه کد بالا به صورت زیر است:
    12

    متدها
    متدها اعمالی است که می تواند روی اشیاء اعمال شود.
    در مثال زیر ما از متد toUpperCase() از شیء string استفاده کرده ایم تا تمام حروف یک متن را به بزرگ تبدیل کنیم.
    کد:

    <script type="text/javascript">
    var str="Hello world!";
    document.write(str.toUpperCase());
    </script>

    نتیجه آن به صورت زیر می شود:
    HELLO WORLD
     
  3. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,795
    تشکر شده:
    6,456
    امتیاز دستاورد:
    113
    پاسخ : آموزش جاوااسکریپت در 34 جلسه

    آموزش جاوااسکریپت – جلسه بیست و سوم: شیء رشته متنی (String Objects) این بخش ها رو بیشتر با مثال پیش میریم می خوایم با متدها و پروپرتی های اشیاء مختلف در جاوااسکریپت آشنا بشیم. اگه شما مثال ها رو ببینید و به خروجی دقت کنید می تونید با این خصوصیات و متدها آشنا بشید.

    مثال 1 برگرداندن طول یک رشته (متن):
    کد:

    var txt = "Hello World!";
    document.write(txt.length);

    مثال 2 چگونگی تغییر دادن سبک متن ها:
    کد:

    var txt = "Hello World!";
    document.write("<p>Big: " + txt.big() + "</p>");
    //متن را با فونت بزرگ نشان می دهد.
    document.write("<p>Small: " + txt.small() + "</p>");
    //متن را با فونت کوچک نشان می دهد.
    document.write("<p>Bold: " + txt.bold() + "</p>");
    //متن را توپر (bold) نشان می دهد.
    document.write("<p>Italic: " + txt.italics() + "</p>");
    //متن را مایل (ایتالیک) نشان می دهد.
    document.write("<p>Fixed: " + txt.fixed() + "</p>");
    //متن را به صورت fixed نشان میدهد. متن فونتی شبیه به ماشین نویسی خواهد داشت.
    document.write("<p>Strike: " + txt.strike() + "</p>");
    //متن را با خطی که از میان آن گذاشته است نشان می دهد.
    document.write("<p>Fontcolor: " + txt.fontcolor("green") + "</p>");
    //رنگ فونت متن را تغییر میدهد.
    document.write("<p>Fontsize: " + txt.fontsize(6) + "</p>");
    //سایز فونت متن را تغییر می دهد.
    document.write("<p>Subscript: " + txt.sub() + "</p>");
    // متن را به صورت زیر نویس نشان می دهد.
    document.write("<p>Superscript: " + txt.sup() + "</p>");
    //متن را به صورت بالانویس نشان می دهد.
    document.write("<p>Link: " + txt.link("http://www.aiapir.com") + "</p>");
    //متن را به صورت لینک نشان می دهد.
    document.write("<p>Blink: " + txt.blink() + " (does not work in IE, Chrome, or Safari)</p>");
    //متن را به صورت روشن و خاموش نشان می دهد که البته در اکسپلورر، کروم و سافاری کار نمی کند.


    مثال 3 کار با متدهای toLowerCase() و toUpperCase():
    کد:

    var txt="Hello World!";
    document.write(txt.toLowerCase() + "<br />");
    document.write(txt.toUpperCase());


    مثال 4 متد match() برای جستجوی یک مقدار مشخص در یک رشته متنی:
    کد:

    var str="Hello world!";
    document.write(str.match("world") + "<br />");
    document.write(str.match("World") + "<br />");
    document.write(str.match("worlld") + "<br />");
    document.write(str.match("world!"));


    مثال 5 متد replace() جایگزین کردن یک رشته با یک رشته دیگر
    کد:

    var str="Visit Microsoft!";
    document.write(str.replace("Microsoft","HusseinJahan’s Blog"));


    مثال 6 متد indexOf() برای برگردان موقعیت مکانی اولین جایی که یک رشته یا کاراکتر مشاهده می شود
    کد:

    var str="Hello world!";
    document.write(str.indexOf("d") + "<br />");
    document.write(str.indexOf("WORLD") + "<br />");
    document.write(str.indexOf("world"));

    خروجی:
    10
    1-
    6

    مثال های بالا تقریباً واضح هستند و نیاز به توضیح خاصی ندارند. ولی اگر سوالی بود در خدمت خواهیم بود.
     
  4. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,795
    تشکر شده:
    6,456
    امتیاز دستاورد:
    113
    پاسخ : آموزش جاوااسکریپت در 34 جلسه

    آموزش جاوااسکریپت – جلسه بیست و چهارم: شیء تاریخ (Date Objects) آموزش جاوااسکریپت – جلسه بیست و چهارم: شیء تاریخ (Date Objects)
    مثال 1 چاپ تاریخ و زمان حاضر
    کد:

    var d=new Date();
    document.write(d);


    مثال 2 برگرداندن سال جاری
    کد:

    var d=new Date();
    document.write(d.getFullYear());


    مثال 3 برگرداندن تعداد میلی ثانیه ها از تاریخ 01.01.1970
    کد:

    var d=new Date();
    document.write(d.getTime() + " milliseconds since 1970/01/01");


    مثال 4 مقدار دادن به تاریخ (تغییر تاریخ)
    کد:

    var d = new Date();
    d.setFullYear(1992,10,3);
    document.write(d);


    مثال 5 تغییر تاریخ امروز (بر اساس UTC) به یک رشته
    کد:

    var d=new Date();
    document.write("Original form: ");
    document.write(d + "<br />");
    document.write("To string (universal time): ");
    document.write(d.toUTCString());


    مثال 6 استفاده از getDay() و یک آرایه برای نوشتن یک روز هفته و برای اینکه فقط یک عدد را به عنوان روز هفته بر نگردانید.
    کد:

    var d=new Date();
    var weekday=new Array(7);
    weekday[0]="Sunday";
    weekday[1]="Monday";
    weekday[2]="Tuesday";
    weekday[3]="Wednesday";
    weekday[4]="Thursday";
    weekday[5]="Friday";
    weekday[6]="Saturday";
    document.write("Today is " + weekday[d.getDay()]);

    مثال 7 نمایش یک ساعت
    کد:

    <html>
    <head>
    <script type="text/javascript">
    function startTime()
    {
    var today=new Date();
    var h=today.getHours();
    var m=today.getMinutes();
    var s=today.getSeconds();
    // add a zero in front of numbers<10
    m=checkTime(m);
    s=checkTime(s);
    document.getElementById('txt').innerHTML=h+":"+m+":"+s;
    t=setTimeout('startTime()',500);
    }
    function checkTime(i)
    {
    if (i<10)
    {
    i="0" + i;
    }
    return i;
    }
    </script>
    </head>
    <body onload="startTime()">
    <div id="txt"></div>
    </body>
    </html>


    ساخت یک شیء Date
    این شیء برای کار با تاریخ ها و زمان ها به کار می رود. اشیاء Date توسط سازنده Date() ساخته می شوند.
    4 راه برای ساخت یک نمونه جدید Date وجود دارد:
    زمان و تاریخ جاری:
    کد:

    new Date()

    میلی ثانیه ها از تاریخ 01/01/1970
    کد:

    new Date(milliseconds)
    new Date(dateString)
    new Date(year, month, day, hours, minutes, seconds, milliseconds)

    اکثر پارامتر های بالا اختیاری هستند. اگر آن ها را مشخص نکنید مقدار 0 برای آنها در نظر گرفه خواهد شد.
    زمانی که یک شیء Date ایجاد می شود، تعدادی از متدها به شما اجازه می دهند که بر روی آن شیء کار کنید. اکثر متدها به شما اجازه می دهند که سال، ماه، روز، ساعت، دقیقه، ثانیه و میلی ثانیه آن شیء را یا بر اساس زمان محلی و یا زمان جهانی (UTC یا GMT) را گرفته و یا مقداردهی نمایید.
    همه ی تاریخ ها در مقیاس تعداد میلی ثانیه ها از تاریخ 01 ژانویه 1970 ساعت 00:00:00 (بر اساس ساعت جهانی UTC) با احتساب هر روز شامل 86400000 میلی ثانیه محاسبه می شوند.
    مثال های از ساخت یک نمونه از شیء Date()
    کد:

    var today = new Date()
    var d1 = new Date("October 13, 1975 11:13:00")
    var d2 = new Date(79,5,24)
    var d3 = new Date(79,5,24,11,33,0)


    مقداردهی (تنظیم) تاریخ
    ما به راحتی می توانیم با کمک متدهای موجود برای شیء Date تاریخ ها را دستکاری کنیم.
    در مثال زیر ما یک شیء تاریخ را ایجاد و آن را به تاریخ اول ژانویه 2010 مقدار دهی کرده ایم:
    کد:

    var myDate=new Date();
    myDate.setFullYear(2010,0,14);


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

    var myDate=new Date();
    myDate.setDate(myDate.getDate()+5);

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

    مقایسه دو تاریخ:
    از این شیء می توان برای مقایسه دو تاریخ هم استفاده کرد.
    مثال بعدی امروز را با تاریخ 14 ژانویه 2100 مقایسه می کند:
    کد:

    var x=new Date();
    x.setFullYear(2100,0,14);
    var today = new Date();

    if (x>today)
    {
    alert("Today is before 14th January 2100");
    }
    else
    {
    alert("Today is after 14th January 2100");
    }

     
  5. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,795
    تشکر شده:
    6,456
    امتیاز دستاورد:
    113
    پاسخ : آموزش جاوااسکریپت در 34 جلسه

    آموزش جاوااسکریپت – جلسه بیست و پنجم: شیء آرایه (Array Objects) مثال ساخت یک آرایه
    کد:

    var i;
    var mycars = new Array();
    mycars[0] = "Saab";
    mycars[1] = "Volvo";
    mycars[2] = "BMW";
    for (i=0;i<mycars.length;i++)
    {
    document.write(mycars + "<br />");
    }



    خروجی:
    Saab
    Volvo
    BMW​

    آرایه چیست؟
    آرایه نوع خاصی متغیر است که در یک لحظه بیش از یک مقدار را در خود نگه می دارد.
    اگر شما لیستی از عناصر داشته باشید (مثلاً لیستی از ماشین ها)، اگر نام هر ماشین را در یک متغیر ذخیره کنیم مثلاً:
    کد:

    var car1="Saab";
    var car2="Volvo";
    var car3="BMW";

    حالا اگر بخواهید بین این عناصر بچرخید تا چیزی را پیدا کنید، یا مثلا به حای 3 ماشین بخواهید 300 تا ماشین را دخیره کنید چه اتفاقی می افتد؟
    بهترین راه حل برای اسن کار آرایه است. آرایه می تواند تمام مقادیر متغیر را تحت یک نام ذخیره کند و شما با استفاده از نام آرایه می توانید به آن ها مراجعه کنید.
    هر عنصر در آرایه یک ID دارد که با آن به راحتی می توان به هر عنصری دسترسی داشت.

    ساخت یک آرایه
    به 3 روش می توان یک آرایه را تعریف کرد.
    1-
    کد:

    var myCars=new Array(); // regular array (add an optional integer
    myCars[0]="Saab"; // argument to control array's size)
    myCars[1]="Volvo";
    myCars[2]="BMW";


    2-
    کد:

    var myCars=new Array("Saab","Volvo","BMW"); // condensed array


    3-
    کد:

    var myCars=["Saab","Volvo","BMW"]; // literal array

    اگر شما عدد یا مقدار true/false را در آرایه ذخیره کنید نوع متغیر بر خلاف string از نوع Number یا Boolean خواهدشد.

    دسترسی به یک آرایه
    شما با استفاده از نام یک آرایه و یک مقدار شاخص (index) می توانید به عناصر آرایه دسترسی داشته باشید. شاخص از 0 شروع می شود.
    کد زیر:
    کد:

    document.write(myCars[0]);

    خروجی زیر را دارد:
    Saab​

    تغییر مقادیر در یک آرایه
    برای تغییر یک مقدار در یک آرایه موجود فقط باید مقدار جدید را در شماره ایندکس مورد نظرتان ذخیره کنید.
    کد:

    myCars[0]="Opel";


    چند مثال:
    اتصال دو آرایه concat()
    کد:

    var parents = ["Jani", "Tove"];
    var children = ["Cecilie", "Lone"];
    var family = parents.concat(children);
    document.write(family);

    خروجی:
    Jani,Tove,Cecilie,Lone​

    اتصال 3 آرایه concat()
    کد:

    var parents = ["Jani", "Tove"];
    var brothers = ["Stale", "Kai Jim", "Borge"];
    var children = ["Cecilie", "Lone"];
    var family = parents.concat(brothers, children);
    document.write(family);

    خروجی:
    Jani,Tove,Stale,Kai Jim,Borge,Cecilie,Lone​

    اتصال تمام عناصر یک آرایه به یک رشته متنی join()
    کد:

    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    document.write(fruits.join() + "<br />");
    document.write(fruits.join("+") + "<br />");
    document.write(fruits.join(" and "));

    خروجی:
    Banana,Orange,Apple,Mango
    Banana+Orange+Apple+Mango
    Banana and Orange and Apple and Mango

    حذف آخرین عنصر یک آرایه pop()
    کد:

    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    document.write(fruits.pop() + "<br />");
    document.write(fruits + "<br />");
    document.write(fruits.pop() + "<br />");
    document.write(fruits);

    خروجی:
    Mango
    Banana,Orange,Apple
    Apple
    Banana,Orange​

    اضافه کردن یک عنصر به آخر یک آرایه push()
    کد:

    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    document.write(fruits.push("Kiwi") + "<br />");
    document.write(fruits.push("Lemon","Pineapple") + "<br />");
    document.write(fruits);

    خروجی:
    5
    7
    Banana,Orange,Apple,Mango,Kiwi,Lemon,Pineapple​

    برعکس کردن ترتیب عناصر در یک آرایه reverse()
    کد:

    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    document.write(fruits.reverse());

    خروجی:
    Mango,Apple,Orange,Banana​

    حذف اولین عنصر یک آرایه shift()
    کد:

    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    document.write(fruits.shift() + "<br />");
    document.write(fruits + "<br />");
    document.write(fruits.shift() + "<br />");
    document.write(fruits);

    خروجی:
    Banana
    Orange,Apple,Mango
    Orange
    Apple,Mango​

    انتخاب عناصر از یک آرایه slice()
    کد:

    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    document.write(fruits.slice(0,1) + "<br />");
    document.write(fruits.slice(1) + "<br />");
    document.write(fruits.slice(-2) + "<br />");
    document.write(fruits);

    خروجی:
    Banana
    Orange,Apple,Mango
    Apple,Mango
    Banana,Orange,Apple,Mango​

    مرتب کردن آرایه sort()
    *
    کد:

    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    document.write(fruits.sort());

    خروجی:
    Apple,Banana,Mango,Orange​

    **
    کد:

    function sortNumber(a, b)
    {
    return a - b;
    }
    var n = ["10", "5", "40", "25", "100", "1"];
    document.write(n.sort(sortNumber));

    خروجی:
    1,5,10,25,40,100​

    ***
    کد:

    function sortNumber(a, b)
    {
    return b - a;
    }
    var n = ["10", "5", "40", "25", "100", "1"];
    document.write(n.sort(sortNumber));

    خروجی:
    100,40,25,10,5,1​

    افزودن یک عنصر در خانه شماره 2 آرایه splice()
    کد:

    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    document.write("Removed: " + fruits.splice(2,0,"Lemon") + "<br />");
    document.write(fruits);

    خروجی:
    Removed:
    Banana,Orange,Lemon,Apple,Mango​

    تبدیل یک آرایه به String
    کد:

    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    document.write(fruits.toString());

    خروجی:
    Banana,Orange,Apple,Mango​

    افزودن یک عنصر به ابتدای یک آرایه unshift()
    کد:

    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    document.write(fruits.unshift("Kiwi") + "<br />");
    document.write(fruits.unshift("Lemon","Pineapple") + "<br />");
    document.write(fruits);

    خروجی:
    5
    7
    Lemon,Pineapple,Kiwi,Banana,Orange,Apple,Mango​


    نکته: متد unshift() در اینتررنت اکسپلورر کار نمی کند.
     
  6. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,795
    تشکر شده:
    6,456
    امتیاز دستاورد:
    113
    پاسخ : آموزش جاوااسکریپت در 34 جلسه

    آموزش جاوااسکریپت – جلسه بیست و ششم: شیء بولی (Boolean Objects) مثال: بررسی یک مقدار بولی: بررسی اینکه یک شیء بولی درست است یا غلط:
    کد:

    var b1=new Boolean(0);
    var b2=new Boolean(1);
    var b3=new Boolean("");
    var b4=new Boolean(null);
    var b5=new Boolean(NaN);
    var b6=new Boolean("false");
    document.write("0 is boolean "+ b1 +"<br />");
    document.write("1 is boolean "+ b2 +"<br />");
    document.write("An empty string is boolean "+ b3 + "<br />");
    document.write("null is boolean "+ b4+ "<br />");
    document.write("NaN is boolean "+ b5 +"<br />");
    document.write("The string 'false' is boolean "+ b6 +"<br />");

    خروجی:
    0 is boolean false
    1 is boolean true
    An empty string is boolean false
    null is boolean false
    NaN is boolean false
    The string 'false' is boolean true
    ساخت یک شیء بولی:
    یک شیء بولی دو مقدار به ما می دهد: true و یا false
    کد:

    var myBoolean=new Boolean();

    اگر مقدار اولیه را برای شیء بولی تعریف نکنید یکی از مقادیر زیر را می گیرد که همگی یک معنا دارند و آن هم false است:
    0
    -0
    null
    ""
    false
    undefined
    NaN​

    برای بقیه مقادیر true است حتی اگر یک رشته “false” را به آن نسبت دهیم.
     
  7. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,795
    تشکر شده:
    6,456
    امتیاز دستاورد:
    113
    پاسخ : آموزش جاوااسکریپت در 34 جلسه

    آموزش جاوااسکریپت – جلسه بیست و هفتم: شیء مث (ریاضی) (Math Objects) مثال: نحوه استفاده از تابع round()
    کد:

    document.write(Math.round(0.60) + "<br />“);
    document.write(Math.round(0.50) + "<br />“);
    document.write(Math.round(0.49) + "<br />“);
    document.write(Math.round(-4.40) + "<br />“);
    document.write(Math.round(-4.60));

    خروجی:
    1
    1
    0
    -4
    -5
    مثال: نحوه استفاده از تابع random()
    کد:

    //return a random number between 0 and 1
    document.write(Math.random() + "<br />“);
    //return a random integer between 0 and 10
    document.write(Math.floor(Math.random()*11));

    خروجی:
    0.005805858713192502
    3
    مثال: نحوه استفاده از تابع max() برای برگرداندن عدد بزرگتر بین دو عدد مشخص
    کد:

    document.write(Math.max(5,10) + "<br />“);
    document.write(Math.max(0,150,30,20,38) + "<br />“);
    document.write(Math.max(-5,10) + "<br />“);
    document.write(Math.max(-5,-10) + "<br />“);
    document.write(Math.max(1.5,2.5));

    خروجی:
    10
    150
    10
    -5
    2.5
    مثال: نحوه استفاده از تابع min() برای به دست آوردن عدد کوچکتر بین دو عدد مشخص:
    document.write(Math.min(5,10) + "<br />“); کد:

    document.write(Math.min(0,150,30,20,38) + "<br />“);
    document.write(Math.min(-5,10) + "<br />“);
    document.write(Math.min(-5,-10) + "<br />“);
    document.write(Math.min(1.5,2.5));

    خروجی:
    5
    0
    -5
    -10
    1.5

    این شیء به شما امکان اجرای دستورات ریاضی را می دهد. Math یک سازنده (Constructor) نیست و تمام خصوصیات و متدهای math را می توانید با استفاده از Math به عنوان یک شیء، بدون ایجاد نمونه جدید (instance) از آن فراخوانی کنید. (این بخش کمی به بحث تخصصی برنامه نویسی پرداخت آن را جدی نگیرید.)
    نمونه دستور:
    کد:

    var x = Math.PI; // Returns PI
    var y = Math.sqrt(16); // Returns the square root of 16


    ثوابت ریاضی
    جاوااسکریپت 8 ثابت ریاضی را از طریق شیء Math در اختیار شما قرار می دهد. که با توجه به مثال های زیر خودتان متوجه می شوید که این ثابت ها کدامند مثلا عدد پی یا عدد نپر یا ...
    کد:

    Math.E
    Math.PI
    Math.SQRT2
    Math.SQRT1_2
    Math.LN2
    Math.LN10
    Math.LOG2E
    Math.LOG10E


    دستورات (متدهای) ریاضی
    علاوه بر ثابت ها شما می توانید به تعدادی دستور ریاضی هم از طریق این شیء دسترسی داشته باشید که مثال هایی از این توابع را در ابتدای جلسه دیدیم.
    متدهای ریاضی موجود در جاوااسکریپت در زیر با نقل یک مثال آورده شده است:
    Math.abs(x) : قدر مطلق x را برمیگرداند.
    کد:

    document.write(Math.abs(7.25) + "<br />");
    document.write(Math.abs(-7.25) + "<br />");
    document.write(Math.abs(null) + "<br />");
    document.write(Math.abs("Hello") + "<br />");
    document.write(Math.abs(7.25-10));

    خروجی:
    7.25
    7.25
    0
    NaN
    2.75​

    Math.acos(x): آرک کسینوس x را بر اساس مقداری بین 0 و PI برمیگرداند. اگر x خارج از بازه -1 تا 1 باشد مقداد NaN را بر میگرداند و برای -1 مقدار PI را برمیگرداند.
    کد:

    document.write(Math.acos(0.64) + "<br />");
    document.write(Math.acos(0) + "<br />");
    document.write(Math.acos(-1) + "<br />");
    document.write(Math.acos(1) + "<br />");
    document.write(Math.acos(2));

    خروجی:
    0.8762980611683406
    1.5707963267948965
    3.141592653589793
    0
    NaN
    Math.asin(x): مانند آرک کسینوس، این تابع آرک سینوس را برمیگرداند. به علت شباهت بسیار زیاد از ذکر مثال و توضیحات خودداری می کنم.

    Math.atan(x): مقدار آرک تانژانت x را بر حسب –PI/2 تا PI/2 برمی گرداند. (بر حسب رادیان)
    Math.atan2(y,x): مقدار آرک تانژانت خارج قسمت آرگومان هایش (x و y) را برمی گرداند. زاویه ای که برمیگرداند مقداری بین –PI و PI است زاویه ای در جهت خلاف عقربه های ساعت و بر حسب رادیان است که بین محور X و نقطه (x,y) ایجاد می شود. توجه کنید که در پارامترهای آن اول y و بعد از آن x می آید.
    مثال:
    کد:

    کد:
    document.write(Math.atan2(8,4));
    
     
    خروجی:
    1.1071487177940904​

    مثال:
    کد:

    document.write(Math.atan(2));

    خروجی:
    1.1071487177940904​

    Math.ceil(x): بزرگترین عدد صحیح بزرگتر از عدد x را برمیگرداند. (برعکس جزء صحیح)
    کد:

    document.write(Math.ceil(0.60) + "<br />");
    document.write(Math.ceil(0.40) + "<br />");
    document.write(Math.ceil(5) + "<br />");
    document.write(Math.ceil(5.1) + "<br />");
    document.write(Math.ceil(-5.1) + "<br />");
    document.write(Math.ceil(-5.9));

    خروجی:
    1
    1
    5
    6
    -5
    -5​

    Math.cos(x): کسینوس x را برمیگرداند که عددی بین -1 و 1 است.
    کد:

    document.write(Math.cos(3) + "<br />");
    document.write(Math.cos(-3) + "<br />");
    document.write(Math.cos(0) + "<br />");
    document.write(Math.cos(Math.PI) + "<br />");
    document.write(Math.cos(2*Math.PI));

    خروجی:
    -0.9899924966004454
    -0.9899924966004454
    1
    -1
    1
    Math.floor(x): جزء صحیح x را برمی گرداند.
    کد:

    document.write(Math.floor(0.60) + "<br />");
    document.write(Math.floor(0.40) + "<br />");
    document.write(Math.floor(5) + "<br />");
    document.write(Math.floor(5.1) + "<br />");
    document.write(Math.floor(-5.1) + "<br />");
    document.write(Math.floor(-5.9));

    خروجی:
    0
    0
    5
    5
    -6
    -6
    Math.log(x): لگاریتم بر مبنای e را برمی گرداند. اگر x منفی باشد مقدار NaN را بر می گرداند.
    کد:

    document.write(Math.log(2.7183) + "<br />");
    document.write(Math.log(2) + "<br />");
    document.write(Math.log(1) + "<br />");
    document.write(Math.log(0) + "<br />");
    document.write(Math.log(-1));

    خروجی:
    1.0000066849139877
    0.6931471805599453
    0
    -Infinity
    NaN​

    Math.max(x,y,z,...,n): بزرگترین عدد را بین اعداد داخل پرانتز بر می گرداند. اگر هیچ عددی را داخل پرانتز نگذارید مقدار منفی بی نهایت (-Infinity) بر می گرداند.
    کد:

    document.write(Math.max(5,10) + "<br />");
    document.write(Math.max(0,150,30,20,38) + "<br />");
    document.write(Math.max(-5,10) + "<br />");
    document.write(Math.max(-5,-10) + "<br />");
    document.write(Math.max(1.5,2.5));

    خروجی:
    10
    150
    10
    -5
    2.5
    Math.min(x,y,z,...,n): کمترین مقدار را از بین اعداد داخل پرانتز بر می گرداند و دقیقاً مانند تابع max است.

    Math.pow(x,y): مقدار x به توان y را برمی گرداند.
    کد:

    document.write(Math.pow(0,0) + "<br />");
    document.write(Math.pow(0,1) + "<br />");
    document.write(Math.pow(1,1) + "<br />");
    document.write(Math.pow(1,10) + "<br />");
    document.write(Math.pow(7,2) + "<br />");
    document.write(Math.pow(-7,2) + "<br />");
    document.write(Math.pow(2,4));

    خروجی:
    1
    0
    1
    1
    49
    49
    16
    Math.sqrt(x): جذر عدد x را بر می گرداند.
    کد:

    document.write(Math.sqrt(0) + "<br />");
    document.write(Math.sqrt(1) + "<br />");
    document.write(Math.sqrt(9) + "<br />");
    document.write(Math.sqrt(0.64) + "<br />");
    document.write(Math.sqrt(-9));

    خروجی:
    0
    1
    3
    0.8
    NaN
    Math.sin(x) و Math.tan(x): مقدار سینوس و تانژانت زاویه داده شده را بر می گرداند.
    کد:

    document.write(Math.sin(3) + "<br />");
    document.write(Math.sin(-3) + "<br />");
    document.write(Math.sin(0) + "<br />");
    document.write(Math.sin(Math.PI) + "<br />");
    document.write(Math.sin(Math.PI/2));

    خروجی:
    0.1411200080598672
    -0.1411200080598672
    0
    1.2246063538223772e-16
    1​

    مثال:
    کد:

    document.write(Math.tan(90) + "<br />");
    document.write(Math.tan(-90) + "<br />");
    document.write(Math.tan(45) + "<br />");
    document.write(Math.tan(60));

    خروجی:
    -1.995200412208242
    1.995200412208242
    1.6197751905438615
    0.320040389379563​

    Math.random() و Math.round(x) نیز در مثال های اول جلسه توضیح داده شد.
     
  8. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,795
    تشکر شده:
    6,456
    امتیاز دستاورد:
    113
    پاسخ : آموزش جاوااسکریپت در 34 جلسه

    آموزش جاوااسکریپت – جلسه بیست و هشتم: شیء عبارات منظم (RegExp Object) RegExp چیست؟
    یک عبارت منظم (Regular Expression) شی ئی است که الگوی کاراکترها را مشخص می کند. وقتی که شما در یک متن در حال جستجو هستید شما از الگویی استفاده می کنید که نشان دهنده این است که شما به دنبال چه می گردید. یک الگوی ساده می اتواند شامل فقط یک کاراکترباشد.
    الگوهای پیچیده تر کاراکترهای بیشتری دارند و برای پارس کردن (Parse یا تجزیه)، بررسی ساختار یا فرمت، جانشینی و یا کارهای دیگر مورد استفاده قرار گیرد.
    عبارات منظم ابزاری قدرتمند برای اجرای الگو سنجی و جستجو و جابجایی در متن ها به کار می رود.

    دستور:
    کد:

    var patt=new RegExp(pattern,modifiers);

    به صورت ساده تر:
    کد:

    var patt=/pattern/modifiers;


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

    مدیفایرهای RegExp (واژه مناسبی برای این کلمه مدیفایر پیدا نکردم شاید پیراینده، اصلاح کننده یا ...)
    از i (ignoreCase) برای اینکه نشان دهیم جستجو به حوف کوچک و بزرگ حساس باشد استفاده می شود.
    از g (global) برای اینکه بگوییم تمام همخوانی ها را بعد از پیدا کردن اولین همخوانی نیز به دست آور به کار می رود.
    مثال:
    کد:

    var str = "Visit KishMehr";
    var patt1 = /kishmehr/i;
    document.write(str.match(patt1));

    خروجی:
    KishMehr​

    مثال:

    کد:

    var str="Is this all there is?";
    var patt1=/is/g;
    document.write(str.match(patt1));

    خروجی:
    is,is​

    مثال:
    کد:

    var str="Is this all there is?";
    var patt1=/is/gi;
    document.write(str.match(patt1));

    خروجی:
    Is,is,is​

    متد test()
    این متد در داخل یک متن دنبال مقدار مورد نظر شما می گردد و در صورتی که در آن وجود داشته باشد مقدار true و در غیر این صورت مقدار false را بر می گرداند.
    مثال:
    کد:

    var patt1=new RegExp("e");
    document.write(patt1.test("The best things in life are free"));

    خروجی:
    true​

    متد exec()
    این متد در داخل متن دنبال مقدار مورد نظر شما گشته و در صورت پیدا کردن آن متن پیدا شده را بر می گرداند و در صورتی که پیدا نکند مقدار null را بر می گرداند.
    مثال:
    کد:

    var patt1=new RegExp("e");
    document.write(patt1.exec("The best things in life are free"));

    خروجی:
    e​

    به دلیل اینکه این مبحث عبارات منظم مبحثی است که خیلی جاها کاربرد دارد و مختص جاوااسکریپت نیست من از توضیحات کامل درباره نحوه نوشتن یک عبارت منظم پیچیده را توضیح نمی دهم و شما را دعوت می کنم که به رفرنس عبارات منظم در سایت W3Schools مراجعه کنید.

    بحث اشیا هم در این جلسه تمام شد و در جلسات بعد به مباحث پیشرفته جاوااسکریپت شامل مرورگرها، کوکی ها، اعتبار سنجی (که رابطه مستقیمی با همین مبحث عبارات منظم دارد)، زمان ها، ساخت اشیاء و ... می پردازیم.

    [HR][/HR]
     
  9. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,795
    تشکر شده:
    6,456
    امتیاز دستاورد:
    113
    پاسخ : آموزش جاوااسکریپت در 34 جلسه

    آموزش جاوااسکریپت – جلسه بیست و نهم: شیء شناسایی نوع مرورگر کاربر
    شیء Navigator شامل اطلاعاتی درباره مرورگر بازدیدکننده وب سایت است.

    شناسایی مرورگر:
    مثال کلی موجود این جلسه روی مرورگرهایی که جاوااسکریپت بر روی آن ها فعال است کار می کند. هر چند بعضی چیزها هم هست که روی یک سری مرورگرهای خاص قدیمی کارایی ندارد.
    بعضی مواقع ما نیاز به این داریم که بدانیم مرورگرهای کاربرانی که به وب سایت ما مراجعه می کنند چیست تا مثلاً بتوانیم نسخه مناسب هر مرورگر را به کاربران نشان دهیم و یا برای به دست آوردن آمار و ارقام و ... کاربرد خواهد داشت.
    استاندار خاصی برای استفاده از شیء navigator وجو ندارد ولی همه مرورگرها از آن پشتیانی می کنند.

    شیء Navigator
    مثال:
    کد:

    txt = "<p>Browser CodeName: " + navigator.appCodeName + "</p>";
    txt+= "<p>Browser Name: " + navigator.appName + "</p>";
    txt+= "<p>Browser Version: " + navigator.appVersion + "</p>";
    txt+= "<p>Cookies Enabled: " + navigator.cookieEnabled + "</p>";
    txt+= "<p>Platform: " + navigator.platform + "</p>";
    txt+= "<p>User-agent header: " + navigator.userAgent + "</p>";
    document.getElementById("example").innerHTML=txt;

    خروجی (البته خروجی در یک تگ div که مقدار id برای آن با example مقداردهی شده است نمایش داده خواهد شد و البته این مشخصات مربوط به مرورگر تستی است که من این مثال را با آن اجرا کردم که فایرفاکس نسخه 5 است.)
    Browser CodeName: Mozilla
    Browser Name: Netscape
    Browser Version: 5.0 (Windows)
    Cookies Enabled: true
    Platform: Win32
    User-agent header: Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.0​

    [HR][/HR]
     
  10. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,795
    تشکر شده:
    6,456
    امتیاز دستاورد:
    113
    پاسخ : آموزش جاوااسکریپت در 34 جلسه

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

    function setCookie(c_name,value,exdays)
    {
    var exdate=new Date();
    exdate.setDate(exdate.getDate() + exdays);
    var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
    document.cookie=c_name + "=" + c_value;
    }

    پارامترهای تابع بالا نام کوکی، مقدار کوکی، و روزهایی که این کوکی معتبر محسوب می شود است.
    در تابع بالا ما ابتدا تعداد روزها را تبدیل به یک تاریخ معتبر می کنیم و سپس تعداد روزها تا زمان غیرمعتبر شدن کوکی ها اضافه می کنیم. بعد از آن نام کوکی ، مقدار کوکی و تاریخ انقضا در شیء document.coolie ذخیره می کنیم.

    سپس ما تابع دیگری می سازیم که آن کوکی را بازیابی می کند:
    کد:

    function getCookie(c_name)
    {
    var i,x,y,ARRcookies=document.cookie.split(";");
    for (i=0;i<ARRcookies.length;i++)
    {
    x=ARRcookies.substr(0,ARRcookies.indexOf("="));
    y=ARRcookies.substr(ARRcookies.indexOf("=")+1);
    x=x.replace(/^\s+|\s+$/g,"");
    if (x==c_name)
    {
    return unescape(y);
    }
    }
    }


    تابع بالا آرایه ای برای گرفتن نام کوکی ها و مقدار آنها می سازد و سپس بررسی می کند که اگر کوکی مورد نظر از قبل وجود داشته است و مقدار کوکی را بر میگرداند.
    در نهایت، تابعی می نویسیم که در صورتی که کوکی تعریف شده باشد و وجود داشته باشد یک پیغام خوش آمدگویی نمیش میدهد و اگر وجودن نداشته باشد یک جعبه اجازه باز می شود و نام کاربر را از او می خواهد و آن نام را در یک کوکی که زمان انقراض آن 365 روز است ذخیره می کند. (با استفاده از فراخوانی تابع SetCookie() این کار را انجام می دهد.)
    کد:

    function checkCookie()
    {
    var username=getCookie("username");
    if (username!=null && username!="")
    {
    alert("Welcome again " + username);
    }
    else
    {
    username=prompt("Please enter your name:","");
    if (username!=null && username!="")
    {
    setCookie("username",username,365);
    }
    }
    }

    کد کامل به صورت زیر خواهد بود:
    کد:

    <html>
    <head>
    <script type="text/javascript">
    function getCookie(c_name)
    {
    var i,x,y,ARRcookies=document.cookie.split(";");
    for (i=0;i<ARRcookies.length;i++)
    {
    x=ARRcookies.substr(0,ARRcookies.indexOf("="));
    y=ARRcookies.substr(ARRcookies.indexOf("=")+1);
    x=x.replace(/^\s+|\s+$/g,"");
    if (x==c_name)
    {
    return unescape(y);
    }
    }
    }

    function setCookie(c_name,value,exdays)
    {
    var exdate=new Date();
    exdate.setDate(exdate.getDate() + exdays);
    var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
    document.cookie=c_name + "=" + c_value;
    }

    function checkCookie()
    {
    var username=getCookie("username");
    if (username!=null && username!="")
    {
    alert("Welcome again " + username);
    }
    else
    {
    username=prompt("Please enter your name:","");
    if (username!=null && username!="")
    {
    setCookie("username",username,365);
    }
    }
    }
    </script>
    </head>
    <body onload="checkCookie()">
    </body>
    </html>