JavaScript 2009 (ES5)
ECMAScript 2009
JavaScript ga birinchi asosiy qayta ko'rish.
ECMAScript 2009 ES5 nomi bilan ham taniladi.
ES5 xususiyatlari
| Xususiyat | Tavsif |
|---|---|
"use strict" | Kodni "qat'iy rejim" da bajarishga imkon beradi |
| String [] kirish | Satrdagi belgilangan indeksdagi belgini qaytaradi |
| Ko'p qatorli satrlar | Agar \ bilan qochilsa satrlarni bir nechta qatorga yoyishga imkon beradi |
String.trim() | Satrning har ikki tomonidagi bo'sh joylarni olib tashlaydi |
Array.isArray() | O'zgaruvchi massiv bo'lsa true qaytaradi |
Array forEach() | Har bir massiv elementi uchun funksiya chaqiradi |
Array map() | Har bir elementda funksiya bajarish orqali yangi massiv yaratadi |
Array filter() | Testdan o'tgan elementlardan massiv yaratadi |
Array reduce() | Massivni bitta qiymatga kamaytiradi (chapdan) |
Array reduceRight() | Massivni bitta qiymatga kamaytiradi (o'ngdan) |
Array every() | Barcha massiv qiymatlari testdan o'tganligini tekshiradi |
Array some() | Ba'zi qiymatlar testdan o'tganligini tekshiradi |
Array indexOf() | Element qiymatini qidiradi va uning o'rnini qaytaradi |
Array lastIndexOf() | Element qiymatini qidiradi va uning o'rnini qaytaradi |
JSON.parse() | JSON ni JavaScript obyektga aylantiradi |
JSON.stringify() | JSON ni satrga aylantiradi |
Date.now() | Nol sanadan beri o'tgan millisekundlar sonini qaytaradi |
Date toISOString() | Sana obyektini ISO satrga aylantiradi |
Date toJSON() | Sana obyektini JSON satrga aylantiradi |
| Xususiyat getter'lar | Xususiyat qiymatini olish usulini aniqlashga imkon beradi |
| Xususiyat setter'lar | Xususiyat qiymatini o'rnatish usulini aniqlashga imkon beradi |
| Zaxira so'zlar | Xususiyat nomlari sifatida zaxira so'zlarga ruxsat beradi |
Object.create() | Mavjud obyektdan obyekt yaratadi |
Object.keys() | Obyektning kalitlari bilan massiv qaytaradi |
| Obyekt boshqaruvi | Obyekt boshqaruv metodlari |
| Obyekt himoyasi | Obyekt himoya metodlari |
Object.defineProperty() | Obyekt xususiyatlarini aniqlash yoki o'zgartirishga imkon beradi |
Function bind() | Obyektlarga boshqa obyektlardan metodlarni qarzga olishga imkon beradi |
| Oxirgi vergullar | Obyekt va massiv ta'riflarida oxirgi vergullarga ruxsat beradi |
JavaScript 2009 barcha zamonaviy brauzerlarda 2013-yil iyul dan beri qo'llab-quvvatlanadi.
"use strict" direktivasi
"use strict" JavaScript kodining "qat'iy rejim" da bajarilishi kerakligini aniqlaydi. Qat'iy rejimda, masalan, e'lon qilinmagan o'zgaruvchilarni ishlata olmaysiz.
Eslatma
Qat'iy rejimni barcha dasturlaringizda ishlatishingiz mumkin. Bu sizga toza kod yozishga yordam beradi. "use strict" shunchaki satr ifodasi. Eski brauzerlar uni tushunmasalar xato chiqarmaydi.
Satrlarda xususiyat kirish
charAt() metodi satrdagi belgilangan indeks (pozitsiya) dagi belgini qaytaradi:
let str = 'HELLO WORLD'
str.charAt(0) // H qaytaradiES5 satrlarda xususiyat kirishga ruxsat beradi:
let str = 'HELLO WORLD'
str[0] // H qaytaradiKo'p qatorli satrlar
ES5 teskari chiziq bilan qochilsa satr literallarini bir nechta qatorga yoyishga ruxsat beradi:
'Hello \
Dolly!'Satr literalini bo'lishning xavfsizroq usuli satr qo'shishdan foydalanishdir:
'Hello ' + 'Dolly!'Xususiyat nomlari sifatida zaxira so'zlar
ES5 xususiyat nomlari sifatida zaxira so'zlarga ruxsat beradi:
let obj = { name: 'John', new: 'yes' }String trim()
trim() metodi satrning har ikki tomonidagi bo'sh joylarni olib tashlaydi.
let str = ' Hello World! '
alert(str.trim())Array.isArray()
isArray() metodi obyekt massiv ekanligini tekshiradi.
const fruits = ['Banana', 'Orange', 'Apple', 'Mango']
result = Array.isArray(fruits)Array forEach()
forEach() metodi har bir massiv elementi uchun bir marta funksiya chaqiradi.
const numbers = [45, 4, 9, 16, 25]
numbers.forEach(myFunction)Array map()
map() metodi har bir massiv elementida funksiya bajarish orqali yangi massiv yaratadi.
const numbers1 = [45, 4, 9, 16, 25]
const numbers2 = numbers1.map(myFunction)
function myFunction(value) {
return value * 2
}Array filter()
filter() metodi testdan o'tgan massiv elementlaridan yangi massiv yaratadi.
const numbers = [45, 4, 9, 16, 25]
const over18 = numbers.filter(myFunction)
function myFunction(value) {
return value > 18
}Array reduce()
reduce() metodi massivni bitta qiymatga kamaytiradi.
const numbers = [45, 4, 9, 16, 25]
let sum = numbers.reduce(myFunction)
function myFunction(total, value) {
return total + value
}Array reduceRight()
reduceRight() metodi massivni bitta qiymatga kamaytiradi (o'ngdan chapga).
const numbers1 = [45, 4, 9, 16, 25]
let sum = numbers1.reduceRight(myFunction)
function myFunction(total, value) {
return total + value
}Array every()
every() metodi barcha massiv qiymatlari testdan o'tganligini tekshiradi.
const numbers = [45, 4, 9, 16, 25]
let allOver18 = numbers.every(myFunction)
function myFunction(value) {
return value > 18
}Array some()
some() metodi ba'zi massiv qiymatlari testdan o'tganligini tekshiradi.
const numbers = [45, 4, 9, 16, 25]
let allOver18 = numbers.some(myFunction)
function myFunction(value) {
return value > 18
}Array indexOf()
indexOf() metodi element qiymatini qidiradi va uning pozitsiyasini qaytaradi.
const fruits = ['Apple', 'Orange', 'Apple', 'Mango']
let position = fruits.indexOf('Apple') + 1Array lastIndexOf()
lastIndexOf() indexOf() bilan bir xil, lekin massiv oxiridan qidiradi.
const fruits = ['Apple', 'Orange', 'Apple', 'Mango']
let position = fruits.lastIndexOf('Apple') + 1JSON.parse()
JSON-ning keng tarqalgan ishlatilishi veb-serverdan ma'lumot olishdir.
const txt = '{"name":"John", "age":30, "city":"New York"}'
const myObj = JSON.parse(txt)JSON.stringify()
JSON-ning keng tarqalgan ishlatilishi veb-serverga ma'lumot yuborishdir. Veb-serverga ma'lumot yuborilayotganda, ma'lumot satr bo'lishi kerak.
const myObj = { name: 'John', age: 30, city: 'New York' }
const myJSON = JSON.stringify(myObj)Date.now()
Date.now() nol sanadan (1970-yil 1-yanvar 00:00:00 UTC) beri o'tgan millisekundlar sonini qaytaradi.
let timInMSs = Date.now()Date toISOString()
toISOString() metodi Sana obyektini ISO standart formatidan foydalanib satrga aylantiradi.
const d = new Date()
document.getElementById('demo').innerHTML = d.toISOString()Date toJSON()
toJSON() Sana obyektini JSON sana sifatida formatlangan satrga aylantiradi.
d = new Date()
document.getElementById('demo').innerHTML = d.toJSON()Xususiyat getter'lari
Xususiyat getter — xususiyat qiymatiga kirilganda uni olish usulini aniqlashga imkon beruvchi metod.
const Person = {
firstName: 'John',
lastName: 'Doe',
get fullName() {
return this.firstName + ' ' + this.lastName
}
}
document.getElementById('demo').innerHTML = Person.fullNameXususiyat setter'lari
Xususiyat setter — xususiyat qiymatini o'rnatish usulini aniqlashga imkon beruvchi metod.
const Person = {
firstName: 'John',
lastName: 'Doe',
language: 'NO',
set lang(value) {
this.language = value.toUpperCase()
}
}
Person.lang = 'en'Object.defineProperty()
Object.defineProperty() ES5 dagi yangi Object metodi. U obyekt xususiyatini aniqlash va/yoki xususiyat qiymati va/yoki metama'lumotlarini o'zgartirish imkonini beradi.
const person = {
firstName: 'John',
lastName: 'Doe',
language: 'NO'
}
Object.defineProperty(person, 'language', {
value: 'EN',
writable: true,
enumerable: true,
configurable: true
})Object.create()
Object.create() metodi mavjud obyektdan obyekt yaratadi.
const person = {
firstName: 'John',
lastName: 'Doe'
}
const man = Object.create(person)
man.firstName = 'Peter'Object.keys()
Object.keys() metodi obyektning kalitlari bilan massiv qaytaradi.
const person = {
firstName: 'John',
lastName: 'Doe',
age: 50,
eyeColor: 'blue'
}
const keys = Object.keys(person)Obyekt boshqaruvi
ES5 JavaScript-ga yangi obyekt boshqaruv metodlarini qo'shdi:
// Obyekt xususiyatini qo'shish yoki o'zgartirish
Object.defineProperty(object, property, descriptor)
// Obyekt xususiyatlarini qo'shish yoki o'zgartirish
Object.defineProperties(object, descriptors)
// Xususiyatga kirish
Object.getOwnPropertyDescriptor(object, property)
// Xususiyatlarga kirish
Object.getOwnPropertyDescriptors(object)
// Barcha xususiyatlarni massiv sifatida qaytaradi
Object.getOwnPropertyNames(object)
// Prototipga kirish
Object.getPrototypeOf(object)Obyekt himoyasi
ES5 JavaScript-ga obyekt himoya metodlarini qo'shdi:
// Obyektga xususiyatlar qo'shishni oldini oladi
Object.preventExtensions(object)
// Obyektga xususiyatlar qo'shilishi mumkinligini qaytaradi
Object.isExtensible(object)
// Obyekt xususiyatlarini o'zgartirishni oldini oladi (qiymatlar emas)
Object.seal(object)
// Obyekt muhrlangan bo'lsa true qaytaradi
Object.isSealed(object)
// Obyektdagi har qanday o'zgarishlarni oldini oladi
Object.freeze(object)
// Obyekt muzlatilgan bo'lsa true qaytaradi
Object.isFrozen(object)Function bind()
bind() metodi yordamida obyekt boshqa obyektdan metodni qarzga olishi mumkin.
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)Oxirgi vergullar
ES5 obyekt va massiv ta'riflarida oxirgi vergullarga ruxsat beradi:
person = {
firstName: 'John',
lastName: 'Doe',
age: 46
}points = [1, 5, 10, 25, 40, 100]Ogohlantirish
JSON oxirgi vergullarga ruxsat bermaydi.
