متغیرها، ظرفی برای ذخیره اطلاعات اند:
آیا جبر را از زمان مدرسه به یاد دارید؟
x=5, y=6, z=x+y
آیا به یاد می آورید که یک حرف (مانند x) می تواند برای نگهداری یک مقدار (مثل 5) به کار رود و شما می توانید طبق اطلاعات بالا مقدار z را برابر 11 ارزیابی کنید.
این حروف، متغیر نامیده می شوند و آنها را می توان برای نگهداری مقادیر (x=5) و یا عبارات (z=x+y) استفاده کرد.
متغیرهای JavaScript
مانند جبر، متغیرهای JavaScript نیر برای نگهداری مقادیر و یا عبارات به کار می روند.
متغیرها می توانند اسمی کوتاه داشته باشند مانند X و یا کمی توصیفی باشند مانند Carname
قواعد نامگذاری متغیرهای JavaScript:
- نام متغیرها به حروف کوچک و بزرگ حساس (case sensitive) هستند. (y و Y دو متغیر متفاوت اند)
- نام متغیر می تواند با حروف و یا آندرلاین و یا $ شروع شود.
توجه: چون جاوا اسکریپت Case-sensitive است، نام متغیرهای آن نیز Case-sensitive است.
انواع داده در JavaScript
در متغیرهای JavaScript می توان، انواع دیگر داده، مانند: متن را نیز ذخیره نمود. ("علی احمدی"=person)
در JavaScript یک متن مانند "علی احمدی" یک رشته نامیده می شود.
در JavaScript انواع مختلف متغیر وجود دارد، اما در حال حاضر، فقط به متغیرهای عددی و رشته ای می پردازیم.
زمانی که یک مقدار رشته ای را به یک متغیر انتساب می دهید، باید آنرا در کوتیشن یا دابل کوتیشن (' یا ") قرار دهید.
زمانی که یک عدد را به یک متغیر انتساب می دهید، نیازی به کوتیشن نیست. اگر آنرا در کوتیشن قرار دهید با آن متغیر، مانند یک رشته برخورد خواهد شد.
مثال (متغییرهای JavaScript)
var person="John Doe";
var answer='Yes I am!';
مثال
مقدار یک متغیر در طول اجرای اسکریپت می تواند تغییر کند. شما می توانید به یک متغیر از طریق نام آن برای تغییر یا نمایش مقدارش دستیابی پیدا کنید.
این مثال به شما چگونگی دسترسی و مقداردهی یک متغیر را نشان خواهد داد.
اعلان (ایجاد) متغیرهای JavaScript
در JavaScript ایجاد متغیر بیشتر اوقات به اعلان متغیر معروف است.
شما می توانید متغیبرهای JavaScript را با کلمه کلیدی var اعلان کنید:
var carname;
بعد از تعریف به صورت بالا متغیرها خالی هستند(هنوز هیچ اطلاعاتی داخل آنها نیست)، اگر چه شما می توانید آنها را موقع تعریف مقداردهی نمایید.
var carname="Volvo";
بعد از اجرای دستورات بالا، متغیر x مقدار 5 و carname مقدار "volvo" را در خود نگه می دارد.توجه: اگر یک متغیر JavaScript را بعد از مقدار دهی، دوباره اعلان کنید، مقدار اولیه اش را از دست نخواهد داد.
تعریف چندین متغیر، در یک دستور
می توانید چندین متغیر را در یک دستور اعلان نمایید. فقط دستور را با var شروع کنید و متغیرها را با کاما از هم جدا نمایید:
اعلان ها، می توانند در چندین خط باشند:
age=30,
job="carpenter";
Value = undefined
در برنامه های کامپیوتری، اغلب متغیرها بدون مقدار اعلان می شوند این متغیرها مقدار undefined را خواهند داشت.
بعد از اجرای دستور زیر، متغیر carname مقدار undefined را خواهد داشت:
متغیر های محلی (LOCAL) در JavaScript
متغیرهایی که داخل یک تابع اعلان شده اند، تنها داخل همان تابع، قابل دسترسی اند. (متغیرهای با قلمرو محلی)
شما می توانید در توابع مختلف، متغیرهای محلی با نام های یکسان داشته باشید. (متغیرهای محلی تنها بوسیله تابعی که آنها را اعلان کرده است شناخته می شوند)
متغیرهای محلی بمحض اینکه عملیات تابع تکمیل شد، حذف می شوند.
در فصل های بعدی، درباره توابع بیشتر خواهید آموخت.
متغیر های عمومی (Global) در JavaScript
متغیرهایی که خارج از توابع اعلان شده اند، عمومی می شوند، و در تمام اسکریبت و توابع داخل یک صفحه به آنها دسترسی خواهد بود.
زمانی که یک صفحه وب را ببندید، متغیرهای عمومی حذف خواهند شد.
مقداردهی متغیرهای اعلان نشده
اگر به متغیری که هنوز اعلان نشده مقداری را اختصاص دهید، آن متغیر به طور خودکار اعلان خواهد شد.
مثال:
carname="Volvo";
اگر متغیبرهای x و carname پیش از این وجود نداشته باشند، به طور خودکار، به عنوان متغیرهای عمومی اعلان خواهند شد(البته اگر دستورات بالا خارج از توابع باشد)
محاسبات در JavaScript
همانند جبر ، شما می توانید عملگرهای محاسباتی را با متغیرهای JavaScript به کار ببرید.
شما با انواع عملگرهای جاوا اسکریپت در فصل های بعدی بیشتر آشنا خواهید شد.
element=document.getElementById('myimage')
از جاوااسکریپت به غیر از وب در چه جاهای دیگه ای می تونیم استفاده بکنیم؟
خسته نباشین.
از JavaScript، فقط در سایت ها و پروژه هایی که تحت وب است استفاده می شود.
یه سوال داشتم . این متغیر ها رو درک نمیکنم ! الان مثلا این کد :
var pi=3.14;
var person="John Doe";
var answer='Yes I am!';
چرا باید این کد نوشته بشه در صورتی که همین کد رو میشه به صورت عادی نوشت ! این متغیر ها به چه درد میخورن ؟ تمام کامنت ها رو خوندم اما بازم دلیل استفاده از var رو نفهمیدم ! شما اومدی فقط یک سری متن رو با کد های سخت تر تو سند ایجاد کردی در صورتی که میشد حتی با یک تگ P اونو ایجاد کرد ! لطفا توضیح بدین چه کاری با این متغیر ها میشه انجام داد که با کد های خیلی ابتدایی و ساده نشه انجامشون داد .
در واقع سوال شما رو می شه بصورت زیر خیلی ساده تر کرد ...!
در JavaScript، متغییرها چه کاربردی دارند؟
با استفاده از متغییرها در JavaScript می توان یک مقدار دلخواه را نگهداری نمود. این مقدار در حافظه نگهداری می شود و هر بار با استفاده از نام متغیر می توانیم به آن دسترسی داشته باشیم.
با یک مثال ساده سعی میکنم شما رو بیشتر با کاربرد متغیر در JavaScript آشنا کنم ..!
همان طور که می دانید در فرم ورود، کاربر باید "نام کاربری" و "کلمه عبور" خود را وارد کند و بعد از اینکه روی دکمه "ورود" کلیک کرد، وارد برنامه شود. حالا اگر بخواهیم در بالای پنجره برنامه پیام خوش آمدگویی بدهیم (مثلا "پوریای عزیز خوش آمدی") چطور باید عمل کنیم. و یا اگر در قسمت نظرات بخواهیم بعد از نظر دادن کاربر مورد نظر، دوباره پیام تشکر رو نشان دهیم و ... چه کار باید بکنیم...!؟
اگر بخواهیم طبق گفته شما عمل کنیم، باید یک تگ p بزاریم و متن پیام رو مستقیم داخل اش تایپ کنیم....! اما این کار اصلا بهینه نیست، ما می تونیم خیلی خیلی راحت به محض اینکه کاربر در برنامه لاگین می کند، نام کاربری وی را در یک متغییر نگهداری کنیم و هر جای پروژه که نیاز بود از آن استفاده کنیم.
بنده دقیقا نمیدونم باید از این متغیر ها مثلا اعداد و یا رشته ها در کدام قسمت ساخت وب سایت استفاده کنم.
به طور مثال فرض کنیم داریم سایتی رو برای یک آٓژانس املاک طراحی میکنیم.
الان این مثلا var age=20; و یا var name="علی"; در کجای طراحی وب سایت کاربرد داره؟
از متغیر ها در همه جای شفحه استفاده میشود اما بیشتر در ایجاد فرم ها استفاده میشود
مثلا فیلد نام به یک متغیر انتصاب داده میشود وفیلد فامیل هم به یه متغیی دیگر
بعدن میتوان با دستورات جاوا اسکریپ به فرد با اسم وفامیل خوش امدگویی کرد ویا پیغام هایی بادستورات جاوا اسکریپ به فرد داد
امیدوارم توضیحات من گویا وبرایتان مفید باشد
ایا میشود بجای حروف و کلمات از اعداد استفاده کرد ؟
اگر می شود چگونه؟
اگر منظورتون نامگذاری متغیرهاست، در اکثر زبانهای برنامهنویسی نام متغیرها شامل حروف و اعداد و کاراکتر _ هست. اولین حرف متغیر نمیتونه عدد باشه.
کل نام هم نمیتونه فقط شامل عدد باشه.
تعریف متغیر به صورت زیر خطاست و باعث عدم اجرای کد میشه:
var 1 = 3; // SyntaxError: missing variable name
var 1aaa = 3; // SyntaxError: identifier starts immediately after numeric literal
اما متغیرهای زیر به صورت اصولیست و میتونید ازشون استفاده کنید:
var _1 = 3;
var _1aaa = 3;
گر چه توصیه میشه از نامهای متناسب برای نامگذاری متغیرها استفاده کنید تا خوانایی برنامه بیشتر بشه!!!
y:1
b:2
x:8
متغیر ها:c
یکی از روشها استفاده از آرایه هست. به طوری که کلید آرایه نام متغیر و مقدار اون مقدار متغیر باشه.
روش دوم استفاده از آبجکت هست. به طوری که خصوصیت آن نام متغیر و مقدار اون هم مقدار متغیر باشه.
کد زیر یه نمونهی خیلی ساده است:
<!DOCTYPE html>
<html>
<head>
<title>Show Variable</title>
</head>
<body>
<div style="text-align:center">
<input name="btnShowValue" id="btnShowValue" type="button" value="Show" onclick="rValue();"/>
<div id="result"></div>
</div>
</body>
<script>
function rValue(){
var x = 1;
var y = 253;
var z = 't';
var A = new Array();
A["x"] = x;
A["y"] = y;
A["z"] = z;
var B = {x : x, y : y, z : z};
console.log(A);
console.log(B);
}
</script>
</html>
برای مشاهدهی نتیجهی اجرای کد میتونید از فایرباگ مرور فایرفاکس کمک بگیرید. (اگر این افزونه رو نصب ندارید، حتماً نصب کنید، چون به شدت در کدنویسی صفحات وب به شما کمک خواهد کرد.)
اگر هم براتون مقدور نبود، برای مشاهدهی نتیجه در آرایه از کد alert(A["x"]); //coment و برای مشاهدهی نتیجه آبجکت از کد alert(B.x);//comment استفاده کنید.
البته این کد برای نمایش منظور شماست و جا برای اصولیتر کردن و حرفهای تر کردن داره...
موفق باشید.
لطفا کد زیر را ملاحظه کنید:
<!DOCTYPE html>
<html>
<head>
<title>Show Variable</title>
</head>
<body>
<div style="text-align:center">
<input name="btnShowValue" id="btnShowValue" type="button" value="Show" onclick="rValue();"/>
<div id="result"></div>
</div>
</body>
<script>
var x = 8;
function rValue(){
alert('Before value : ' + x);
x = x + Math.random();
alert('New value : ' + x);
}
</script>
</html>
به تعریف متغیر دقت کنید میبینید که بیرون function تعریف شده. با هر بار کلیک مقدار جدید به مقدار قبلی متغیر اضافه میشه. در واقع متغیر مقدار قبلی خودش رو حفظ میکنه.
چگونه می شود یک تگی را مثلا تگ Div را پنهان کرد و یک رادیو باکس بذاریم که وقتی رو ی آن کلیک می کنیم نمایش داده شود
مرسی
میتونید از کد زیر استفاده کنید. البته ساده است برای اینکه بتونید مفهوم رو درک کنید. خودتون میتونید بر حسب نیاز پیچیدهترش کنید.
<!DOCTYPE html>
<html>
<head>
<title>Show Variable</title>
</head>
<body>
<div style="text-align:center">
<input name="ShowDIV" id="radShow" value ="show" type="radio" onclick="Show(this.value);"/><label for="radShow">Show</label><br/>
<input name="ShowDIV" id="radUnShow" value ="unshow" type="radio" onclick="Show(this.value);"/><label for="radUnShow">Un Show</label>
<div id="result"></div>
</div>
<div id="mainDIV" style="display:none;">This is a test for show or unshow div.</div>
</body>
<script>
function Show(s){
if(s == 'show')
document.getElementById("mainDIV").style.display = "block";
else
document.getElementById("mainDIV").style.display = "none";
}
</script>
</html>
دقت کنید در ابتدا DIV موردنظر توسط استایل display به حالت غیر نمایش در اومده و ما با استفاده از چک باکسها به DIV استایل میدیم. در واقع با کلیک روی رادیوباتنها استایل DIV عوض میشه و از حالت پنهان به آشکار و بالعکس تغییر میکنه.
اقا کد زیر را ببینید وقتی می خواهم متغیر ه را جمع کنم میاد متغیر a را به b می چسباند مثلا اگر a=10 و b= 20 میشه 2010
حتی به رشته هم تبدیل کردم اما undifnd داد
function a(){
var a=prompt("inse1");
var b=prompt("inse2");
c=a+b;
alert(c);}
کدتون رو به صورت زیر بنویسید فکر کنم درست عمل کنه، آخه عددی که از prompt بیرون میاد رشته است و باید اونو تبدیل به عدد کنید:
function a(){
var a=prompt("inse1");
var b=prompt("inse2");
a=Number(a);
b=Number(b);
c=a+b;
alert(c);}
var n=30;
m=50
آیا m هم متغیر است ؟ چرا از واژه Var استفاده نمی کنند ؟؟؟؟ مرسی اگر جواب بدید
کد زیر رو در نظر بگیرید:
foo = 1;
function test() {
foo = bar;
}
test();
alert(foo);
// Result: 'bar'
همان طور که مشاهده می کنید، مقدار متغیر foo در تابع ()test تغییر پیدا کرده است.
حالا به کد زیر توجه کنید:
foo = 1;
function test() {
var foo = 'bar';
}
test();
alert(foo);
// Result: 1
همان طور که می بینید مقدار foo هیچ تغییری نکرده است . دلیل این امر این است که در این تابع از کلمه ی var استفاه کرده ایم. و با این کار عبارت var foo یک متغیر محلی در درون تابع ایجاد می کند که هیچ ارتباطی با متغیر عمومی تعریف شده در بیرون از تابع ندارد.
به عبارت ساده تر، اگر می خواهید در بیرون از توابع، یک متغیر تعریف کنید، می توانید از var استفاده نکنید. اما اگر می خواهید در درون یک تابع یک متغیر تعریف کنید باید حواستان جمع باشد که آیا می خواهید یک متغیر محلی تعریف کنید(با استفاده از var) یا می خواهید از یک متغیر عمومی که در بیرون تعریف شده است استفاده کنید.
if(t==true){
دستورات 1
}else{
دستورات 2
}
همان طور که مشاهده می کنید، از یک دستور شرطی استفاده کرده ایم و اگر که گفتار ما true یا همان راست باشد، دستورات 1 انجام می شود و اگر که گفتار ما false باشد، دستورات 2 انجام می شود.
امیدوارم این مثال مفهوم را رسانده باشد.
عالی بود
var a=true
همون طور که اطلاع دارید، از عبارت var برای تعریف یک متغیر استفاده می شود. حالا عبارت a خود متغیر ما است که اون رو از نوع true که یک مقدار بولی است قرار داده ایم. مقدار بولی، یک مقدار است که فقط true و false را می پذیرد . و می توانیم از مقادیر بولی در شرطی ها و حلقه ها استفاده کنیم. بعنوان مثال فرض کنید می خواهیم اگر متغیر t برابر با true باشد یک مقدار را در کنسول چاپ کنیم:
var t=true;
if(t==true){
console.log("t is true");
}
زیباترین مثالی که از DOM در خاطرم هست مربوط به کتاب HeadFirst JQuery می باشد. در این کتاب از DOM به عنوان یک عکس رادیو گرافی از صفحه ی HTML ذکر شده بود. یعنی اسکلت بندی صفحه ی html در واقع همان html DOM هست.
تصویر زیر را ملاحظه بفرمایید:
کار توابعی مثل()document.getElementById اینه که در html DOM صفحه حرکت کنند و به محض اینکه عنصر مورد نظر را در اسکلت بندی صحفه پیدا کردند، آن عنصر را بر گردونند.
در مثال مذکور هدف این بوده که پاراگرافی که id آن demo می باشد را پیدا کنیم. این کار را با
("var demoP=document.getElementById("demo انجام می دهیم. در حال حاضر مقدار demoP در حقیقت همان پاراگرافی است که id آن demo است.
در خط بعدی هم که مقدار خصوصیت innerHtml پاراگراف را تغییر داده ایم.
demop اسم متغییر و می تونست هر چیزی باشه مثل var result.
شما وقتی که می گویید var x یعنی این متغییر محلی است ولی شما وقتی که بگویید فقط x ای متغیر به صورت سراسری تعریف می شود ؛درست گفتم آیا؟
ولی اگر بدون کلمه var باشه یا همون ایکس تنها هر عمومی محسوب میشه حتی بیرون از تابع یا همون (function)
www.beyamooz.com/javascript/107-basic/388
یک نکته ی دیگر در مورد متغیرهای جاوا اسکریپت این است که متغیرهای جاوا اسکریپت loosely-type هستند. یعنی یک متغیر هر نوع داده ای را نگه می دارد:
var x = "ali";
x=10;
primitive type های زبان جاوا اسکریپت عبارتند از :
هیچ روشی برای تعریف متغیر دلخواه در جاوا اسکریپت وجود ندارد.
البته با استفاده از متغیر های موجود که به آن نوع انتزاعی داده گفته می شود.
که در زبان c به آن ساختمان داده و در جاواسکریپت به آن شی می گویند.
این کامنتای خودمو میخونم خندم میگره :)
سوال قبلی مو خودم جواب میدم؛منظورت آبجکت امیر جان :)
Because there is no way to define your own data types in
ECMAScript , all values can be represented as one of these six. Having only six data types may seem
like too few to fully represent data; however, ECMAScript’s data types have dynamic aspects that
make each single data type behave like several.
به استناد این منبع در نقل قول قبل گفتیم که نوع دلخواه نمی تونیم داشته باشیم.
مثالهای javascript اصلن کاربردی نیستند برای من که مبتدی هستم اصلن متوجه نمیشم حالا این متغیر چی هست و به چه دردی میخوره و کجا کاربرد داره فقط یک سری مثال تعریفی اینجا هست اصلن مفهومی نیست چیکار کنم ؟ راهنمایی کنید لطفا که مبتدیا هم راه بیفتن مرسی
به متغییرها می توانید به عنوان یک ظرف نگاه کنید. ظرفی که برای نگهداری یک داده استفاده می شود و براحتی می توانید با استفاده از نام این ظرف به محتوای آن در طول برنامه دسترسی پیدا کنید.
شاید در این لحظه نتوانید برای آن کاربردی در ذهنتان تجسم کنید ولی جلوتر که بروید متوجه خواهید شد که متغییرها جزء لاینفک برنامه نویسی محسوب می شوند.
بعنوان مثال، فرم ورود کاربران را تجسم کنید، زمانی که کاربر، "نام کاربری" و "کلمه عبور" را وارد کرد و روی دکمه ورود کلیک کرد، در صورتی که اطلاعات صحیح باشند، باید "شناسه یا ID کاربر" را تا زمانی که در سایت فعالیت می کند در دسترس داشته باشیم. خوب در اینجا تنها گزینه ای که داریم استفاده از متغییرهاست ...! در واقع "شناسه یا ID کاربر" را در متغییری بنام user_ID ذخیره می کنیم و زمانی که یک عملیاتی مانند ثبت دیدگاه را انجام داد، می توانیم از آن در قسمت "ثبت کننده دیدگاه" استفاده نماییم.
به function تابع گفته میشه.
و به var هم keyword