JS 2015 (ES6)
ECMAScript 2015
JavaScript’ning ikkinchi yirik tahriri.
ECMAScript 2015 ES6 nomi bilan ham tanilgan.
JavaScript 2015 (ES6) dagi yangi imkoniyatlar
| Xususiyat | Tavsif |
|---|---|
| let kalit so‘zi | Blok ko‘rinish sohasiga (block scope) ega o‘zgaruvchini e’lon qiladi |
| const kalit so‘zi | O‘zgarmas (immutable) konstanta o‘zgaruvchini e’lon qiladi |
| Arrow funksiyalari | Funksiya ifodalarini yozish uchun qisqa sintaksisga ruxsat beradi |
| {a,b} = operatori | Obyekt xususiyatlarini o‘zgaruvchilarga tayinlaydi (obyekt destrukturizatsiyasi) |
| [a,b] = operatori | Massiv qiymatlarini o‘zgaruvchilarga tayinlaydi (massiv destrukturizatsiyasi) |
| ... operatori | Massivni yoki iterable obyektni alohida elementlarga yoyadi |
| For/of | Iteratsiya qilinadigan obyektlarning qiymatlari bo‘ylab sikl bajaradi |
| Map obyektlari | Kalit-qiymat juftliklariga ega obyekt; oddiy obyektlarga o‘xshaydi, lekin ulardan farq qiladi |
| Set obyektlari | Noyob qiymatlarni saqlaydigan massiv |
| Klasslar | JavaScript obyektlari uchun shablonlar |
| Promise’lar | Asinxron operatsiyaning bajarilishini ifodalovchi obyekt |
| Symbol | Hech qanday kod kira olmaydigan noyob "yashirin" identifikator |
| Standart parametrlar | Funksiya parametrlari uchun standart qiymatlarga ruxsat beradi |
| Rest parametrlari | Funksiyaga noaniq miqdordagi argumentlarni qabul qilish imkonini beradi |
| String.includes() | Agar stringda belgilangan qiymat bo‘lsa, true qaytaradi |
| String.startsWith() | Agar string belgilangan qiymatdan boshlansa, true qiymatini qaytaradi |
| String.endsWith() | Agar string belgilangan qiymat bilan tugasa, true qiymatini qaytaradi |
| Array entries() | Massivdan kalit/qiymat juftliklariga ega iteratorni qaytaradi |
| Array.from() | Stringdan Array hosil qiladi |
| Array keys() | Massiv kalitlari bilan iteratorni qaytaradi |
| Array find() | Sinovdan o‘tgan birinchi elementning qiymatini qaytaradi |
| Array findIndex() | Sinovdan o‘tgan birinchi elementning indeksini qaytaradi |
| Object.assign() | Xususiyatlarni manba obyektdan maqsad obyektga nusxalaydi |
| RegExp /u | Regular ifodada Unicode’ni to‘liq qo‘llab-quvvatlashni yoqadi |
| RegExp /y | lastIndex xususiyatidan boshlab "yopishqoq" (sticky) qidiruvni bajaradi |
| isFinite() | Agar argument Infinity yoki NaN bo‘lmasa, true qiymatini qaytaradi |
| IsNaN() | Argument NaN bo‘lsa, true qiymatini qaytaradi |
| Modullar | Kodingizni alohida fayllarga bo‘lish imkonini beradi |
| Reflect | Obyektlar ustida past darajadagi amallar uchun obyekt |
| Proxy | Boshqarish operatsiyalari uchun boshqa obyektlarni o‘rab turgan obyekt |
Math imkoniyatlari
| Xususiyat | Tavsif |
|---|---|
| Math.trunc(x) | x ning butun qismini qaytaradi |
| Math.sign(x) | -1, 0 yoki 1 qaytaradi (x manfiy, nol yoki musbat) |
| Math.cbrt(x) | x ning kub ildizini qaytaradi |
| Math.log2(x) | x ning 2 asosli logarifmini qaytaradi |
| Math.log10(x) | x ning 10 asosli logarifmini qaytaradi |
Number imkoniyatlari
| Xususiyat | Tavsif |
|---|---|
| Number.EPSILON | 1 va 1 dan katta eng kichik son orasidagi farq |
| Number.MIN_SAFE_INTEGER | Aniq ifodalanishi mumkin bo‘lgan minimal qiymat |
| Number.MAX_SAFE_INTEGER | Aniq ifodalanishi mumkin bo‘lgan maksimal qiymat |
| Number.isInteger() | Argument butun son bo‘lsa, true qiymatini qaytaradi |
| Number.isSafeInteger() | Argument xavfsiz butun son bo‘lsa, true qiymatini qaytaradi |
Brauzerlarda qo‘llab-quvvatlash
JavaScript 2015 2017-yil iyunidan beri barcha zamonaviy brauzerlarda qo‘llab-quvvatlanadi:
| Chrome 51 |
Edge 15 |
Firefox 54 |
Safari 10 |
Opera 38 |
| May 2016 | Apr 2017 | Jun 2017 | Sep 2016 | Jun 2016 |
ES6 Internet Explorer-da qo‘llab-quvvatlanmaydi.
JavaScript let
let kalit so‘zi blok ko‘rinish sohasiga (block scope) ega o‘zgaruvchini e’lon qilish imkonini beradi.
Misol
var x = 10;
// Here x is 10
{
let x = 2;
// Here x is 2
}
// Here x is 10
O‘zingiz sinab ko‘ring »
let haqida batafsil: JavaScript Let bobida o‘qing.
JavaScript const
const kalit so‘zi konstanta (o‘zgarmas qiymatga ega JavaScript o‘zgaruvchisi) e’lon qilish imkonini beradi.
Konstantalar let o‘zgaruvchilariga o‘xshaydi, faqat qiymatni o‘zgartirib bo‘lmaydi.
Misol
var x = 10;
// Here x is 10
{
const x = 2;
// Here x is 2
}
// Here x is 10
O‘zingiz sinab ko‘ring »
const haqida batafsil: JavaScript Const bobida o‘qing.
Arrow funksiyalari
Arrow funksiyalari — funksiya ifodalarini yozish uchun qisqa sintaksis.
Sizga function kalit so‘zi, return kalit so‘zi yoki jingalak qavslar kerak emas.
Arrow funksiyalardan oldin:
a va b ko‘paytmasini hisoblash funksiyasi
let myFunction = function(a, b) {return a * b}
Arrow funksiyalarining o‘z this qiymati yo‘q. Ular obyekt metodlarini aniqlash uchun unchalik mos emas.
Arrow funksiyalari ko‘tarilmaydi. Ular foydalanishdan oldin aniqlanishi kerak.
Agar funksiya bitta operator bo‘lsa, faqat return kalit so‘zini va jingalak qavslarni o‘tkazib yuborishingiz mumkin. Shu sababli, ularni doimo yozib qo‘yish yaxshi odat bo‘lishi mumkin:
Misol
// This will not work
let myFunction = (x, y) => { x * y } ;
// This will not work
let myFunction = (x, y) => return x * y ;
// Only this will work
let myFunction = (x, y) => { return x * y };
O‘zingiz sinab ko‘ring »
Arrow funksiyalari (strelka funksiyalar) haqida batafsil ma’lumotni JavaScript Arrow funksiyasi bo‘limida o‘qing.
Obyektni destrukturizatsiya qilish (Object Destructuring)
Destrukturizatsiya orqali qiymat berish (destructuring assignment) massiv qiymatlari va obyekt xususiyatlarini o‘zgaruvchilarga tayinlashni osonlashtiradi.
Misol
// Create an Object
const person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
// Destructuring Assignment
let { firstName, age } = person;
O‘zingiz sinab ko‘ring »
Obyektni destrukturizatsiya qilishda o‘zgaruvchilar uchun mos obyekt kalitlari (nomlari) bilan bir xil nomdan foydalanishingiz kerak.
Kalitlarning (nomlarning) tartibi ahamiyatga ega emas.
Massivni destrukturizatsiya qilish (Array Destructuring)
Destrukturizatsiya orqali qiymat berish (destructuring assignment) massiv qiymatlari va obyekt xususiyatlarini o‘zgaruvchilarga tayinlashni osonlashtiradi.
Misol
// Create an Array
const fruits = ["Banana", "Orange", "Apple", "Mango"];
// Destructuring Assignment
let [fruit1, fruit2] = fruits;
O‘zingiz sinab ko‘ring »
Spread (...) operatori
... operatori massivni yoki iterable obyektni alohida elementlarga yoyadi.
Misol
... operatori funksiyaga argumentlarni uzatishi mumkin:
const numbers = [23,55,21,87,56];
let minValue = Math.min(...numbers);
let maxValue = Math.max(...numbers);
O‘zingiz sinab ko‘ring »
Misol
... operatori massivlarni birlashtirish uchun ishlatilishi mumkin:
const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const arr3 = [...arr1, ...arr2];
O‘zingiz sinab ko‘ring »
Misol
const q1 = ["Jan", "Feb", "Mar"];
const q2 = ["Apr", "May", "Jun"];
const q3 = ["Jul", "Aug", "Sep"];
const q4 = ["Oct", "Nov", "Dec"];
const year = [...q1, ...q2, ...q3, ...q4];
O‘zingiz sinab ko‘ring »
For/Of sikli
JavaScript for/of operatori iteratsiya qilinadigan obyektlarning qiymatlari bo‘ylab sikl bajaradi.
for/of massivlar, stringlar, Map’lar, NodeList’lar va boshqa iteratsiya qilinadigan ma’lumotlar tuzilmalari bo‘ylab sikl bajarish imkonini beradi.
for/of sikli quyidagi sintaksisga ega:
for (variable of iterable) {
// code block to be executed
}
variable — har bir iteratsiyada keyingi xususiyatning qiymati shu o‘zgaruvchiga beriladi. variable o‘zgaruvchisini const, let yoki var yordamida e’lon qilish mumkin.
iterable — iteratsiya qilinadigan xususiyatlarga ega obyekt.
Massiv bo‘ylab sikl
Misol
const cars = ["BMW", "Volvo", "Mini"];
let text = "";
for (let x of cars) {
text += x + " ";
}
O‘zingiz sinab ko‘ring »
String bo‘ylab sikl
Misol
let language = "JavaScript";
let text = "";
for (let x of language) {
text += x + " ";
}
O‘zingiz sinab ko‘ring »
Batafsil ma’lumot: JavaScript For/In/Of sikllari bo‘limida.
JavaScript Map’lari
Map — kalit-qiymat juftliklarini saqlaydigan obyekt; u obyektlarga o‘xshaydi, ammo ulardan farqlari bor:
- Kalitlari string bo‘lgan oddiy obyektlardan farqli ravishda, kalitlar istalgan ma’lumot tipida bo‘lishi mumkin (obyektlar, funksiyalar, primitiv qiymatlar).
- Kalitlarning dastlabki qo‘shilish tartibini saqlaydi.
Misol
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
O‘zingiz sinab ko‘ring »
Map obyektlari hamda Map va massiv o‘rtasidagi farq haqida batafsil ma’lumotni JavaScript Map’lar bobida o‘qing.
JavaScript Set’lar
Set — har qanday tipdagi noyob qiymatlarni (primitiv qiymatlar, funksiyalar, obyektlar) saqlaydigan obyekt.
Set faqat noyob qiymatlarni o‘z ichiga olishi mumkin. Takroriy qiymat qo‘shishga urinish e’tiborga olinmaydi.
Misol
// Create a Set
const letters = new Set();
// Add some values to the Set
letters.add("a");
letters.add("b");
letters.add("c");
O‘zingiz sinab ko‘ring »
Set obyektlari haqida ko‘proq ma’lumotni JavaScript Set’lar bo‘limida o‘qing.
JavaScript sinflari
JavaScript sinflari JavaScript obyektlari uchun shablondir.
Sinf yaratish uchun class kalit so‘zidan foydalaning.
Har doim constructor() nomli metod qo‘shing:
Sintaksis
class ClassName {
constructor() { ... }
}
Misol
class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
}
Yuqoridagi misol "Car" nomli sinfni yaratadi.
Sinf ikkita dastlabki xususiyatga ega: "name" va "year".
JavaScript sinfi obyekt emas.
Bu JavaScript obyektlari uchun shablondir.
Sinfdan foydalanish
Agar sizda sinf mavjud bo‘lsa, siz obyektlarni yaratish uchun sinfdan foydalanishingiz mumkin:
Misol
const myCar1 = new Car("Ford", 2014);
const myCar2 = new Car("Audi", 2019);
Sinflar haqida ko‘proq ma’lumotni JavaScript sinflari bo‘limida o‘qing.
JavaScript Promise’lar
JavaScript Promise obyekti asinxron operatsiyaning tugallanishi yoki muvaffaqiyatsizligini va uning qiymatlarini ifodalovchi obyektdir.
U hali mavjud bo‘lmagan qiymat uchun o‘rinbosar (placeholder) bo‘lib, asinxron kod bilan ishlashning tartibli usulini taqdim etadi.
Promise sintaksisi
const myPromise = new Promise(function(myResolve, myReject) {
// "Producing Code" (May take some time)
myResolve(); // when successful
myReject(); // when error
});
// "Consuming Code" (Must wait for a fulfilled Promise).
myPromise.then(
function(value) { /* code if successful */ },
function(error) { /* code if some error */ }
);
Promise’dan foydalanish misoli
const myPromise = new Promise(function(myResolve, myReject) {
setTimeout(function() { myResolve("I love You !!"); }, 3000);
});
myPromise.then(function(value) {
document.getElementById("demo").innerHTML = value;
});
Promise’lar haqida batafsil ma’lumotni JavaScript Promise’lar bobida o‘qing.
Symbol tipi
JavaScript Symbol — Number, String yoki Boolean kabi primitiv ma’lumot tipi.
Bu boshqa hech qanday kod tasodifan kira olmaydigan noyob "yashirin" identifikatorni ifodalaydi.
Misol uchun, agar turli kodlovchilar uchinchi tomon kodiga tegishli person obyektiga person.id xususiyatini qo‘shishni xohlasalar, ular bir-birining qiymatlarini aralashtirishi mumkin.
Symbol() yordamida noyob identifikatorlar yaratish bu muammoni hal qiladi:
Misol
const person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
let id = Symbol('id');
person[id] = 140353;
// Now person[id] = 140353
// but person.id is still undefined
O‘zingiz sinab ko‘ring »
Symbol’lar har doim noyob bo‘ladi.
Agar siz bir xil tavsifga ega ikkita Symbol yaratsangiz, ular turli qiymatlarga ega bo‘ladi:
Symbol("id") == Symbol("id"); // false
Parametrlarning standart qiymatlari
ES6 funksiya parametrlariga standart qiymatlarga ega bo‘lish imkonini beradi.
Misol
function myFunction(x, y = 10) {
// y is 10 if not passed or undefined
return x + y;
}
myFunction(5); // will return 15
O‘zingiz sinab ko‘ring »
Funksiyaning rest parametri
Rest parametri (...) funksiyaga noaniq miqdordagi argumentlarni massiv sifatida qabul qilish imkonini beradi:
Misol
function sum(...args) {
let sum = 0;
for (let arg of args) sum += arg;
return sum;
}
let x = sum(4, 9, 16, 25, 29, 100, 66, 77);
O‘zingiz sinab ko‘ring »
String.includes()
includes() metodi, agar stringda belgilangan qiymat bo‘lsa, true, aks holda false qaytaradi:
Misol
let text = "Hello world, welcome to the universe.";
text.includes("world") // Returns true
O‘zingiz sinab ko‘ring »
String.startsWith()
startsWith() metodi, agar string belgilangan qiymat bilan boshlansa, true, aks holda false qaytaradi:
Misol
let text = "Hello world, welcome to the universe.";
text.startsWith("Hello") // Returns true
O‘zingiz sinab ko‘ring »
String.endsWith()
endsWith() metodi, agar string belgilangan qiymat bilan tugasa, true, aks holda false qaytaradi:
Massivlarning entries() metodi
Misol
Array Iterator yarating va keyin kalit/qiymat juftliklari bo‘ylab iteratsiya qiling:
const fruits = ["Banana", "Orange", "Apple", "Mango"];
const f = fruits.entries();
for (let x of f) {
document.getElementById("demo").innerHTML += x;
}
O‘zingiz sinab ko‘ring »
entries() metodi kalit/qiymat juftliklari bilan Array Iterator obyektini qaytaradi:
[0, "Banana"][1, "Orange"][2, "Apple"][3, "Mango"]
entries() metodi asl massivni o‘zgartirmaydi.
Array.from()
Array.from() metodi length xususiyatiga ega har qanday obyektdan yoki har qanday iterable obyektdan Array obyektini qaytaradi.
Misol
Stringdan Array yarating:
Array.from("ABCDEFG") // Returns [A,B,C,D,E,F,G]
O‘zingiz sinab ko‘ring »
Massivlarning keys() metodi
keys() metodi massiv kalitlari bilan Array Iterator obyektini qaytaradi.
Misol
Array kalitlarini o‘z ichiga olgan Array Iterator obyektini yarating:
const fruits = ["Banana", "Orange", "Apple", "Mango"];
const keys = fruits.keys();
let text = "";
for (let x of keys) {
text += x + "<br>";
}
O‘zingiz sinab ko‘ring »
Massivlarning find() metodi
find() metodi test funksiyasidan o‘tgan birinchi massiv elementining qiymatini qaytaradi.
Ushbu misol 18 dan katta bo‘lgan birinchi elementni topadi (qiymatini qaytaradi):
Misol
const numbers = [4, 9, 16, 25, 29];
let first =
numbers.find(myFunction);
function myFunction(value, index, array) {
return
value > 18;
}
O‘zingiz sinab ko‘ring »
E’tibor bering, funksiya 3 ta argument qabul qiladi:
- Element qiymati
- Element indeksi
- Massivning o‘zi
Massivlarning findIndex() metodi
findIndex() metodi test funksiyasidan o‘tgan birinchi massiv elementining indeksini qaytaradi.
Ushbu misol 18 dan katta bo‘lgan birinchi elementning indeksini topadi:
Misol
const numbers = [4, 9, 16, 25, 29];
let first =
numbers.findIndex(myFunction);
function myFunction(value, index, array) {
return
value > 18;
}
O‘zingiz sinab ko‘ring »
E’tibor bering, funksiya 3 ta argument qabul qiladi:
- Element qiymati
- Element indeksi
- Massivning o‘zi
Modules
Modullar ikki xil usulda import qilinadi:
Nomlangan eksportlardan import qilish
person.js faylidan nomlangan eksportlarni import qiling:
import { name, age } from "./person.js";
Standart eksportlardan import qilish
message.js faylidan standart eksportni import qiling:
import message from "./message.js";
Modullar haqida batafsil: JavaScript modullari.
JavaScript Reflect
Reflect’dan oldin obyekt amallari tarqoq edi:
inkalit so‘zidan foydalanishdeletekalit so‘zidan foydalanish-
Object.definePropertykabi metodlardan foydalanish [[Get]]va[[Set]]kabi til mexanizmlaridan foydalanish
Reflect bularning barchasini toza Reflect metodlariga jamlaydi.
- Reflect metodlari hamma narsani yagona ko‘rinishga keltiradi
- Reflect metodlarining xatti-harakatini oldindan aytish mumkin
- Reflect metodlari Proxy bilan mukammal ishlaydi
Reflect.has()
Misol
// Create an Object
const person = {name: "John", lastname: "Doe"};
let answer = Reflect.has(person, "name");
O‘zingiz sinab ko‘ring »
in operatoridan foydalanish bilan bir xil:
let answer = "name" in person;
O‘zingiz sinab ko‘ring »
Batafsil...
JavaScript Proxy
Misol
// Create an Object
const user = { name: "Jan", age: 40 };
//Create a Proxy
const proxy = new Proxy(user, {
get(target, property) {
log("Getting: " + property);
return target[property];
},
set(target, property, value) {
log("Setting: " + property);
return target[property];
}
});
proxy.name = "John";
let text = proxy.name;
O‘zingiz sinab ko‘ring »
Batafsil...
Yangi Math metodlari
ES6 Math obyektiga quyidagi metodlarni qo‘shdi:
Math.trunc()Math.sign()Math.cbrt()Math.log2()Math.log10()
Math.trunc() metodi
Math.trunc(x) x ning butun son qismini qaytaradi:
Misol
Math.trunc(4.9); // returns 4
Math.trunc(4.7); // returns 4
Math.trunc(4.4); // returns 4
Math.trunc(4.2); // returns 4
Math.trunc(-4.2); // returns -4
O‘zingiz sinab ko‘ring »
Math.sign() metodi
Math.sign(x) -1, 0 yoki 1ni qaytaradi (agar x manfiy, null yoki musbat bo‘lsa):
Misol
Math.sign(-4); // returns -1
Math.sign(0); // returns 0
Math.sign(4); // returns 1
O‘zingiz sinab ko‘ring »
Math.cbrt() metodi
Math.cbrt(x) x ning kub ildizini qaytaradi:
Misol
Math.cbrt(8); // returns 2
Math.cbrt(64); // returns 4
Math.cbrt(125); // returns 5
O‘zingiz sinab ko‘ring »
Math.log2() metodi
Math.log2(x) x ning 2 asosli logarifmini qaytaradi:
Math.log10() metodi
Math.log10(x) x ning 10 asosli logarifmini qaytaradi:
Yangi Number xususiyatlari
ES6 Number obyektiga quyidagi xususiyatlarni qo‘shdi:
EPSILONMIN_SAFE_INTEGERMAX_SAFE_INTEGER
EPSILON misoli
1 va 1 dan katta eng kichik suzuvchi nuqtali son o‘rtasidagi farq:
let x = Number.EPSILON;
O‘zingiz sinab ko‘ring »
MIN_SAFE_INTEGER misoli
Aniq ifodalanishi mumkin bo‘lgan minimal butun qiymat:
let x = Number.MIN_SAFE_INTEGER;
O‘zingiz sinab ko‘ring »
MAX_SAFE_INTEGER misoli
Aniq ifodalanishi mumkin bo‘lgan maksimal butun qiymat:
let x = Number.MAX_SAFE_INTEGER;
O‘zingiz sinab ko‘ring »
Number.isInteger() metodi
Number.isInteger() metodi, agar argument butun son bo‘lsa, true qiymatini qaytaradi.
Misol
Number.isInteger(10); // returns true
Number.isInteger(10.5); // returns false
O‘zingiz sinab ko‘ring »
Number.isSafeInteger() metodi
Xavfsiz butun son - bu ikkilangan aniqlikdagi (double precision) son sifatida aniq ifodalanishi mumkin bo‘lgan butun son.
Number.isSafeInteger() metodi, agar argument xavfsiz butun son bo‘lsa, true qiymatini qaytaradi.
Misol
Number.isSafeInteger(10); // returns true
Number.isSafeInteger(12345678901234567890); // returns false
O‘zingiz sinab ko‘ring »
Xavfsiz butun sonlar -(253 - 1) dan +(253 - 1) gacha bo‘lgan butun sonlardir. Bu xavfsiz: 9007199254740991. Bu xavfsiz emas: 9007199254740992.
Yangi global metodlar
ES6 ikkita yangi global son metodini qo‘shdi:
isFinite()isNaN()
isFinite() metodi
Agar argument Infinity yoki NaN bo‘lsa, global isFinite() metodi false ni qaytaradi.
Aks holda u true qaytaradi:
isNaN() metodi
Agar argument NaN bo‘lsa, global isNaN() metodi true ni qaytaradi. Aks holda u false qaytaradi:
JavaScript Object.assign() metodi
Object.assign() metodi bir yoki bir nechta manba obyektdan maqsad obyektga xususiyatlarni nusxalaydi.
Misol
// Create Target Object
const person1 = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
// Create Source Object
const person2 = {firstName: "Anne",lastName: "Smith"};
// Assign Source to Target
Object.assign(person1, person2);
O‘zingiz sinab ko‘ring »
RegExp u modifikatori
Misollar
let text = "Hello 😄";
let pattern = /\p{Emoji}/u;
let result = pattern.test(text);
O‘zingiz sinab ko‘ring »
let text = "Hello 😄";
let pattern = /\p{Emoji}/;
let result = pattern.test(text);
O‘zingiz sinab ko‘ring »
Tavsif
u (unicode) bayrog‘i regular ifodada Unicode’ni to‘liq qo‘llab-quvvatlashni yoqadi.
Odatiy bo‘lib, JavaScript va regex 4 baytli Unicode belgilarini (masalan, kulgichlar yoki kamroq tarqalgan belgilar) ikkita alohida 2 baytli "surrogat" kod birligi sifatida ko‘radi.
u bayrog‘i namunani Unicode kod nuqtalari ketma-ketligi sifatida ko‘radi, bu esa Asosiy ko‘p tilli tekislikdan (BMP) tashqaridagi belgilarni to‘g‘ri qayta ishlash uchun muhim.
RegExp y modifikatori
Misollar
let text = "abc def ghi";
let pattern = /\w+/y;
// Start match from position 4
pattern.lastIndex = 4;
let result = text.match(pattern);
O‘zingiz sinab ko‘ring »
let text = "abc def ghi";
let pattern = /\w+/;
// Start match from position 4
pattern.lastIndex = 4;
let result = text.match(pattern);
O‘zingiz sinab ko‘ring »
Tavsif
y (sticky) bayrog‘i faqat RegExp obyektining lastIndex xususiyatidan boshlab moslik izlaydigan "yopishqoq" qidiruvni bajaradi.
y bayrog‘i keyingi mosliklar belgilarni o‘tkazib yubormasdan, oldingisidan keyin darhol boshlanishini ta’minlaydi.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
