Заголовок документа



бет12/26
Дата15.03.2024
өлшемі465.78 Kb.
#495676
1   ...   8   9   10   11   12   13   14   15   ...   26
JAVA SCRIPT-ОБЪЕКТІГЕ БАҒЫТТАЛҒАН СКРИПТІК БАҒДАРЛАМАЛАУ ТІЛІ-оқулық

Объекті


JavaScript объектілер жұптық атау-мәні (кілт-мәні) коллекцияларын білдіреді. Олар ұқсас:

  • Python словары.

  • Perl және Ruby хештер.

  • C және C++ хеш кестелері.

  • Java-да HashMaps.

  • PHP-да ассоциативті массив.

JavaScript объект қасиеттері атымен жол құрылады, ал мәні JavaScript кез келген деректер түрі болуы мүмкін, тіпті басқа да объектілер. Бұл кез-келген қиындықтағы деректер құрылымын жасауға мүмкіндік береді.
Объекті жасауға екі негізгі тәсілі бар:
var obj = new Object();
Сонымен қатар:
var obj = {};
Осы екі жазба бір нәрсені жасайды. Екінші жазба литерал объекті деп аталады және өте ыңғайлы. Мұндай тәсіл JSON форматы негізі болып табылады, және кодты жазу кезінде оны пайдалану ең жақсы шешім болып табылады.
Литерал объектінің көмегімен тек бос объектілерді құрмай, жәнеде деректермен объектілерді құруға болады:
var obj = { name: "Carrot", "for": "Max", details: {
color: "orange", size: 12
} }
Объектінің қасиетіне қол жеткізудің екі тәсілін алуға болады:
obj.name = "Simon"; var name = obj.name;
Немесе...
obj["name"] = "Simon"; var name = obj["name"];
Бұл екі әдіс сондай-ақ, салалас. Бірінші әдісті, егер қандай әдіс қажет екенін анық білгенде пайдаланылады. Екінші әдіс қатар қасиеттері атаулары ретінде қабылданады, және есептеу процесінде есептеу атын анықтауға мүмкіндік береді.
Айта кету керек, соңғы әдіс кейбір қатарларға және кодты минимизаторлы оңтайландыруға кедергі келтіреді. Егер қажеттігі болып объект қасиеттері аттары ретінде резервтелген сөздер тағайындалса, онда бұл әдісте пайдалы болуы мүмкін:
obj.for = "Simon";
// Вызовет Syntax error, ведь 'for' это зарезервированное слово obj["for"] = "Simon"; // А тут всё номрально
obj.details.color; // orange obj["details"]["size"]; // 12
Массивтер JavaScript объектілердің жеке жағдайы. Олар іс жүзінде бірдей жұмыс жасайды (егер қасиеттер атымен сан болып табылса, онда оған қол жеткізу тек [] жақша ішінде шақыру арқылы болады), тек бір
ғажайып қасиеті 'length' (ұзындығы) бар. Ол санды қайтарады, ең үлкен массив индексі +1 тең.
Ескіше массив құру:
var a = new Array(); a[0] = "dog";
a[1] = "cat";
a[2] = "hen"; a.length; // 3
Бірақ әлдеқайда литерал массив пайдалануға ыңғайлы:
var a = ["dog", "cat", "hen"]; a.length; // 3
Есте сақтаңыз, array.length қасиеті массивте элементтердің санын көрсету міндетті емес. Үлгісін көріңіз:
var a = ["dog", "cat", "hen"]; a[100] = "fox";
a.length; // 101
Есте сақтаңыз — массив ұзындығы бұл оның ең үлкен индексі плюс бір. Элементі жоқ массивке қол жеткізу үшін, онда undefined алыңыз:
typeof a[90]; // undefined
Массив элементтерін жинақтау үшін мынадай тәсілді пайдаланыңыз:
for (var i = 0; i < a.length; i++) {
// Сделать что-нибудь с элементом a[i]
}
Бұл кодты жақсартуға болады, ол үшін length мәні әрбір итерацияда қайтадан мәнді сұрамау қажет:
for (var i = 0, len = a.length; i < len; i++) {
// Сделать что-нибудь с элементом a[i]
}
Тағы бір тәсілі бар жазбалар, ол жаман көрінбейді, бірақ шын мәнінде бір жетіспеушілігі бар:
for (var i = 0, item; item = a[i++];) {
// Сделать что-нибудь с элементом item
}
for циклдың бірінші бөлігінде екі айнымалыны жариялаймыз. Екінші бөлімінде әр итерациямен жаңа біліктілік жүргізіледі және бірден тексеріледі — ол дұрыс немесе жоқ. Егер дұрыс болса, онда цикл жұмысын жалғастырада. Бұл циклдың кемшілігі массивтің элементі жалған мән (мысалы, undefined) кездестірсе жұмысын тоқтатады.
Мынадай әдісті қолдануға болады, өте сенімді бола отырып, бұл массивтің бірде-бір элементтері жалған мәнді қайтармайтын болады (мысалы, массивтер, объектілер немесе коллекциялар тораптары DOM). Егер сіздің массив құрамында сандық немесе жолдық параметрлер болса,
жолдық мәліметтер, яғни ықтималдығы, бұл цикл қасиеттері нөл немесе бос жолға жолығады. Сондықтан жоғарыда көрсетілген жазбаның екінші жолын пайдаланған жақсы.
Массив элементтерін, сондай-ақ for...in цикл көмегімен жинақтауға болады. Бірақ, егер кенеттен Array.prototype қасиетінде қандай да бір өзгертілу болса, онда ол да таңдауға қатысатын болады. Бұл әдісті пайдаланбаңыз.
Ең жаңа тәсілі массивтің қасиеттері — бұл ECMAScript5–ке қосылған forEach() әдісі:
["dog", "cat", "hen"].forEach(function(currentValue, index, array) {
// Сделать что-нибудь с currentValue или array[index]
});
Массивке деректер қосу үшін, push() әдісін пайдаланыңыз:
a.push(item);
Массивтердің тағыда көптеген пайдалы әдістері бар (3-кесте).

    1. кесте



Достарыңызбен бөлісу:
1   ...   8   9   10   11   12   13   14   15   ...   26




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет