راهنمای سریع جاوا اسکریپت

JavaScript

سلام،

امروزه با توجه به استفاده گسترده از زبان جاوا اسکریپت (JavaScript)، دانستن آن برای هر توسعه دهنده وبی لازم است. این مقاله در یک نگاه و به طور خلاصه زبان جاوا اسکریپت و مفاهیم وی را معرفی کرده و در ادامه نحوه نگارش (Syntax) کدهای آن را آموزش می دهد. همچنین برای درک بیشتر دستورات جاوا اسکریپت نمونه کدهایی در بین بخش‌های مختلف ارائه شده است.

مقدمه

جاوااسکریپت زبانی است که توسط NetScape تولید شده است. هدف از این زبان پویانمایی اشیا داخل صفحات HTML می باشد. جاوا اسکریپت کاملا با زبان برنامه نویسی جاوا فرق دارد. اگر چه ساختار این زبان به سی پلاس پلاس و جاوا شباهت دارد؛ که این امر برای سهولت یادگیری در نظر گرفته شده است. از همینرو دستورهای متداول مانند if, for, try..catch و … در این زبان هم یافت می‌گردند.
کاربرد گسترده این زبان در سایتها و صفحات اینترنی می‌باشد و به کمک این زبان می‌توان به اشیاء داخل صفحات HTML دسترسی پیدا کرد و آنها را تغییر داد. به همین علت برای پویا نمایی در سمت کاربر، از این زبان استفاده می‌شود.

نحوه نگارش مستقیم کدهای جاوا اسکریپت در HTML

کدهای جاوا اسکریپت در صفحات HTML داخل تگ script قرار می گیرند. از خصیصه type برای مشخص کردن زبان اسکریپت نوشه شده استفاه می شود. <script type="text/javascript"> محل شروع کدهای جاوا اسکرپیت و </script> محل پایان کدهای جاوا اسکریپت را مشخص می کنند. مانند:

<html>
<body>
<script type="text/javascript">
document.write("Hello World!");
</script>
</body>
</html>

خروجی کد بالا نوشته‌ی !Hello World می باشد.

اسکریپت خارجی

گاهی اوقات شما نیاز به اجرای یک کد جاوا اسکریپت در صفحات مختلف (بدون نگارش در تک تک صفحات) دارید. و یا کد شما بسیار طولانی است و هنگام کد نویسی در صفحه html شما را دچار مشکل می کند. در این صورت با استفاده از اسکریپت خارجی مشکل شما حل می شود. برای نگارش اسکریپت خارجی ابتدا یک فایل با فرمت js. ایجاد کنید. می توانید پسوند یک فایل txt را به js. تغییر دهید. سپس این فایل را توسط یک ویرایشگر متن مانند Notepad باز کنید. کدهای جاوا اسکریپت خود را بدون تگ <script> در آن قرار دهید و سپس فایل را ذخیره کنید (با پسوند js.)
برای فراخوانی اسکریپت خارجی از خصیصه src تگ <script> استفاده کنید. مانند زیر که xxx.js آدرس فایل جاوا اسکریپت است:

<html>
<head>
<script type="text/javascript">
<script src="xxx.js"></script>
</script>
</head>
<body>
</body>
</html>

سمی‌کالن (;)، فضاهای سفید و حساس به حروف (Case Sensitive)

در جاوا اسکریپت دستورات اجرایی با سمی‌کالن (Semicolon) یا همان ; از هم جدا می شوند. با وجود اینکه استفاده از سمی‌کولن، در صورتی که دستورات در خطوط جداگانه نوشته شده باشند، اختیاریست، نوشتن آن بسیار توصیه می شود. بد نیست مطلب «معاهده‌های کدنویسی» را مطالعه کنید.
فضاها سفید در جاوا اسکرپیت مانند اغلب زبان‌های برنامه نویسی هنگام اجرا در نظر گرفته نمی شوند. مگر اینکه مقدار یک متغیر رشته ای (String) باشند.
زبان جاوا اسکریپت به کوچکی و بزرگی حروف حساس می باشد. به عنوان مثال bgColor با bgcolor برای نیست.

توضیحات (Comments)

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

// این یک توضیح یک خطی است!

/*
این یک توضیح
چند خطی است.
*/

متغیرها (Variables)

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

  • زمانی که نام یک متغیر محلی در داخل یک تابع با نام یک متغیر سراسری (Global) یکی باشد، متغیر محلی باید با var تعریف شود. در این مواقع شما در داخل تابع خود دسترسی به متغیر سراسری ندارید. هم چنین متغیرهای محلی فقط در داخل خود تابع قابل دستیابی می باشند.
  • در توابع بازگشتی استفاده از var الزامیست.

نمونه تعریف متغیر در جاوا اسکریپت

x = 42
var x = 42

انواع داده‌ها در جاوا اسکریپت

شما می تواند داده‌هایی از نوع زیر را در جاوا اسکریپ تعریف کنید:

  • شی (Object)
  • تابع (Function)
  • رشته (String)
  • عدد (Number)
  • نوع داده منطقی (Boolean)

در صورتی که متغییری تعریف نشده باشد، نوع آن متغیر undefined است. برای دستیابی به نوع یک متغیر می توانید از تابع typeof استفاده کنید. در زیر نمونه تعریف متغیرها و استفاده از تابع typeof را مشاهده می کنید:

var aDate = new Date()
var aPowerFunc = new Function("x", "return x * x")
var aString = "I am a string"
var aNumber = 42
var aBoolean = true

alert(typeof aPowerFunc); // typeof aPowerFunc is object
alert(typeof aDate); // typeof aDate is object
alert(typeof aString); // typeof aString is string
alert(typeof aNumber); // typeof aNumber is number
alert(typeof aBoolean); // typeof aBoolean is boolean
alert(typeof nonExistVar); // typeof nonExistVar is undefined
alert(typeof Date); // typeof Date is function. predefined object Date

آرایه ها (Arrays)

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

beans = ["Java beans","Coffee beans","Cacao beans"];
myCars = new Array("Jaguar", "Mercedes", "Rolls Royce");
noOfEntries = myCars.length; // طول آرایه
myCD = new Array(42) // تعریف آرایه ای به نام myCD با 42 عضو
myCD[0] = "Queen" //اولین عنصر آرایه
myCD[1] = "Carlos Santana"
myCD[2] = "Mozart"
myCD[3] = "Chopin"
...
myCD[41] = "Shubidua" //آخرین عنصر آرایه
// تعریف آرایه با کلیدهای مشخص - Associative Array ویا همان Property Maps
assoarr = {color1: "green", color2: "yellow", color3: "white"};

اشیا (Objects)

تعریف یک شی مانند تعریف یک تابع می باشد. مانند:

function objDef(name) {
this.objvar = name
}
// creation of an instance of the above defined object "class" myObj = new objDef("Saeid")

متدها و خصوصیات (Methods, Properties)

متد همان تابع تعریف شده در یک شی و خصیصه، مقادیر متغیرهای آن می‌باشد. مانند:

//Property
//objectName.propertyName = value
//Method
//objectName.methodName = function

function calcArea(radius) {
return(radius * radius * Math.PI);
}

function circle(color, radius) {
this.fillColor = color;
this.area = calcArea(radius);
}

var myCircle = new circle('green', 2);
alert(myCircle.fillColor);
alert(myCircle.area);

عملگرها در جاوا اسکریپت

در زیر عملگرها بر اساس نوع عملیات و داده مورد استفاده دسته‌بندی شده‌اند.

انواع عملگرها برای اعداد
عملگرتوضیحات
+جمع
-تفریق
++افزایش مقدار متغییر به اندازه یک واحد
کاهش مقدار متغییر به اندازه یک واحد
*ضرب
/تقسیم
%باقیمانده
انواع عملگرها برای رشته‌ها
عملگرتوضیحات
+الحاق دو یا چند رشته
+=الحاق محتوای یک رشته با یک یا چند رشته و اختصاص دادن مقدار به رشته اول
انواع عملگرهای منظقی
عملگرتوضیحات
&&و (AND)
||یا (OR)
!خِلاف (NOT)
==مساوی با (equal)
!=نامساوی با (not equal)
===دقیقا مساوی با (از نظر مقدار و نوع داده)
!==نامساوی با (از نظر ارزش) ویا نامساوی (از نظر نوع)
>بزرگتر از
>=بزرگتر از ویا مساوی با (بزرگترمساوی)
<کوچکتر
<=کوچکتر از ویا مساوی با (کوچکتر مساوی)
انواع عملگرها برای تخصیص
عملگرتوضیحات
=اختصاص دادن یک مقدار به متغیر
+=الحاق محتوای متغیر سمت چپ عملگر با یک متغیر و اختصاص دادن مقدار به متغیر سمت چپ
-=تفریق یک متغیر از متغیر سمت چپ عملگر و اختصاص دادن مقدار بدست آمده به متغیر سمت چپ
*=ضرب یک متغیر در متغیر سمت چپ عملگر و اختصاص دادن مقدار بدست آمده به متغیر سمت چپ
/=تقسیم متغیر سمت چپ عملگر و اختصاص دادن مقدار بدست آمده به متغیر سمت چپ
%=تقسیم متغیر سمت چپ عملگر و اختصاص دادن باقیمانده تقسیم به متغیر سمت چپ
سایر عملگرها
عملگرتوضیحات
newایجاد یک شی
deleteحذف یک شی
thisاشاره به شی جاری
typeofدستیابی به نوع متغیر عملوند
voidارزیابی یک عبارت بودن بازیابی مقدار آن

عبارت‌های شرطی (Conditional Statements)

در زیر نحوه نگارش عبارت‌های شرطی با if و switch ارائه شده است.

عبارت شرطی با if

// if ساده
if (condition) {
 statements
}

// if همراه با else
if (condition) { statements
} else {
statements
}

// if خلاصه یک خطی
condition ?  expr1 :  expr2

عبارت شرطی با switch

switch (expression){ case label:
statement;
  break;
 case label2:
statement;
  break;
 default :  statement;
}

حلقه ها (Loops)

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

حلقه for

for(var i=0; i < array.length; i++){
 ...
}

حلقه do … while

var i=0; do {
i+=1;
} while (i < 5)

حلقه while

n=8
while( n > 0) {
n--
}

حلقه while

این حلقه بر روی خصوصیات یک شی اعمالی را انجام می دهد:

student1 = new Student("Hans Christian", "Andersen", 1805); for (props in student1) {
  document.write(student1.props)
}

دستور break و continue

مانند سایر زبان‌های برنامه‌نویسی دستور break حلقه را قطع کرده و برنامه را به بعد از حلقه منتقل می‌کند. دستور continue نیز مانند break حلقه جاری را قطع می‌کند و در ادامه دور بعدی حلقه را اجرا می کند. مانند:

while(i > 0){ if(a[i]=="Orange")
break; i--;
}
while(i > 0){
 if(a[i]!="Orange")
  continue;
oranges++;
}

معرفی بعضی از اشیا موجود در جاوا اسکریپت

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

Date
Array
Boolean
Function
Math
Number
RegExp
String

در ادامه تعدادی از این اشیا بررسی شده اند.

شی Date

برخی از متدهای شی Date
متدتوضیحات
getDate()بازیابی روز ماه جاری (۱-۳۱)
getDay()بازیابی شماره روز هفته جاری (۰-۶)
getYear()سال جاری دو رقمی بین ۰ تا ۹۹ برای سالهای قبل از ۱۹۹۹ و چهار رقمی برای سال‌های بعد از آن
getFullYear()سال جاری چهار رقمی
getHours()ساعت (۰-۲۳)
getMonth()ماه (۰-۱۱) – این شماره از ماه جاری یک ماه کمتر است.
getSeconds()ثانیه جاری (۰-۵۹)
getTime()تعداد میلی‌ثانی‌های گذشته از تاریخ ۱ ژانویه ۱۹۷۰
setDate(),
setHours(),
. . .
مقداردهی به تاریخ و زمان مورد نظر
parse()دستیابی به زمان طی شده از ۱ ژانویه ۱۹۷۰ تا زمان مورد نظر در واحد میلی‌ثانیه
toString()تبدیل تاریخ به رشته

برای استفاده از شی Date می توانید مانند زیر عمل کنید:

now = new Date // تاریخ جاری
nowDay = now.getDay() // (0-6)
nowHour = now.getHour() // (0-23)

شی Boolean

استفاده از شی Boolean بسیار ساده می باشد. در زیر نمونه تعریف آن آمده است:

x = true; // مقدار منطقی true
y = false; // مقدار منطقی false
z = new Boolean(false); // مقدار این شی false است.
z2 = new Boolean("false"); // مقدار ای شی true است! دقت کنید که هر رشته ای که به شی Boolean پاس شود مقدار ای شی را true می کند.
z3 = new Boolean(true); // مقدار این شی true است.

شی Math

همانطور که از اسم این شی مشخص است، کاربرد آن بیشتر در محاسبات و عبارت‌های ریاضی است.

برخی از متدهای شی Math
متد یا عبارتتوضیحات
absقدرمطلق
sin, cos, tan
acos, asin, atan
توابع مثلثاتی
min, maxبدست آورن کمترین و بیشترین مقدار
roundگردکردن مقدار
sqrtبدست آوردن جذر یک عدد
powتوان. اولین مقدار، پایه توان و دومین مقدار نمای آن می باشد. به عنوان مثال Math.pow(x,y) برابر است با xy
randomایجاد یک عدد رندوم بین صفر و یک.
Math.Eمقدار ثابت عدد e (فرمول اولر یا اویلر) حدود ۲,۷۱۸
Math.PIمقدار ثابت عدد پی. حدود ۳,۱۴۱۵۹

نمونه استفاده از آبجکت Math:

a = Math.PI * r*r; with(Math){
a = PI * r*r;
x = sin(y);
}

شی String

برخی از متدهای شی String
متدتوضیحات
boldمانند تگ <bold> رشته را درشت‌تر می‌کند.
italicsمانند تگ <i> عمل می کند.
concatالحاق ۲ یا چند رشته
charAtدستیابی به کاراکتر از طریق ایندکس (اندیس) آن در رشته
fontcolorمانند تگ <font> به صورت <font color=color> عمل می‌کند.
fontsizeمانند تگ <font> به صورت <font size=size> عمل می‌کند.
indexOfپیدا کردن اولین محل یافت شده از یک رشته در رشته دیگر. در صورتی که این جستجو نتیجه‌ای در بر نداشته باشد، مقدار بازگردانده خواهد شد.
lastIndexOfمانند indexOf با این تفاوت که آخرین محل یافت شده در جستجو را نشان می‌دهد.
lengthطول رشته را نشان می‌دهد.
linkبرای ایجاد لینک مانند تگ <a>
bigمانند تگ <big>
smallمانند تگ <small>
strikeمانند تگ <strike>
subمانند تگ <sub>
substringدستیابی به یک زیررشته از رشته مورد نظر.
toLowerCaseتبدیل رشته به حروف کوچک
toUpperCaseتبدیل رشته به حروف بزرگ
replaceبرای جایگزینه یک رشته در رشته دیگر کاربرد دارد.
splitبرای جداکردن رشته بر اساس یک الگو (جداکننده) کاربرد دارد.

مثال‌هایی از استفاده شی String و متدهای آن در زیر ارائه شده است:

var message = "Simple String";
message[0]; // مقدار "S" باز می‌گرداند.
document.write(message.bold()); // محتوای متغییر را به صورت درشت چاپ می‌کند.
message.charAt(0); // همان message[0] می‌باشد.
message.concat(" enhanced"); // مقدار "Simple String enhanced" را باز می‌گرداند.
message.length; // طول عبارت که همان عدد ۱۳ می باشد را باز می‌گرداند
message.indexOf("Simple"); // عدد ۰ را باز می‌گرداند.
message.lastIndexOf("String"); // عدد ۷ را باز می‌گرداند.
message.substring(2,5); // رشته "mple" را باز می‌گرداند.
document.write(message.replace("Simple", "Complex")); // مقدار "Complex String" را باز می‌گرداند.

رویدادها (Events)

منظور از رویداد، انتفاقی است که در سمت کاربر و براساس فعالیت‌های آن رخ می‌دهد. در زیر تعدادی از رویدادها مهم ارائه شده‌اند. دقت نمایید که فراخوانی آن‌ها در تگ‌های خاصی امکان پذیر است. به عنوان مثال رویداد onSubmit در تگ <form> فراخوانده می‌شود.

تعدادی از رویدادهای مهم در جاوا اسکریپت
رویدادزمان رخ دادن و فراخوانی
onSubmitهنگام ثبت شدن فرم
onResetهنگام زدن دکمه reset فرم
onChangeهنگام تغییر یک مقدار
onSelectهنگام انتخاب یک متن در تگ <input> یا <textarea>
onBlurهنگام خارج شدن از فوکوس یک فیلد
onFocusهنگام فوکوس (انتخاب) یک فیلد
onKeydownهنگام فشردن یک کلید به پایین
onKeyupبعد از فشردن و رها کردن یک کلید
onKeypressهنگام فشردن یک کلید (مجموع onKeydown و onKeyup)
onMouseoverزمانی که نشانگر ماوس بر روی منطقه تگ مورد نظر می رود.
onMouseoutهنگامی که نشانگر ماوس از منطقه تگ مورد نظر خارج می شود.
onMousemoveهنگام حرکت دادن نشانگر ماوس در یک منطقه
onClickهنگام کلیک کردن
onDblclickهنگام دابل کلیک کردن
onLoadهنگام بارگزاری صفحه
onUnloadهنگام بستن صفحه مورد نظر
onResizeهنگام تغییر دادن سایز صفحه (پنچره) مورد نظر
onErrorهنگام رخ دادن یک خطا جاوا اسکریپتی

پی‌نوشت

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

منابع

شاد و پیروز باشید :)

شروع کار با Google Maps API

سلام :)
خیلی از ما با سرویس نقشه های گوگل (Google Maps) آشنا هستیم. این سرویس در ویکی پدیا اینگونه تعریف شده است:

گوگل مپس (به انگلیسی: Google Maps، به معنی: نقشه‌های گوگل) یک محصول وب از شرکت گوگل است. در گوگل مپس، نقشه‌های دقیق و کاملی از زمین ارائه می‌گردد. گوگل مپس از فن‌آوری‌هایی چون Tele Atlas استفاده می‌کند.

گوگل مپس این امکان را برای مدیران و برنامه نویسان وب سایت ها فراهم کرده است تا با استفاده از API آن، نقشه های موجود را به دلخواه در وب سایت خود نمایش دهند. در حال حاضر، گوگل رابط های زیر را ارائه می کند:

در ادامه شروع کار با Google Maps JavaScript API V3 را با هم بررسی می کنیم.

برای استفاده از این سرویس در وب سایت یا وبلاگ خود، قبل از هر چیز باید کلید لازم برای ارتباط دامنه خود با گوگل را بدست بیاورید. البته این کلید فقط در برخی مواقع ضروری است. دریافت این key با ثبت نام در Google Maps API براحتی از طرف گوگل برای شما نمایش داده می شود.

ساده ترین نوع پیاده سازی (برنامه Hello, World)

<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
    <style type="text/css">
        html {
            height: 100%
        }
        body {
            height: 100%;
            margin: 0px;
            padding: 0px
        }
        #map_canvas {
            height: 100%
        }
    </style>
    <title>Google Maps JavaScript API v3 Example: Map Simple</title>
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
    <script type="text/javascript">
        function initialize() {
            var myLatlng = new google.maps.LatLng(35.695964, 51.417704);
            var myOptions = {
                zoom: 8,
                center: myLatlng,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            }
            var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
        }
    </script>
</head>
<body onload="initialize()">
<div id="map_canvas"></div>
</body>
</html>

کدهای بالا خیلی گویا هستند ولی چند نکته برای توجه وجود دارد:
• با استفاده از <!DOCTYPE html> مشخص کردیم که مرورگر این صفحه را با استانداردهای html5 پردازش کند.
• کدهای مربوط به API را در داخل تگ script قرار دادیم.
• یک div با شناسه “map_canvas” برای نشان دادن نقشه در نظر گرفتیم.
• با استفاده از اتریبیوت onload تگ body، نقشه را initialize یا مقداردهی اولیه کردیم.
اطلاعات بیشتر در Google Maps Javascript API V3 Tutorial ارائه شده است.

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

یکی از کارهایی که در حال انجام آن هستم، پیاده سازی مراکز پوشش اینترنت توسط یکی از شرکت های ارائه دهنده خدمات اینترنتیست. نمونه اولیه این کار را در زیر مشاهده می فرمایید:


Opacity: 25%   50%   100%

پیوندها

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

همیشه شاد، و موفق باشید ;)

حذف کوکی در جاوا اسکریپت

سلام

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

function Delete_Cookie( name, path, domain ) {
	if ( Get_Cookie( name ) )
		document.cookie = name + "=" + ( ( path ) ? ";path=" + path : "") +
			( ( domain ) ? ";domain=" + domain : "" ) + ";expires=Thu, 01-Jan-1970 00:00:01 GMT";
	return true;
}

در اصل ما کوکی را حذف نمی کنیم. بلکه تاریخ انقراض کوکی را به زمانی در قدیم (در اینجا Thu, 01-Jan-1970 00:00:01 GMT ) تغییر می دهیم. اینکار باعث انقراض کوکی و در نتیجه حذف آن می شود.
(ادامه…)

کوکی ها در جاوا اسکریپت

کوکی ها همیشه برایم مبحث جالبی بوده است. مطمئنا برای شما نیز جالب خواهد بود. از آنجائی که HTTP یک پروتکل stateless یا بدون حالت می باشد. یعنی اگر شما درخواستی را به سرویس دهنده بفرستید و شخص دیگری نیز همین در خواست را به سرویس دهنده ارسال کند، سرویس دهنده توان تشخیص اینکه کدام درخواست مربوط به چه کسی می باشد را ندارد و همه آنها را مانند هم پردازش می کند.
کوکی ها، نشست ها و … برای کمک به تشخیص درخواست ها بوجود آمده اند. برای پردازش کوکی ها به دو تابع نیاز داریم. یکی برای نوشتن کوکی و دیگری برای خواندن کوکی. در زیر این دو تابع را مشاهده می نمائید:

function Set_Cookie(name, value, expires, path, domain, secure )   {
  	var today = new Date();  today.setTime( today.getTime() );
		if ( expires )  {  expires = expires * 1000 * 60;  }
		var expires_date = new Date( today.getTime() + (expires) );
		document.cookie = name + "=" +escape( value ) +  ( ( expires ) ? ";
		expires=" + expires_date.toGMTString() : "" ) +   ( ( path ) ? ";
		path=" + path : "" ) +   ( ( domain ) ? ";
		domain=" + domain : "" ) +  ( ( secure ) ? ";
		secure" : "" );  return true;
}    

function Get_Cookie( name ) {
		var start = document.cookie.indexOf( name + "=" );
	    var len = start + name.length + 1;
		if ( ( !start ) &&  ( name != document.cookie.substring( 0, name.length ) ) )  {
			return null;
		}

		if ( start == -1 )
			return null;

		var end = document.cookie.indexOf( ";", len );

		if ( end == -1 )
			end = document.cookie.length;

	    return unescape( document.cookie.substring( len, end ) );
}

هر کوکی از 2 قسمت اصلی نام و مقدار تشکیل می شود. شرح متغیر های استفاده شده در توابع بالا در زیر آمده است:
name نام کوکی را مشخص می کند.
value مقدار کوکی را مشخص می کند. (بر حسب دقیقه)
expires عمر کوکی را مشخص می کند.
path آدرس فرعی که کوکی برای استفاده در آن نوشته می شود. معمولا همان روت یا همان / است.
domain آدرس دومینی سایت یا وبلاگی که کوکی در آن استفاده شده است.
secur به موضوع امنیت و … مربوط است. نیازی به استفاده از آن نخواهید داشت.

حال برای مثال یک کوکی با نام MyUser و مقدار Guest و با عمر 10 دقیقه می خواهیم که بسازیم. کافیست کد زیر را در وبلاگ یا وب سایت خود قرار دهیم:

<script language="javascript" type="text/javascript">
Set_Cookie('MyUser', 'Guest', 10, '/', 'zebardast.ir');
</script>

برای بدست آوردن مقدار این کوکی نیز کافیست از تابع ()Get_Cookie به صورت زیر استفاده کنید. در زیر مقدار کوکی با استفاده از document.write چاپ شده است:

<script language="javascript" type="text/javascript">
document.write(Get_Cookie('MyUser'));
</script>

مبحث کوکی ها به همین سادگی شروع می شود ولی دارای پیچیدگی های خاصی است. کوکی در دیگر زبان ها مانند php عملکردی مشابه دارد. بزودی توضیحات کامل تری در مورد کوکی ها ارائه خواهد شد.

QueryString در جاوا اسکریپت

هنگامی که یک فرم html با متد get درست کنید، نام پارامتر ها به همراه مقدار آنها در url یا همان آدرس بار بعد از submit کردن فرم دیده می شوند. به عبارت های بعد از علامت ؟ که در url دیده بشوند به اصطلاح QueryString می گویند.
QueryString ها در زبان های گوناگون به طرق مختلف قابل دسترسی هستند. کمتر کسی نحوه دسترسی به آنها از طریق جاوااسکریپت می داند و عده ی معدودی از این قابلیت جاوا اسکریپت استفاده می کنند. فرض کنید url شما در آدرس بار به صورت زیر باشد:

http://www.zebardast.ir/index.php?name=saeid

در این حالت name=saeid برای شما همان QueryString می باشد. برای دسترسی به آن از دستور window.location.search استفاده کنید. بعد از دسترسی به QueryString می توانید با استفاده از indexOf و substring به مقادیر QueryString دست بیابید. کد کامل نشان دادن QueryString در زیر نمایش داده شده است:

<script language="javascript" type="text/javascript">
var search = window.location.search;
document.write("search is :" + search);
</script>

پی نوشت
window.location و در حالت کلی تر window شی مفیدی در جاوا اسکریپت می باشد که در بین کاربران مبتدی زیاد مورد استفاده قرار نمی گیرد. بزودی توضیحات کاملی درباره این شئ به شما دوستان ارائه خواهم داد.