جاوااسكريپت، اشياء عناصرحياتي هستند، اگراشياء را درك كنيد ، جاوااسكريپت را درك خواهيد كرد.
در جاوااسكريپت تقريبا همه چيز يك شئ است:
همه مقادير در جاوااسكريپت بجزء مقادير اوليه شئ ميباشند.
يك مقداراوليه، مقداريست كه داراي هيچ ويژگي ومتدي نمي باشد .بعنوان مثال3.14 يك مقدار اوليه است.
يك نوع داده اوليه، داده ايست كه داراي مقدار اوليه باشد . جاوااسكريپت هفت نوع داده اوليه تعريف ميكند.
مثالها
مقادير اوليه تغيير ناپذير هستند، آنها كدگذاري شده هستند ونميتوان مقدار آنرتغييرداد.
اگرx=3014 باشد، محتوي يا مقداد x را ميتوان تغيير داد، اما مقدار 3.14را نميتوان تغييرداد .
در جدول زير نمونه هاي تغيير ناپذير آمده است.
مقدار | نوع | تــوضيح |
---|---|---|
"Hello" | رشته | "Hello"هميشه "Hello" است . |
3.14 | عدد | مقدار3.14 هميشه 3.14 است . |
true | بولين | trueهميشه true است . |
false | بولين | falseهمشه false است . |
null | null (object) | nullهميشه null است . |
undefined | undefined | undefinedهميشه undefined است . |
متغيرهاي جاوااسكريپت ميتوانند تك مقدار باشند.
مثال ـ متغير تك مقداره
let person = "John Doe";
متغيرها در جاوااسكريپت ميتوانند داراي چندين مقدار باشند .اشياء همچنين متغير هستند، اما آنها ميتوانند مقادير زيادي داشته باشند.
مقادير شئ بصورت زوجname:value نوشته ميشوند .بين name و value كالن قرار ميگيرد.
مثال ـ ايجاد شئ ومقاديرش
let person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
يك شئ در جاوااسكريپت مجموعه اي از زوج هايname:value است.
يك روش معمول براي تعريف شئ استفاده ازكي وردconst است .
مثال ـ تعريف شئ با كي وردconst
const person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
مفادير نام گذاري شده در اشياء جاوااسكريپت ، ويژگي يا خواص ناميده ميشوند .جدول ويژگي مثال مطابق زيراست.
ويژگيProperty - | مقدارValue - |
---|---|
firstName | John |
lastName | Doe |
age | 50 |
eyeColor | blue |
اشيائيكه در جاوااسكريپت بعنوان زوج مقدار ونام نوشته ميشوند مشابه موارد زيرند:
متدها فعاليت هائي است كه ميتوان روي اشياء انجام داد.
ويژگي هاي شئ ميتواند هم مقاديراوليه، هم اشياء ديگر وهم توابع باشد.
يك متد شئ يك ويژگي آنست كه مقدارش شامل تعريف تابعي است .رديف آخر جدول زير متدfullName است
ويژگيProperty - | مقدارValue - |
---|---|
firstName | John |
lastName | Doe |
age | 50 |
eyeColor | blue |
fullName | function(){return this.firstName+" "+this.lastName;} |
شئ جاوااسكريپت محفظه ايست براي نگهداري مقادير نامي ، كه ويژگي ها ومتدها ناميده ميشوند.
در فصل هاي بعدي در مورد متد اشياء مطالب بيشتري خواهيد آموخت.
با جاوااسكريپت اشياء خودتان را ميتوانيد تعريف وايجاد نمايئد.
براي ايجاد اشياء جديد راههاي مختلف زير وجود دارد:
اين يكي از ساده ترين روشهاي ايجاد شئ جاوااسكريپت است.
بااستفاده از شئ ليترالي ، در يك دستور هم يك شئ را تعريف وهم ايجاد ميكنيد.
يك شئ ليتزالي ، ليستي ازname:value كه در داخل { } با كاما تفكيك ميشوند.
مثال ـ در اين مثال يك شئ جديد با چهار ويژگي ايجاد ميشود.
const person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
در تعريف شئ فضاي خالي وشكست خط ، مهم نيستند .آن ميتواند در چند خط تعريف گردد.
مثال ـ تعريف شئ در چند خط
const person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
مثال ـ در اين مثال ابتدا يك شئ تهي جاوااسكريپتي ايجاد مي شود، وبدنبال جهار ويژگي به آن اضافه ميشود.
const person = {};
person.firstName = "John";
person.lastName = "Doe";
person.age = 50;
person.eyeColor = "blue";
در مثال زير يك شئ جاوااسكريپت باnew object() ايجاد وبدنبال چهار ويژگي به آن اضافه ميشود.
مثال ـ ايجاد شئ باnew object()
const person = new Object(); person.firstName = "John"; person.lastName = "Doe"; person.age = 50; person.eyeColor = "blue";
مثالهاي بالا دقيقا مشابه هم عمل ميكنند، اما لزومي ندارد از new object()استفاده كنيد .براي خوانائي ، سادگي و سرعت اجرا از روش شئ ليترالي استفاده كنيد.
اشياء قابل تغييرند، آدرس دهي آنها با مرجع نه بامقدار.
اگر در زيرperson شئ باشد، دستور زير از شئ يك كپي ايجاد نمي كند .
x=person ; // will not create a copy of person
شئx يك كپي از person نيست ، بلكه همان person است .اين دو يك شئ بوده فقط دونامي هستند .
هر تغييري در يكي ازآنها همان تغيير، براي ديگري هم هست .ميتوان گفت در جاوااسكريپت شئ ميتواند چند نام داشته باشد.
مثال ـ شئ با دو نامperson و x
const person = { firstName:"John", lastName:"Doe", age:50, eyeColor:"blue" } const x = person; x.age = 10; // Will change both x.age and person.age