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.
"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.
U nimani o'zgartiradi?
Zamonaviy rejim tilning ba'zi "yumshoq" xatti-harakatlarini qat'iyroq va ishonchliroq qiladi. Bir nechta muhim misol:
- E'lon qilinmagan o'zgaruvchiga qiymat berishga urinish endi jimgina o'tib ketmaydi, balki xato beradi;
- Ba'zi "jim" xatolar (silent errors) endi ochiq xatolarga aylanadi, bu esa muammolarni erta topishga yordam beradi;
- Til yanada mantiqiy va bashorat qilinadigan bo'ladi.
Umuman olganda, "use strict" kodni xavfsizroq va toza qiladi. Shu sababli undan foydalanish tavsiya etiladi.
"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.
Xulosa
"use strict"โ kodni zamonaviy (qat'iy) rejimda ishlatadigan direktiva;- U skript yoki funksiyaning eng tepasiga yoziladi, aks holda ishlamaydi;
- U ba'zi jim xatolarni ochiq xatolarga aylantiradi va kodni ishonchli qiladi;
- Bir marta yoqilsa, uni bekor qilib bo'lmaydi;
- Klasslar va modullarda u avtomatik yoqilgan, qo'lda yozish shart emas.