Buyurtma operatorlari. Robotik qatorlar uchun Javascript usullari

Men sizga oldindan aytib beraman, shuning uchun trochning maqolasi noto'g'ri, biz sizni sharhlarda so'raymiz, noto'g'ri tushuntirish yo'q).

Hayrli kun.

JavaScript-da ikkita o'xshash operator mavjud: == va ===. Agar siz o'zingizning vakolatingizni bilmasangiz, siz bir guruh kechirimlarga aylanasiz. Tozh vyrishiv rozkriti tsyu mavzu. Nima uchun ular o'zlari == va === deb baqirishadi, ular qanday hidlanadi, nega bunday his qilishadi va qanday qilib kechirim olishadi.

== operatori tenglikka, === - identifikatsiyaga o'xshash. === operatorining afzalligi shundaki, u ikkita qiymatni bir xil turga o'tkazmaydi. Xuddi shu vinolar jiringlaydi va g'alaba qozonadi.

Abc == aniqlanmagan; // rost, shuning uchun abc = aniqlanmagan | null abc === aniqlanmagan; // rost - shuning uchun abc = aniqlanmagan!
abc == noto'g'ri; // rost, shuning uchun abc = noto'g'ri | 0 | "" | abc === noto'g'ri; // rost, shuning uchun abc = noto'g'ri!
Aje stray false í 0 (yoki "", yoki) - yaxshiroq emas.

Men tushundim:
5 === 5; // rost rost === rost; // haqiqiy "abc" === "abc"; // rost

Va shu bilan birga, cicavi dumba.
5 == 5; // rost 5 === 5; // haqiqiy yangi raqam(5) == 5; // haqiqiy yangi raqam(5) === 5; // yolg'on!

Nima uchun shunday vydbuvaetsya? Shunday qilib, raqam Number sinfining ob'ekti bo'ladimi. Ale raqamni raqam sifatida ko'rsatishi mumkin - bir turdagi doimiy. Von bir vaqtlar hayratda qoldi va abadiy o'zi bilan bir xil edi. Ammo shu bilan birga, Number sinfining kar bo'lgan yangi ob'ekti qiymatdan qimmatroq, lekin bir xil emas (Raqam sinfining ikkita mutlaqo boshqa ob'ekti mavjud).

Massivlar/ob'ektlar

Va tajovuzkor operatorning massivlari va ob'ektlari o'qi bir xil, identifikatsiyaga o'xshaydi:
var a = (); a == (); // noto'g'ri a === (); // noto'g'ri a == a; // rost a === a; // rost

Massivlar va ob'ektlarni saralash uchun siz maxsus funktsiyani yozishingiz mumkin:
funksiya isEq(a, b)( if(a == b) rost qaytaradi; for(var i in a)( if(!isEq(a[i], b[i])) false qaytaradi; ) for(var i) b)( if(!isEq(a[i], b[i])) da false qaytariladi; ) rost qaytariladi; )
Trochy chalkash, ikki ko'chadan, ta th pro hasOwnProperty zabuli; Xo'sh, o'sha ziyda.

Bu<-

Yana bitta suv ostidagi tosh bor. Tse da tse o'tkazish.
(function()( this == 5; // true this === 5; // false )).call(5);

Eksa shunday moment. Warto yangisini unutmang.

Birga...

Xo'sh, endi biz o'z super ramkamizni yozayotganimiz aniq, biz === almashtirish == operatoridan faqat chiroyli bo'lgani uchun faol foydalanamiz va biz ozgina xatoni bilishimiz kerak.
func (yangi raqam (5)); (funksiya()( func(bu); )).call(5);

Mana, siz o'liklarni qo'llaysizmi? Iltimos!

jQuery:
$.each(, function()( func(bu); ));

Xo'sh, siz raqamni kengaytirmoqchi bo'ldingiz.
var Five = NewNumber(5); besh.a = 2; // kengaytirmoqchi edi, lekin 5 kengaymaydi // bu erda g'alaba qozonganga o'xshaydi... func(Besh);

Kimga hamma narsa qo'llab-quvvatlayman, kimga korisno bo'ladi. Hurmat uchun rahmat.

Agar yozsangiz JavaScript, hatto satrlarda ishlaydigan usullarning sintaksisi va parametrlari haqidagi ma'lumotlarni qidirishda Internetga tez-tez olib kelinadi.

Men robotlar qatori bilan ko'plab maqolalarni o'qidim. Ushbu postda ilovalar va qatorlarda ishlashning eng keng usullarining qisqacha tavsiflari ko'rsatiladi. Men eng keng tarqalgan usullarni shved bilimlarining yuqori qismiga qo'yishga harakat qildim.

Shubhasiz, chakana sotuvchilar haqida ko'proq ma'lumotni eng yaxshi usullardan foydalangan holda allaqachon olish mumkin, ammo menimcha, bu birinchi marta oddiy usullar bilan katlama operatsiyalarini vizualizatsiya qilishni yaxshilashga yordam beradigan usullar qatorini tushunish uchun yaxshi ro'yxat.

Stringga aylantiring

Raqamni, virazni yoki ob'ektni ketma-ket o'zgartirishingiz mumkin:

var myNumber = 24; // 24 var myString = myNumber.toString(); // "24"

Yordam uchun buni o'zingiz qilishingiz mumkin String():

var myNumber = 24; // 24 var myString = String(myNumber); // "24"

Agar tushunmasangiz, nimani anglatmaydi null yoki aniqlanmagan, g'alaba qozonishingiz mumkin String(), har doimgidek qiymat turidan mustaqil ravishda qatorni aylantiring.

Podyl ryadka podryadki ustida

Qatorlarni qatorlar qatoriga bo'lish uchun siz usulni tanlashingiz mumkin Split():

Var myString = "keladi, ajratiladi, da, vergul"; var substringArray = myString.split(","); // ["kelayotgan", "apart", "at", "the", "vergul"] var arrayLimited = myString.split(",", 3); // ["kelish", "ajralish", "ot"]

Qatorning qolgan qismida ko'rib turganingizdek, funktsiyaning yana bir parametri sumka massivida bo'ladigan elementlarning maqsadli sonidir.

Otrimanya dozhini qatori

Qatorda qancha ramzni bilish uchun, mening g'olib kuchim uzunligi:

Var myString = "Siz" juda xarakterlisiz."; var stringLength = myString.length; // 25

Poshuk podryadki qatorda

Ê ish qidirishning ikkita usuli:

Vikoristannya indexOf():

Var stringOne = "Jonni Valdo Xarrison Valdo"; var wheresWaldo = stringOne.indexOf("Waldo"); // 7

indexOf() usul qatorning boshchasidan tartibni qidirishni boshlaydi va tartibning birinchi yozuvi kobining holatini aylantiradi. Ushbu toifada - 7-o'rin.

Vikoristannya lastIndexOf():

Var stringOne = "Jonni Valdo Xarrison Valdo"; var wheresWaldo = stringOne.lastIndexOf("Waldo"); // 22

Usul qatorning qolgan yozuvining kob o'rnini qatorga aylantiradi.

Ikkala usulda ham, agar qator topilmasa, -1 qiymati aylantiriladi va agar siz hazil qilmoqchi bo'lsangiz, huquqbuzarlik qatorning o'rnini ko'rsatadigan boshqa argument tomonidan qabul qilinadi. Bu darajadagi boshqa argument kabi "5", indexOf() 0-4 belgilarni e'tiborsiz qoldirib, 5 ta belgi uchun qidiruvni boshlang, xuddi shunday lastIndexOf() 5 belgisidan qidirishni boshlang va 6 va undan keyingi belgilarga e'tibor bermay, to'g'ri oldinga boring.

Shartnomani almashtirish

Qatordagi yozuvni boshqa qatorga almashtirish uchun siz g'alaba qozonishingiz mumkin almashtiring():

Var slugger = "Josh Hamilton"; var betterSlugger = slugger.replace("h Hamilton", "e Bautista"); console.log(betterSlugger); // "Xose Bautista"

Birinchi argument siz almashtirmoqchi bo'lganlar, boshqa argument esa yangi qatordir. Funktsiya qatordagi birinchi yozuvni almashtiradi.

Barcha yozuvlarni almashtirish uchun global ensigndan oddiy virusni yutib olish kerak:

Var myString = "U avtomobil qirg'og'ida avtomobil qobiqlarini sotadi"; var newString = myString.replace(/automotive/g, "dengiz"); konsol jurnali (newString); // "U dengiz qirg'og'ida dengiz chig'anoqlarini sotadi"

Yana bir dalil maxsus shablon yoki funktsiyani almashtirish bo'lishi mumkin. Hisobotni o'qish mumkin.

Qatorda berilgan pozitsiyadan keyin belgini oling

Biz qo'shimcha funktsiya uchun belgini olib tashlashimiz mumkin charAt():

Var myString = "Pat qushlari"; var whatsAtSeven = myString.charAt(7); // "f"

JavaScript-da tez-tez qo'llanilganidek, qatordagi birinchi pozitsiya 1 emas, 0 dan boshlanadi.

Muqobil funktsiya sifatida siz g'alaba qozonishingiz mumkin charCodeAt() belgini kodlash funktsiyasi.

Var myString = "Pat qushlari"; var whatsAtSeven = myString.charCodeAt(7); // "102" var whatsAtEleven = myString.charCodeAt(11); // "70"

E'tibor bering, "F" (11-pozitsiya) belgisi uchun kod "f" (7-pozitsiya) belgisidan pastroq.

Z'ednannya rowkív

Ko'pgina hollarda, qatorlarni birlashtirish uchun siz "+" operatoridan foydalanishingiz mumkin. Ale, shuning uchun siz usuli vikoristati mumkin birlashtirish():

Var stringOne="Knibb High Football"; var stringTwo = stringOne.concat("qoidalar."); // "Knibb High futbol qoidalari"

Ushbu tartibda biz shaxssiz qatorlarni bitta tartibda birlashtira olamiz, unda hid yozilgan:

VarstringOne = "Knibb"; var stringTwo = "Yuqori"; var stringThree = "futbol"; var stringFour = "qoidalar."; var finalString = stringOne.concat(stringTwo, stringThree, stringFour); console.log(finalString); // "Knibb yuqori futbol qoidalari."

Viluchennya podryadki

Є Keyingi qatorning bir qismiga qator qo'shishning 3 usuli:

vikorist tilim():

Var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.slice(5, 10); // "fghij"

vikorist substring():

Var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.substring(5, 10); // "fghij"

Ikkala funktsiyada ham birinchi parametr qator boshlangan belgi (0 pozitsiyadan boshlab) va boshqa argument (zaruriy) qator aylantiriladigan belgining pozitsiyasidir. Dumbada (5, 10) qator 5 va 9 pozitsiyalar orasida aylantiriladi.

vikorist substr():

Var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.substr(5, 10); // "fghijklmno"

Birinchi argument yangi qator boshlangan belgining pozitsiyasi, boshqa argument esa yangi qatorning kob pozitsiyasidagi belgilar soni. Tobto. (5, 10) 5-pozitsiyadan boshlab 10 ta belgini aylantiring.

Qatorni katta yoki kichik harf bilan tarjima qilish.

Ê 4 Men usullarni tarjima qilaman. Bosh harfdagi qatorni tarjima qilish uchun birinchi 2:

Var stringOne = "Gapiring, men sizni eshitmayapman."; var stringTwo = stringOne.toLocaleUpperCase(); // "GAPIR, MEN SIZNI ESHITMAYMAN" // "GAPIR, ESHITMAYMAN" "

Inchi 2 qatorni kichik harf bilan tarjima qiling:

Var stringOne = "SIZ QIQIRISH SHART YO'Q"; var stringTwo = stringOne.toLocaleLowerCase(); // "Siz baqirishingiz shart emas"

"Mahalliy" usulini qo'llash yaxshidir, chunki turli joylarda, masalan, Turkiyada, registrni ro'yxatdan o'tkazish biz atagandek ma'lum emas va natija biz xohlagandek bo'lishi mumkin. Agar siz "mahalliy" usuldan foydalansangiz, bunday muammolar bo'lmaydi.

naqsh mosligi

Ketma-ket shablonning amal qilish muddati 2 ta usul yordamida vikoristan bo'lishi mumkin, shuning uchun ular boshqacha ishlaydi.

Usul match() qatordan oldin zastosovuetsya va vin muntazam virus parametri sifatida qabul qiladi:

Var myString = "Yog'ochdan qancha yog'och chikarishi mumkin"; var myPattern = /.ood/; var myResult = myString.match(myPattern); // ["wood"] var patternLocation = myResult.index; // 9 var originalString = myResult.input // "Yog'och qancha yog'ochni tishlashi mumkin"

Usul exec() zastosovuetsya muntazam virase ob'ekti oldin va qator parametr sifatida qabul qiladi:

Var myString = "Yog'ochdan qancha yog'och chikarishi mumkin"; var myPattern = /.huck/; var myResult = myPattern.exec(myString); // ["chuck"] var patternLocation = myResult.index; // 27 var originalString = myResult.input // "Yog'och qancha yog'ochni tishlashi mumkin"

Ikkala usulda ham birinchi qadam buriladi. Yakshto zbígív bulo qilmadi - aylan null.

Bundan tashqari, usulni burishingiz mumkin qidirmoq(), bu muntazam ifodani oladi va shablondan keyingi birinchi kalit o'rnini aylantiradi:

Var myString = "Tasavvur qiling"; var patternLocation = myString.search(/ume/); // 3

Yakshcho zbígív bulo emas - aylan -1 «.

Saralash uchun ikkita qatorni ulash

Siz 2 qatorni tekislashingiz mumkin, birinchisi ulardan qanday o'tishini belgilashingiz mumkin. Qaysi tezlik uchun usul localeCompare(), bu 3 ta mumkin bo'lgan qiymatni aylantiradi:

Var myString = "tovuq"; var myStringTwo = "tuxum"; var whichCameFirst = myString.localeCompare(myStringTwo); // -1 (Chrome -2 qaytaradi) whichCameFirst = myString.localeCompare("tovuq"); // 0 whichCameFirst = myString.localeCompare("olma"); // 1 (Chrome 2-ni qaytaradi)

Ko'proq ko'rsatilgandek, raqam teskari qatordan keyin qator argumenti sifatida salbiyga aylanadi. Ijobiy raqam, qator argumenti kabi, oxirgi qatorga oldinroq ketdi. Yakscho o'girilib 0 - Demak, qatorlar teng.

Aylanayotgan qiymatni tekshirish uchun if (natija< 0), чем if (result === -1). Последнее не будет работать в Chrome.

Hurmatingiz uchun rahmat, ishonchim komilki, siz juda ko'p yangi narsalarni bilib oldingiz!

Maqola muallifi: Aleks. Turkum:
Nashr qilingan sana: 19.03.2013 y

Agar men JavaScript-da yozadigan bo'lsam, men ko'pincha qatorlarda ishlaydigan usullarning sintaksisini (i tartib, argumentlarni belgilash) aniqlashtirish uchun poke tizimlariga boraman.

Ushbu maqolada men qatorlar bilan bog'liq eng keng JavaScript usullariga misollar berishga harakat qilaman. Qo'lda tikishning eng mashhur usuli - maqolaning yuqori qismida.

Keling, uni bir qatorga aylantiramiz

Siz raqamni, qiymatni yoki ob'ektni qatorga o'zgartirishingiz mumkin.

var myNumber = 24; // 24 var myString = myNumber.toString(); // "24"

Xuddi shunday manipulyatsiyalarni string() yordamchi funksiyasi bilan ham bajarishingiz mumkin.

var myNumber = 24; // 24 var myString = String(myNumber); // "24"

Nikolas Zakas shunday deydi: "Agar sizda qiymat bo'lmasa (null yoki noaniq), u holda o'zgartirish turidan qat'iy nazar parchalarni qatorga aylantirib, String() funksiyasidan foydalaning."

aniqlanmagan o'zgartirishga kerakli qiymat berilmaganligini bildiradi, a null, - bo'sh qiymatga tayinlangan (aytishimiz mumkinki, null bo'sh ob'ekt sifatida tayinlangan).

Bir qatorni qatorlarga ajratish

Qatorni qatorlar qatoriga bo'lish uchun siz split() usulini burishingiz mumkin:

Var myString = "keladi, ajratiladi, da, vergul"; var substringArray = myString.split(","); // ["kelayotgan", "apart", "at", "the", "vergul"] var arrayLimited = myString.split(",", 3); // ["kelish", "ajralish", "ot"]

Qatorning qolgan qismidan yig'layotganda, boshqa neo-til argumentining ma'nosi aylanuvchi massivdagi elementlarning sonini ko'rsatadi.

Qator uzunligini olib tashlang

Uzunlikning qo'shimcha kuchi uchun siz ketma-ket Unicode belgilar sonini bilishingiz mumkin:

Var myString = "Siz" juda xarakterlisiz."; var stringLength = myString.length; // 25

Biz ketma-ket qatorni bildiramiz

Ê buni amalga oshirishning ikkita usuli o'ylab topilgan:

Wikiwand indexOf():

Var stringOne = "Jonni Valdo Xarrison Valdo"; var wheresWaldo = stringOne.indexOf("Waldo"); // 7

indexOf() usuli qatorni (birinchi argument o'tgan) qatorni qidiradi (qatorning yuqori qismiga qaraydi) va satr kira boshlagan birinchi belgining o'rnini aylantiradi.

Wickery lastIndexOf() :

Var stringOne = "Jonni Valdo Xarrison Valdo"; var wheresWaldo = stringOne.lastIndexOf("Waldo"); // 22

LastIndexOf() usuli hammasi bir xil ishlaydi, chunki qolgan qatorlar qatorga kirishni qidiradi.

Bir qarashda, buyurtma topilmagandek, usul va navbatning jinoyati -1. Majburiy bo'lmagan yana bir dalil qatordagi pozitsiyaga ishora qiladi, buning uchun siz hazil qilmoqchisiz. Shunday qilib, agar indexOf() usulining boshqa argumenti 5 bo'lsa, qidiruv 5-belgidan qaytariladi va 0-4 belgilar e'tiborga olinmaydi. lastIndexOf() va boshqa argument 5 uchun qidiruv to'g'ridan-to'g'ri qaytadi va 6 va undan ortiq belgilar e'tiborga olinmaydi.

Qatorning bir qismini qanday almashtirish kerak

Qatorning bir qismini (yoki hammasini teskarisiga) almashtirish uchun replace() usulini belgilang.

Var slugger = "Josh Hamilton"; var betterSlugger = slugger.replace("h Hamilton", "e Bautista"); console.log(betterSlugger); // "Xose Bautista"

Birinchi bahsda shartnomaning o'sha qismi o'tkazib yuborilgan, masalan, almashtirish; boshqa argument - o'sha qator, siz o'rnida turasiz, almashtirilayotgan narsani almashtiring. Buyurtmaning birinchi nusxasi almashtiriladi.

Buyurtmaning barcha kiritmalarini almashtirish uchun oddiy virazni "g" belgisi bilan ko'z qisib qo'ying.

Var myString = "U avtomobil qirg'og'ida avtomobil qobiqlarini sotadi"; var newString = myString.replace(/automotive/g, "dengiz"); konsol jurnali (newString); // "U dengiz qirg'og'ida dengiz chig'anoqlarini sotadi"

Boshqa argument pastki qator yoki funktsiyani o'z ichiga olishi mumkin.

Berilgan pozitsiyaning orqasidagi belgini toping

Qaysi belgi berilgan holatda ekanligini bilish uchun charAt() usulidan foydalanishingiz mumkin:

Var myString = "Pat qushlari"; var whatsAtSeven = myString.charAt(7); // "f"

JavaScript-da tez-tez sodir bo'lganidek, birinchi pozitsiya 1 emas, 0 ni bildiradi.

Shu bilan bir qatorda, siz charCodeAt() usulini o'zgartirishingiz, belgini almashtirishingiz va ushbu kodni o'chirib tashlashingiz mumkin.

Var myString = "Pat qushlari"; var whatsAtSeven = myString.charCodeAt(7); // "102" var whatsAtEleven = myString.charCodeAt(11); // "70"

Ko'rsatingki, bosh harf uchun kod (11-pozitsiya) bosh harf uchun kod deb hisoblanadi, kichik harflar uchun esa (7-pozitsiya).

javascript qatorini birlashtirish

Qatorlar va g'oliblarni birlashtirish uchun eng yaxshi variant operator (+) dir. Biroq, qatorlarni concat() usuli yordamida birlashtirish ham mumkin.

Var stringOne="Knibb High Football"; var stringTwo = stringOne.concat("qoidalar."); // "Knibb High futbol qoidalari"

Siz anonim qatorlarni concat() ga o'tkazishingiz mumkin va natijada paydo bo'lgan qatorda hidlar concat() usuliga qo'shilish tartibida tartiblanadi.

VarstringOne = "Knibb"; var stringTwo = "Yuqori"; var stringThree = "futbol"; var stringFour = "qoidalar."; var finalString = stringOne.concat(stringTwo, stringThree, stringFour); console.log(finalString); // "Knibb yuqori futbol qoidalari."

Qatorning bir qismi (javascriptdan qatorni olib tashlash)

Yangi qatorni yaratishning uch xil usuli mavjud, "vismiknuvshi" qatorning allaqachon aniq qatordan qismi.

Wicorst slice():

Var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.slice(5, 10); // "fghij"

Vicorist substring():

Var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.substring(5, 10); // "fghij"

Ikkala (slice() va substring()) usullari uchun birinchi argument pastki satr asos bo'lgan belgining pozitsiyasi (ketma-ketlik 0 dan boshlab amalga oshiriladi), boshqa argument belgilarning pozitsiyasi, bu erda ketma-ketlik tugaydi, bundan tashqari, belgi boshqa argumentga tayinlanadi, buyurtmaning navbatida yoqilmaydi.

Vicorist substr():

Var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.substr(5, 10); // "fghijklmno"

Substr usuli uchun birinchi argument, shuningdek, ketma-ketlik boshlanadigan belgining o'rnini ham belgilaydi. Yana bir dalil - neobov'yazkovim. Ammo shu bilan birga, boshqa argument belgilar sonini, xuddi biz birinchi argumentda aytib o'tganimizdek, pozitsiyadan boshlab, pastki qatordan oldin kiritilgandek belgilaydi. Ushbu texnika misolda yaxshi tasvirlangan.

Javascriptda qatorni kichik yoki katta harflarga o'zgartirish

Ê chotiri yo'llari kerakli transformatsiyani o'stirish. Yuqori registrdagi belgilarni o'zgartirish uchun ikkita qator.

Var stringOne = "Gapiring, men sizni eshitmayapman."; var stringTwo = stringOne.toLocaleUpperCase(); // "GAPIR, MEN SIZNI ESHITMAYMAN"

Qatorlarni kichik harflarga o'tkazish uchun I ikki:

Var stringOne = "SIZ QIQIRISH SHART YO'Q"; var stringTwo = stringOne.toLocaleLowerCase(); // "Siz baqirishingiz shart emas"

Qoidaga ko'ra, mahalliy uslub va mahalliy bo'lmagan usul o'rtasida hech qanday farq yo'q, ammo "ba'zi tillar uchun, masalan, turkiy tillar uchun, ular uchun belgilar soni Unicode tizimida o'rnatilgan holatga mos kelmaydi. mahalliy bo'lmagan usulning o'zgarishining merosi boshqacha bo'lishi mumkin." Shuning uchun, oldinga siljish qoidasiga amal qiling: "agar siz tilni bilmasangiz, ba'zi kodlarda mahalliy til usulidan foydalanish xavfsizroqdir".

Javascriptda shablonni tekshirish

Shablonning ko'rinishini ketma-ket 2 usul yordamida o'zgartirishingiz mumkin.

match() usuli string ob'ektida chaqiriladi, chunki match() usuliga argument muntazam ravishda uzatiladi.

Var myString = "Yog'ochdan qancha yog'och chikarishi mumkin"; var myPattern = /.ood/; var myResult = myString.match(myPattern); // ["wood"] var patternLocation = myResult.index; // 9 var originalString = myResult.input // "Yog'och qancha yog'ochni tishlashi mumkin"

Exec() usuli RegExp obyektidan chaqiriladi, chunki argument quyidagi tartibda uzatiladi:

Var myString = "Yog'ochdan qancha yog'och chikarishi mumkin"; var myPattern = /.huck/; var myResult = myPattern.exec(myString); // ["chuck"] var patternLocation = myResult.index; // 27 var originalString = myResult.input // "Yog'och qancha yog'ochni tishlashi mumkin"

Usullarni ranjitib, ular birinchi marta kirganda o'girilishadi. Har qanday topilmagan narsa NULL qaytariladi. Agar oddiy virazda "g" belgisi bo'lsa, natijada barcha to'lqinlardan o'ch olish uchun massiv aylantiriladi.

Bundan tashqari, argument sifatida oddiy massivni oladigan va mos keladigan birinchi naqshning sarlavhasi o'rnini aylantiradigan search() usulini sozlashingiz mumkin.

Var myString = "Tasavvur qiling"; var patternLocation = myString.search(/ume/); // 3

Agar zbígív oshkor etilmasa, burilish yo'li -1.

Masofaviy saralash uchun ikkita qatorni ulash

Harakatlanuvchi standartdagi saralash tartibida ikki qatorni keyingi tartibda solishtirish uchun siz localeCompare usulidan foydalanishingiz mumkin. localeCompare usuli uchta mumkin bo'lgan qiymatni aylantiradi.

MyString = "tovuq"; var myStringTwo = "tuxum"; var whichCameFirst = myString.localeCompare(myStringTwo); // -1 (-2 qaytaradigan Chromedan tashqari) whichCameFirst = myString.localeCompare("tovuq"); // 0 whichCameFirst = myString.localeCompare("olma"); // 1 (Chrome 2-ni qaytaradi)

Yuqorida ko'rsatilganidek, manfiy qiymat aylantiriladi, shuning uchun saralashda asl qator qator argumentidan oldin teskari bo'ladi, chunki asl qatordan keyin saralashda satr argumenti teskari bo'lib, +1 qiymati aylantiriladi. Nol qiymatlari aylantirilganda, ikkita qator ekvivalent bo'ladi.

Buyurtma operatorining operandlari raqamli yoki qator qiymatlari bo'lishi mumkin. Qatorlar Unicode alternativalarida standart leksikografik tartibdan chetga chiqqan holda tartiblangan.

Javascript ma'lum turdagi turlarga moslashish va moslashtirish imkonini beradi. Suvorovogo povnyannya obydva operandi uchun bir xil i onasi tufayli:

  • Ikki qator qat'iy teng, go'yo ular bir xil belgilar ketma-ketligi bilan tuzilgan
  • Ikki raqam qat'iy teng, so'zning asosiy ma'nosiga teng. +0 suvoro dorivnyu -0.
  • NaN qat'iy ravishda hech narsa bilan bir xil emas, shu jumladan NaN
  • Ikki mantiqiy operand qat'iy teng, haqiqiy yoki noto'g'ri
  • Ikki operand-obyekt qat'iy teng, xuddi shu qizg'in ob'ektga yuborilgandek
  • Null va Undefined teng ==, lekin qat'iy teng emas ===

Quyidagi jadval buyurtma operatorlarini tavsiflaydi:

Operator Tavsif var1=3, var2=4 boʻlganda rost boʻladigan narsani qoʻllang
Rivno (==) Go'yo ikkita operand bir xil turdagi bo'lmasa, JavaScript turni o'zgartiradi va unga juda mos keladi. Agar operand mantiqiy raqam bo'lsa, u holda operandlar raqamlarga aylantiriladi; yakscho be-yak operand qatori - qatorga yana bir transformatsiya

3 == var1
"3" == var1
3 == "3"

Bir emas (!=) Operandlar teng bo'lmasa, rost bo'lsin. Operandlar turini o'zgartirishi kabi JavaScript ham qayta yoziladi.

var1 != 4
var1 != "5"

To'liq bitta (===) Operandlar turlarni o'zgartirmasdan qat'iy teng bo'lishi uchun (bo'lim yuqoriroq) rostni aylantiring.
To'g'ri, bitta emas (!==) Operandlar mutlaqo teng emas (ajoyib), lekin har xil turdagi bo'lishi uchun "haqiqat"ni aylantiring.

var2 !== 3
3 !== "3"

Batafsil (>) Chap operand o'ng operanddan katta bo'lsa, rostga aylantiring.
Ko'proq yoki bitta (>=) Chap operand o'ngdan kattaroq yoki boshqasidan kattaroq ekanligini ko'rsatish uchun rostni aylantiring.

var2 >= var1
var1 >= 3

Menshe (<) Chap operand o'ng operanddan kichik bo'lsa, rost bo'lsin.
Kamroq yoki qimmatroq (<=) Chap operand o'ng operanddan kichik bo'lsa yoki unga teng bo'lsa, rost bo'lsin.

var1<= var2
var2<= 5

Yomon operatorlar

Standart tenglik operatorlari (== i!=) ikkita operandni bir xil turga moslashtiradi. Suvora tengligi (=== i!==) bir xil turdagi mos operandlarni o'rnatadi. Qattiq ekvivalentlikni enging, chunki operandlar bir xil turdagi va qiymatdagi onaga bog'liq. Boshqacha qilib aytganda, turli xil tenglik operatorlaridan foydalaning, chunki ular operandlarning tengligini teskari o'zgartirishga, boshqa turdagi o'xshash hidni yaratishga imkon beradi.

Turlarni o'zgartirganda Javascript String, Number, Boolean va Ob'ektni haqoratli tarzda o'zgartiradi:

  • Raqam teng bo'lsa, o'sha qator, qator raqamli qiymat bo'yicha o'zgartiriladi. Javascript satr literalining soni uchun o'z qiymatiga ega: "123" == 123 .
  • Agar operandlardan biri mantiqiy bo'lsa, u holda vin 1 ga, agar vin rost bo'lsa va +0 gacha, agar vin noto'g'ri bo'lsa, o'zgartiriladi.
  • Agar ob'ekt raqam yoki qator bilan taqqoslansa, Javascript ob'ektning mos keladigan qiymatiga mos kelishga harakat qiladi. ValueOf va toString usullaridan foydalangan holda ob'ektni elementar qiymatga, qatorga yoki raqamga aylantirish. Agar ob'ektni qanday o'zgartirishni bilmasangiz - kechirim hosil bo'ladi.
Amaliyot qilmang