JS 2009 (ES5)

ULASHISH

ECMAScript 2009

JavaScript’ning birinchi yirik tahriri.

ECMAScript 2009 ES5 sifatida ham tanilgan.

ES5 imkoniyatlari

XususiyatTavsif
"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.

Batafsil o‘rganish ...

Stringlarda xususiyatga murojaat qilish

charAt() metodi stringdagi belgilangan indeksdagi (pozitsiyadagi) belgini qaytaradi:

Misol

let str = "HELLO WORLD";
str.charAt(0);     // returns H
O‘zingiz sinab ko‘ring »

ES5 stringlarda xususiyatga murojaat qilish imkonini beradi:

Misol

let str = "HELLO WORLD";
str[0];           // returns H
O‘zingiz sinab ko‘ring »

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:

Misol

"Hello \
Dolly!";
O‘zingiz sinab ko‘ring »

\ 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:

Misol

"Hello " +
"Dolly!";
O‘zingiz sinab ko‘ring »

Zaxiralangan so‘zlar xususiyat nomlari sifatida

ES5 zaxiralangan so‘zlarni xususiyat nomlari sifatida ishlatish imkonini beradi:

Obyekt misoli

var obj = {name: "John", new: "yes"}
O‘zingiz sinab ko‘ring »

String trim() metodi

trim() metodi stringning har ikki tomonidagi bo‘sh joylarni olib tashlaydi.

Misol

var str = "       Hello World!        ";
alert(str.trim());
O‘zingiz sinab ko‘ring »

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.

Misol

const numbers = [45, 4, 9, 16, 25];

numbers.forEach(myFunction);
O‘zingiz sinab ko‘ring »

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);
Natijada JSON notatsiyasiga mos string bo‘ladi.

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).

Misol

var timInMSs = Date.now();
O‘zingiz sinab ko‘ring »

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:

Obyektni boshqarish


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:

JS Object Iterations


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 boshqarish


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!