JavaScript asoslari

Zamonaviy rejim, "use strict"

Uzoq vaqt davomida JavaScript orqaga moslikni saqlab rivojlanib keldi โ€” eski kod buzilmasligi kerak edi. 2009-yilda ES5 standarti chiqqach, tilga yangi imkoniyatlar va ba'zi eski xatti-harakatlarni o'zgartirish qo'shildi. Ular buzilmasligi uchun maxsus "use strict" direktivasi bilan yoqiladigan qilindi.

"use strict" nima?

Direktiva oddiy matn ko'rinishida โ€” "use strict" yoki 'use strict' deb yoziladi. U skript yoki funksiya eng boshiga qo'yilganda, kod "zamonaviy" (strict โ€” qat'iy) rejimda ishlaydi:

"use strict";

// bu kod zamonaviy rejimda ishlaydi
// ...

Tez orada funksiyalarni o'rganamiz โ€” o'shanda "use strict" ni butun skript o'rniga faqat bitta funksiya ichiga qo'yish mumkinligini ko'ramiz. Odatda esa uni butun skriptga qo'llaymiz.

"use strict" qayerga yoziladi?

Bu direktiva faqat skript yoki funksiyaning eng tepasida turgandagina ishlaydi. Undan oldin faqat izohlar bo'lishi mumkin, boshqa hech narsa emas.

Agar "use strict" ni skript o'rtasiga yoki oxiriga qo'ysangiz, u ishlamaydi. Direktiva shunchaki e'tiborsiz qoldiriladi, xato ham bermaydi. Shuning uchun har doim eng tepaga yozing.
console.log("biror kod");
"use strict"; // bu joyda kech โ€” ishlamaydi!

"use strict" ni bekor qilib bo'lmaydi

Diqqat qiling โ€” "use strict" ni yoqib bo'lgach, uni "o'chirib" qo'yadigan hech qanday direktiva yo'q. Kodni oldingi rejimga qaytaradigan "no use strict" kabi buyruq mavjud emas.

Zamonaviy rejimga bir marta o'tsangiz, orqaga qaytish yo'q. Bu yomon narsa emas โ€” chunki zamonaviy rejim faqat foydali qat'iyliklarni qo'shadi.

U nimani o'zgartiradi?

Zamonaviy rejim tilning ba'zi "yumshoq" xatti-harakatlarini qat'iyroq va ishonchliroq qiladi. Bir nechta muhim misol:

Umuman olganda, "use strict" kodni xavfsizroq va toza qiladi. Shu sababli undan foydalanish tavsiya etiladi.

Yangi loyiha yozayotgan bo'lsangiz va u alohida skriptlardan iborat bo'lsa, uni "use strict" bilan boshlash yaxshi odat. Ushbu kursdagi barcha misollar zamonaviy rejimni nazarda tutadi.

Zamonaviy kodda "use strict" avtomatik

Muhim yangilik: agar siz JavaScript klasslar (classes) yoki modullar (modules) ichida kod yozsangiz, "use strict" ni yozishning hojati yo'q โ€” u u yerda avtomatik yoqilgan bo'ladi.

Zamonaviy ilovalarda kod deyarli har doim modullarda joylashadi, shuning uchun ko'p hollarda direktivani qo'lda yozmaysiz ham. Biroq alohida oddiy skriptlar yozganda, uni yozib qo'ygan ma'qul.

Klasslar va modullarni keyingi boblarda batafsil o'rganamiz. Hozircha faqat shuni eslab qoling: ular ichida zamonaviy rejim doimo yoqilgan.

Xulosa