JS 2009 (ES5)
ECMAScript 2009
JavaScript’ning birinchi yirik tahriri.
ECMAScript 2009 ES5 sifatida ham tanilgan.
ES5 imkoniyatlari
| Xususiyat | Tavsif |
|---|---|
| "qat’iy foydalaning" | Kodni "qat’iy rejimda" bajarishga ruxsat beradi |
| String [] access | Stringdagi belgilangan indeksdagi belgini qaytaradi |
| Ko‘p qatorli Stringlar | \ bilan ekranlangan bo‘lsa, stringlarni bir necha qatorga yozish imkonini beradi |
| String.trim() | Stringning har ikki tomonidagi bo‘sh joylarni olib tashlaydi |
| Array.isArray() | Agar o‘zgaruvchi massiv bo‘lsa, true qiymatini qaytaradi |
| Array forEach() | Har bir Array elementi uchun funksiyani chaqiradi |
| Array map() | Har bir elementdagi funksiyadan yangi massiv yaratadi |
| Array filter() | Sinovdan o‘tgan massiv elementlaridan massiv yaratadi |
| Array reduce() | Massivni bitta qiymatga keltiradi (chapdan) |
| Array reduceRight() | Massivni bitta qiymatga qisqartiradi (o‘ngdan) |
| Array every() | Barcha massiv qiymatlari testdan o‘tishini tekshiradi |
| Array some() | Ba’zi qiymatlar testdan o‘tishini tekshiradi |
| Array indexOf() | Element qiymatini qidiring va uning o‘rnini qaytaradi |
| Array lastIndexOf() | Element qiymatini qidiring va uning o‘rnini qaytaradi |
| JSON.parse() | JSON’ni JavaScript obyektiga o‘giradi |
| JSON.stringify() | JSON’ni stringga o‘giradi |
| Date.now() | Nol sanadan boshlab millisekundlar sonini qaytaradi |
| Date toISOString() | Date obyektini ISO stringiga aylantiradi |
| Date toJSON() | Date obyektini JSON stringiga aylantiradi |
| Property getters | Xususiyat qiymati qanday olinishini aniqlash imkonini beradi |
| Property setters | Xususiyat qiymati qanday o‘rnatilishini aniqlash imkonini beradi |
| Reserved names | Zaxiralangan nomlarni xususiyat nomlari sifatida ishlatish imkonini beradi |
| Object.create() | Mavjud obyektdan obyekt yaratadi |
| Object.keys() | Obyekt kalitlari bilan massivni qaytaradi |
| Obyektni boshqarish | Object management methods |
| Obyektni himoya qilish | Object protection methods |
| Object defineProperty() | Obyekt xususiyatlarini aniqlash yoki o‘zgartirish imkonini beradi |
| Function bind() | Obyektlarga boshqa obyektlardan metodlarni qarzga olish imkonini beradi |
| Trailing commas | obyekt va Array ta’riflarida vergul qo‘yish imkonini beradi: |
Brauzerlarda qo‘llab-quvvatlash
JavaScript 2009 2013-yil iyul oyidan boshlab barcha zamonaviy brauzerlarda qo‘llab-quvvatlanadi:
| Chrome 23 |
IE/Edge 10 |
Firefox 21 |
Safari 6 |
Opera 15 |
| Sep 2012 | Sep 2012 | Apr 2013 | Jul 2012 | Jul 2013 |
"Qat’iy foydalanish" direktivasi
"use strict" JavaScript kodi "qat’iy rejimda" bajarilishi kerakligini belgilaydi.
Qattiq rejimda siz, masalan, e’lon qilinmagan o‘zgaruvchilardan foydalana olmaysiz.
Barcha dasturlaringizda qat’iy rejimdan foydalanishingiz mumkin. Bu sizga aniqroq kod yozishga yordam beradi, masalan, e’lon qilinmagan o‘zgaruvchilardan foydalanishni oldini olish.
"use strict" shunchaki string ifodadir. Qadimgi brauzerlar tushunmasa, xatoga yo‘l qo‘ymaydi.
Stringlarda xususiyatga murojaat qilish
charAt() metodi stringdagi belgilangan indeksdagi (pozitsiyadagi) belgini qaytaradi:
ES5 stringlarda xususiyatga murojaat qilish imkonini beradi:
Stringda xususiyatga murojaat qilish natijasini biroz oldindan aytib bo‘lmasligi mumkin.
Batafsil ma’lumot: JS string metodlari.
Ko‘p qatorli stringlar
ES5 allows string literals over multiple lines if escaped with a backslash:\ usuli universal qo‘llab-quvvatlamasligi mumkin. Eski brauzerlar teskari chiziq atrofidagi bo‘shliqlarga boshqacha munosabatda bo‘lishi mumkin. Ba’zi eski brauzerlar \ belgisi orqasida bo‘sh joy qoldirishga ruxsat bermaydi.
String literalini sindirishning xavfsizroq usuli bu string qo‘shishdan foydalanishdir:
Zaxiralangan so‘zlar xususiyat nomlari sifatida
ES5 zaxiralangan so‘zlarni xususiyat nomlari sifatida ishlatish imkonini beradi:
String trim() metodi
trim() metodi stringning har ikki tomonidagi bo‘sh joylarni olib tashlaydi.
Batafsil ma’lumot: JS string metodlari.
Array.isArray()
isArray() usuli obyektning Array ekanligini tekshiradi.
Misol
const fruits = ["Banana", "Orange", "Apple", "Mango"];
result = Array.isArray(fruits);
O‘zingiz sinab ko‘ring »
Batafsil ma’lumot: JS massiv metodlari.
Massivlarning forEach() metodi
forEach() usuli har bir massiv elementi uchun funksiyani bir marta chaqiradi.
Batafsil ma’lumot: JS massiv iteratsiya metodlari.
Massivlarning map() metodi
map() usuli har bir Array elementida funksiyani bajarish orqali yangi Array yaratadi.
Misol
Har bir massiv qiymatini 2 ga ko‘paytiring:
const numbers1 = [45, 4, 9, 16, 25];
const numbers2 = numbers1.map(myFunction);
function myFunction(value) {
return value * 2;
}
O‘zingiz sinab ko‘ring »
Batafsil ma’lumot: JS massiv iteratsiya metodlari.
Massivlarning filter() metodi
filter() usuli sinovdan o‘tgan massiv elementlaridan yangi massiv yaratadi.
Misol
Qiymati 18 dan katta bo‘lgan elementlardan yangi massiv yarating:
const numbers = [45, 4, 9, 16, 25];
const over18 = numbers.filter(myFunction);
function myFunction(value) {
return value > 18;
}
O‘zingiz sinab ko‘ring »
Batafsil ma’lumot: JS massiv iteratsiya metodlari.
Massivlarning reduce() metodi
reduce() usuli massivni bitta qiymatga kamaytiradi.
Misol
Massivdagi barcha sonlar yig‘indisini toping:
const numbers = [45, 4, 9, 16, 25];
let sum = numbers.reduce(myFunction);
function myFunction(total, value) {
return total + value;
}
O‘zingiz sinab ko‘ring »
Batafsil ma’lumot: JS massiv iteratsiya metodlari.
Massivlarning reduceRight() metodi
reduceRight() metodi massivni bitta qiymatga keltiradi (o‘ngdan chapga).
Misol
Massivdagi barcha sonlar yig‘indisini toping:
const numbers1 = [45, 4, 9, 16, 25];
let sum = numbers1.reduceRight(myFunction);
function myFunction(total, value) {
return total + value;
}
O‘zingiz sinab ko‘ring »
Batafsil ma’lumot: JS massiv iteratsiya metodlari.
Massivlarning every() metodi
every() metodi massivning barcha qiymatlari sinovdan o‘tishini tekshiradi.
Misol
Barcha qiymatlar 18 dan kattaligini tekshiring:
const numbers = [45, 4, 9, 16, 25];
let allOver18 = numbers.every(myFunction);
function myFunction(value) {
return value > 18;
}
O‘zingiz sinab ko‘ring »
Batafsil ma’lumot: JS massiv iteratsiya metodlari.
Massivlarning some() metodi
some() usuli ba’zi Array qiymatlari testdan o‘tganligini tekshiradi.
Misol
Ba’zi qiymatlar 18 dan kattaligini tekshiring:
const numbers = [45, 4, 9, 16, 25];
let allOver18 = numbers.some(myFunction);
function myFunction(value) {
return value > 18;
}
O‘zingiz sinab ko‘ring »
Batafsil ma’lumot: JS massiv iteratsiya metodlari.
Massivlarning indexOf() metodi
indexOf() usuli element qiymatini qidiradi va uning o‘rnini qaytaradi.
Misol
Element qiymati uchun massivni qidiring:
const fruits = ["Apple", "Orange", "Apple", "Mango"];
let position = fruits.indexOf("Apple") + 1;
O‘zingiz sinab ko‘ring »
Batafsil ma’lumot: JS massivda qidiruv metodlari.
Massivlarning lastIndexOf() metodi
lastIndexOf() indexOf() bilan bir xil, lekin massiv oxiridan izlaydi.
Misol
const fruits = ["Apple", "Orange", "Apple", "Mango"];
let position = fruits.lastIndexOf("Apple") + 1;
O‘zingiz sinab ko‘ring »
Batafsil ma’lumot: JS massivda qidiruv metodlari.
JSON.parse()
JSON-dan keng tarqalgan foydalanish veb-serverdan ma’lumotlarni olishdir.
Tasavvur qiling-a, siz ushbu matn stringini veb-serverdan oldingiz:
'{"name":"John", "age":30, "city":"New York"}'
JavaScript Function JSON.parse() matnni JavaScript obyektiga aylantirish uchun ishlatiladi:
Misol
const txt = '{"name":"John", "age":30, "city":"New York"}'
const myObj = JSON.parse(txt);
O‘zingiz sinab ko‘ring »
Batafsil bizning JSON qo‘llanmamizda o‘qing.
JSON.stringify()
JSON-dan keng tarqalgan foydalanish veb-serverga ma’lumotlarni yuborishdir.
Veb-serverga ma’lumotlarni yuborishda ma’lumotlar string bo‘lishi kerak.
Tasavvur qiling-a, bizda JavaScript-da ushbu obyekt bor:
const myObj = {name:"John", age:30, city:"New York"};
Uni stringga aylantirish uchun JSON.stringify() JavaScript funksiyasidan foydalaning.
const myJSON = JSON.stringify(myObj);
myJSON endi string bo‘lib, serverga jo‘natishga tayyor:
Misol
const myObj = {name:"John", age:30, city:"New York"};
const myJSON = JSON.stringify(myObj);
O‘zingiz sinab ko‘ring »
Batafsil bizning JSON qo‘llanmamizda o‘qing.
Date.now()
Date.now() nol sanadan keyingi millisekundlar sonini qaytaradi (1 yanvar.
1970 00:00:00 UTC).
Date.now() Date obyektida bajarilgan getTime() bilan bir xil natijani qaytaradi.
Batafsil ma’lumot: JS sana metodlari.
Date toISOString() metodi
toISOString() metodi ISO standart formatidan foydalangan holda Date obyektini stringga aylantiradi:
Misol
const d = new Date();
document.getElementById("demo").innerHTML = d.toISOString();
O‘zingiz sinab ko‘ring »
Batafsil ma’lumot: JS sana metodlari.
Date toJSON() metodi
toJSON() Date obyektini JSON sanasi formatidagi stringga aylantiradi.
JSON sanalari ISO-8601 standarti bilan bir xil formatga ega: YYYY-AA-DDTH:mm:ss.sssZ:
Misol
d = new Date();
document.getElementById("demo").innerHTML = d.toJSON();
O‘zingiz sinab ko‘ring »
Batafsil ma’lumot: JS sana metodlari.
Xususiyat getterlari
Xususiyatlarni oluvchi - bu xususiyat qiymatiga kirishda qanday qilib olinishini aniqlash imkonini beruvchi usul.
Bu misol fullName nomli xususiyat uchun oluvchi yaratadi:
Misol
// Create an object:
const Person = {
firstName:
"John",
lastName : "Doe",
get
fullName() {
return this.firstName + " " + this.lastName;
}
};
// Display data from the
object using a getter:
document.getElementById("demo").innerHTML =
Person.fullName;
O‘zingiz sinab ko‘ring »
JS Object Accessors-da Gettes va Setters haqida ko‘proq bilib oling
Xususiyat setterlari
Xususiyatlarni o‘rnatuvchi - bu xususiyat qiymati qanday o‘rnatilishini aniqlash imkonini beruvchi usul.
Ushbu misolda tilning katta harflar yangilanishini himoyalash uchun sozlash moslamasidan foydalaniladi:
Misol
const Person = {
firstName: "John",
lastName : "Doe",
language : "NO",
set lang(value) {
this.language = value.toUpperCase();
}
};
// Set an object
property using a setter:
person.lang = "en";
// Display data from the
object:
document.getElementById("demo").innerHTML =
Person.language;
O‘zingiz sinab ko‘ring »
Ushbu misol til xususiyati uchun sozlagich va qabul qiluvchini yaratadi:
Misol
const Person = {
firstName: "John",
lastName : "Doe",
language : "NO",
get lang() {
return this.language;
},
set lang(value) {
this.language = value;
}
};
// Set an object
property using a setter:
person.lang = "en";
// Display data from the
object using a getter:
document.getElementById("demo").innerHTML =
Person.lang;
O‘zingiz sinab ko‘ring »
JS Object Accessors-dagi Getters va Setters haqida ko‘proq bilib oling
Object.defineProperty()
Object.defineProperty() — ES5’dagi yangi Object metodi.
Bu sizga obyekt xususiyatini aniqlash va/yoki xususiyat qiymatini va/yoki metama’lumotlarni o‘zgartirish imkonini beradi.
Misol
// Create an Object:
const person = {
firstName:
"John",
lastName : "Doe",
language : "NO",
};
// Change a Property:
Object.defineProperty(person, "language", {
value: "EN",
writable : true,
enumerable : true,
configurable : true
});
//
Enumerate Properties
let txt = "";
for (let x in person) {
txt += person[x] + "<br>";
}
// Display Properties
document.getElementById("demo").innerHTML =
txt;
O‘zingiz sinab ko‘ring »
Keyingi misol bir xil koddir, faqat til xususiyatini sanab o‘tishdan yashiradi:
Misol
// Create an Object:
const person = {
firstName:
"John",
lastName : "Doe",
language : "NO",
};
// Change a Property:
Object.defineProperty(person, "language", {
value: "EN",
writable : true,
enumerable : false,
configurable : true
});
//
Enumerate Properties
let txt = "";
for (let x in person) {
txt += person[x] + "<br>";
}
document.getElementById("demo").innerHTML =
txt;
O‘zingiz sinab ko‘ring »
Ushbu misol tilning katta harflar yangilanishini himoyalash uchun sozlagich va qabul qiluvchini yaratadi:
Misol
// Create an Object:
const person = {
firstName: "John",
lastName :
"Doe",
language : "NO"
};
// Change a Property:
Object.defineProperty(person, "language", {
get : function() { return
language },
set : function(value) { language = value.toUpperCase()}
});
// Change Language
person.language = "en";
// Display Language
document.getElementById("demo").innerHTML = person.language;
O‘zingiz sinab ko‘ring »
Batafsil bilib oling:
Object.create()
Object.create() usuli mavjud obyektdan obyekt yaratadi.
Misol
// Create an Object:
const person = {
firstName: "John",
lastName: "Doe"
};
// Create new Object
const man = Object.create(person);
man.firstName = "Peter";
O‘zingiz sinab ko‘ring »
Batafsil ma’lumot: JS obyektni aniqlash
Object.keys()
Object.keys() usuli obyekt kalitlari bilan massivni qaytaradi.
Misol
// Create an Object
const person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
// Get the Keys
const keys = Object.keys(person);
O‘zingiz sinab ko‘ring »
Batafsil bilib oling:
Obyektni boshqarish
ES5 JavaScript’ga obyektlarni boshqarishning yangi metodlarini qo‘shdi:
Obyektlarni boshqarish
// Adding or changing an object property
Object.defineProperty(object, property, descriptor)
// Adding or changing object properties
Object.defineProperties(object, descriptors)
// Accessing a Property
Object.getOwnPropertyDescriptor(object, property)
// Accessing Properties
Object.getOwnPropertyDescriptors(object)
// Returns all properties as an array
Object.getOwnPropertyNames(object)
// Accessing the prototype
Object.getPrototypeOf(object)
Batafsil bilib oling:
Obyektni himoya qilish
ES5 JavaScript’ga obyektlarni himoyalash metodlarini qo‘shdi:
Obyektlarni himoyalash
// Prevents adding properties to an object
Object.preventExtensions(object)
// Returns true if properties can be added to an object
Object.isExtensible(object)
// Prevents changes of object properties (not values)
Object.seal(object)
// Returns true if object is sealed
Object.isSealed(object)
// Prevents any changes to an object
Object.freeze(object)
// Returns true if object is frozen
Object.isFrozen(object)
Batafsil ma’lumot Obyektni himoya qilish bo‘limida.
Function bind() metodi
bind() usuli bilan obyekt boshqa obyektdan usulni olishi mumkin.
Ushbu misol 2 ta obyektni (shaxs va a’zo) yaratadi.
A’zo obyekti shaxs obyektidan to‘liq nom usulini oladi:
Misol
const person = {
firstName:"John",
lastName: "Doe",
fullName: function () {
return this.firstName + " " + this.lastName;
}
}
const member = {
firstName:"Hege",
lastName: "Nilsen",
}
let fullName = person.fullName.bind(member);
O‘zingiz sinab ko‘ring »
Batafsil ma’lumot: Function bind().
Yakuniy vergullar
ES5 obyekt va massiv ta’riflarida vergul qo‘yish imkonini beradi:
Obyekt misoli
person = {
firstName: "John",
lastName: "
Doe",
age: 46,
}
Massiv misoli
points = [
1,
5,
10,
25,
40,
100,
];
Ogohlantirish
JSON keyingi vergullarga ruxsat bermaydi.
JSON obyektlari:
//
Allowed:
var person = '{"firstName":"John", "lastName":"Doe",
"age":46}'
JSON.parse(person)
// Not allowed:
var person = '{"firstName":"John",
"lastName":"Doe", "age":46,}'
JSON.parse(person)
JSON massivlari:
//
Allowed:
points = [40, 100, 1, 5, 25, 10]
// Not allowed:
points =
[40, 100, 1, 5, 25, 10,]
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
