tgoop.com/brogrammist/29
Last Update:
Nega /[A-Za-z]/.test()
natijasi ‘true’?
Bilamiz .test()
metodi string qabul qiladi va uni RegExp
'ga ko'ra tekshiradi. Agar string mos kelsa true
, aks holda false qaytaradi./[A-Za-z]/
esa ingliz alifbosidagi harflarni aniqlovchi RegExp
.
Xo'sh, nega metodni /[A-Za-z]/
bilan argumentsiz chaqirsak true qaytaradi? RegExp'ni bo'sh qiymatga nisbatan tekshirsak false chiqishi kerakmasmidi?
Qizig'i shundaki, biz bu yerda .test()
ni aslida .test(undefined)
holatida chaqiryapmiz. Metod argument sifatida string olishini aytdik. Shuning uchun undefined
string'ga konversiya bo'ladi va 'undefined'
ga aylanadi. 'undefined'
esa ingliz alifbosidagi harflardan iborat so'z! Demak natija true
bo'lishi to'g'ri!
JavaScript'da tiplar dinamik bo'lgani uchun ko'pincha shunga o'shash surprizlarni uchratish mumkin. Maslahatim esa, har doim dokumentatsiyalarni ochib o'qing!
#js #jsdaily #regexp
BY Brogrammist
Share with your friend now:
tgoop.com/brogrammist/29