متغیرهای JavaScript
متغیرها، ظرفی برای ذخیره اطلاعات اند:
آیا جبر را از زمان مدرسه به یاد دارید؟
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 به کار ببرید.
شما با انواع عملگرهای جاوا اسکریپت در فصل های بعدی بیشتر آشنا خواهید شد.
- نوشته شده توسط امیر پهلوان صادق
- بازدید: 34078
دیدگاهها
آیا برای تعریف متغیر نوشتن کلمه ی var ضروریست؟ چون در مثال های قبلیتان متغیرها را بدون var تعریف کردید.مثل دستور زیر:
element=document.getElementById('myimage')
در javascript ، هنگام تعریف متغییرها، آوردن کلمه کلیدی var اختیاری است.
سلام خدمت اساتید سایت خوبتون.یک سوال داشتم:
از جاوااسکریپت به غیر از وب در چه جاهای دیگه ای می تونیم استفاده بکنیم؟
خسته نباشین.
سلام
از 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="btnS howValue" id="btnSho wValue" type="butt on" value="Sho w" 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);//co mment استفاده کنید.
البته این کد برای نمایش منظور شماست و جا برای اصولیتر کردن و حرفهای تر کردن داره...
موفق باشید.
در جاوااسکریپت نمیشود که یک متغییر static ایجاد کرد؟
با سلام.
لطفا کد زیر را ملاحظه کنید:
<!DOCTYPE html>
<html>
<head>
<title>Show Variable</title>
</head>
<body>
<div style="text-align:center">
<input name="btnS howValue" id="btnSho wValue" type="butt on" value="Sho w" 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="Show DIV" id="radSho w" value ="show&quo t; type="radi o" onclick="S how(this.value) ;"/>< ;label for="radShow">Show</label><br/>
<input name="Show DIV" id="radUnS how" value ="unshow&q uot; type="radi o" onclick="S how(this.value) ;"/>< ;label for="radUn Show">U n Show</label>
<div id="result"></div>
</div>
<div id="mainDI V" style="dis play: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 استفاده نمی کنند ؟؟؟؟ مرسی اگر جواب بدید
وقتی که شما از کلمه var استفاده میکنید قلمرو متغیر شما میشود تابعی که در اون تعریف کرده اید و بیرون تابع کاربردی ندارد ولی اگر شما بدون 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 )z چه می شود اگر تی درست باشد چه معنی می دهد
فرض کنید یه عملی یا یک کاری فقط دو حالت دارد. و از این دو حالت خارج نیست. مثلا یک گفتار، دو حالت دارد: یا راست است و یا دروغ. حالا فرض کنید می خواهیم با برنامه نویسی این گفتار خودمان را مدل سازی کنیم، پس می آییم و از true و false استفاده می کنیم. وقتی که گفتار راست باشد، به آن true را نسبت می دهیم و وقتی که گفتار دروغ باشد به آن false را نسبت می دهیم. مثلا فرض کنید متغیر t گفتار ما باشد. حالا کد زیر را می نویسیم:
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");
}
لطفا توضیح بدید در مثال اخر demoP کارش چیه؟
کاربر عزیز برای اینکه این مثال را بهتر درک کنید باید با DOM آشنایی داشته باشید:
زیباترین مثالی که از DOM در خاطرم هست مربوط به کتاب HeadFirst JQuery می باشد. در این کتاب از DOM به عنوان یک عکس رادیو گرافی از صفحه ی HTML ذکر شده بود. یعنی اسکلت بندی صفحه ی html در واقع همان html DOM هست.
تصویر زیر را ملاحظه بفرمایید:
کار توابعی مثل()document.g etElementById اینه که در html DOM صفحه حرکت کنند و به محض اینکه عنصر مورد نظر را در اسکلت بندی صحفه پیدا کردند، آن عنصر را بر گردونند.
در مثال مذکور هدف این بوده که پاراگرافی که id آن demo می باشد را پیدا کنیم. این کار را با
("var demoP=document. getElementById( "demo انجام می دهیم. در حال حاضر مقدار demoP در حقیقت همان پاراگرافی است که id آن demo است.
در خط بعدی هم که مقدار خصوصیت innerHtml پاراگراف را تغییر داده ایم.
در ادامه توضیح کامل آقای نصوحی باید گفت
demop اسم متغییر و می تونست هر چیزی باشه مثل var result.
یک سوال
شما وقتی که می گویید var x یعنی این متغییر محلی است ولی شما وقتی که بگویید فقط x ای متغیر به صورت سراسری تعریف می شود ؛درست گفتم آیا؟
نکته اگر var x داخل تابع تعریف شده باشه محلی و در بیرون تابع امکان دسترسی نخواهید داشت
ولی اگر بدون کلمه var باشه یا همون ایکس تنها هر عمومی محسوب میشه حتی بیرون از تابع یا همون (function)
در نقل قولی که در لینک زیر آمده است مبحث scope chain را برای شما توضیح داده ام که این مفاهیم را توضیح داده ایم:
www.beyamooz.com/javascript/107-basic/388
لینک بالاخراب است(404)
ضمن تشکر، لینک اصلاح شد.
کاملاً درسته.
یک نکته ی دیگر در مورد متغیرهای جاوا اسکریپت این است که متغیرهای جاوا اسکریپت loosely-type هستند. یعنی یک متغیر هر نوع داده ای را نگه می دارد:
var x = "ali";
x=10;
primitive type های زبان جاوا اسکریپت عبارتند از :
هیچ روشی برای تعریف متغیر دلخواه در جاوا اسکریپت وجود ندارد.
چرا وجود دارد؛می توانید متغیر دلخواه خود را درست کنید.
البته با استفاده از متغیر های موجود که به آن نوع انتزاعی داده گفته می شود.
که در زبان c به آن ساختمان داده و در جاواسکریپت به آن شی می گویند.
عجب قبلاً من قافل بودما
این کامنتای خودمو میخونم خندم میگره :)
سوال قبلی مو خودم جواب میدم؛منظورت آبجکت امیر جان :)
در کتاب PROFESSIONAL JAVASCRIPT® FOR WEB DEVELOPERS نگارش سوم صفحه ی 31 جملات زیر ذکر شده است:
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.
به استناد این منبع در نقل قول قبل گفتیم که نوع دلخواه نمی تونیم داشته باشیم.
داداش اصن reference رو که اوردی نابودم کردی . غلامتم
سلام و تشکر از وقتی که میگذارید
مثالهای javascript اصلن کاربردی نیستند برای من که مبتدی هستم اصلن متوجه نمیشم حالا این متغیر چی هست و به چه دردی میخوره و کجا کاربرد داره فقط یک سری مثال تعریفی اینجا هست اصلن مفهومی نیست چیکار کنم ؟ راهنمایی کنید لطفا که مبتدیا هم راه بیفتن مرسی
سلام
به متغییرها می توانید به عنوان یک ظرف نگاه کنید. ظرفی که برای نگهداری یک داده استفاده می شود و براحتی می توانید با استفاده از نام این ظرف به محتوای آن در طول برنامه دسترسی پیدا کنید.
شاید در این لحظه نتوانید برای آن کاربردی در ذهنتان تجسم کنید ولی جلوتر که بروید متوجه خواهید شد که متغییرها جزء لاینفک برنامه نویسی محسوب می شوند.
بعنوان مثال، فرم ورود کاربران را تجسم کنید، زمانی که کاربر، "نام کاربری" و "کلمه عبور" را وارد کرد و روی دکمه ورود کلیک کرد، در صورتی که اطلاعات صحیح باشند، باید "شناسه یا ID کاربر" را تا زمانی که در سایت فعالیت می کند در دسترس داشته باشیم. خوب در اینجا تنها گزینه ای که داریم استفاده از متغییرهاست ...! در واقع "شناسه یا ID کاربر" را در متغییری بنام user_ID ذخیره می کنیم و زمانی که یک عملیاتی مانند ثبت دیدگاه را انجام داد، می توانیم از آن در قسمت "ثبت کننده دیدگاه" استفاده نماییم.
تا آنجا که من متوجه شدم،برای اعلان یک رشته یا یک مقدار عددی از تابع var استفاده می شود؛و فرقی نمی کند چه عدد باشد و چه حروف یا رشته و از var برای هر دوی آنها استفاده می شود.
به var تابع گفته نمیشه.
به function تابع گفته میشه.
و به var هم keyword
دقیقاً، بهتر از است بجای واژه ی "تابع var" از "کلمه کلیدی var" استفاده کنیم و در ضمن آوردن var اختیاری است. اما پیشنهاد می شود برای خواناتر شدن کد، آنرا ذکر نمایید.