Javascriptda loop-so'rovni oddiy qilish

In the book Beginning JavaScript i came across a simple program which is written below. I am unable to understand how the this/that code works here and how the while loop operates here ( I know while loops a little but the != - 1 part makes it confusing & the Google search i did on it turned out a little vague). Any help is appreciated and if there is any mistake please feel free to correct it. I can understand what the code below is doing but the above query are still a little confusing The simple code below is working.

Kod:

<div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"> <div class="snippet-code">

var myImages = new Array("monkeyDluffy.png", "roronoaZoro.jpg", "sanji.jpg", "godUssop.png");

function changeImg(that) { //Can be named anything that is just professional
  var newImgNumber = Math.round(Math.random() * 3); //a simple random number generated
  while (that.src.indexOf(myImages[newImgNumber]) != -1) {
    newImgNumber = Math.round(Math.random() * 3);
  }
  that.src = myImages[newImgNumber];

  return false;
}
/*here use of this and that enables the code to perform better for a single object as*/
<html>

<head>
  <title>JS</title>

  <body>
    
    
  </body>
</head>

</html>
</div> </div>
0
! = -1 "salbiy teng emas 1." degan ma'noni anglatadi. indexOf() funktsiyasi sizga 0-asosidagi magistrning ko'rsatkichi ni bildiradi. Agar "salom dunyosi" .indexOf ("h") ni ishlatgan bo'lsangiz, siz h 0 bo'lasiz, chunki h birinchi belgidir. -1 , satr topilmadi degan ma'noni anglatadi.
qo'shib qo'ydi muallif Tyler Roper, manba

7 javoblar

=! - 1-qism uni shubhali qiladi

indexOf :

Qaytish qiymati

     

Belgilangan qiymatning birinchi ko'rinishi indeksi; Yo'q bo'lsa -1   topildi.

Belgilangan qiymat topilsa, u loop bo'ladi. U topilmasa, pastadir to'xtaydi.

3
qo'shib qo'ydi

=! - 1-qism uni shubhali qiladi

indexOf :

Qaytish qiymati

     

Belgilangan qiymatning birinchi ko'rinishi indeksi; Yo'q bo'lsa -1   topildi.

Belgilangan qiymat topilsa, u loop bo'ladi. U topilmasa, pastadir to'xtaydi.

3
qo'shib qo'ydi

Tekshirish (! = -1) oddiygina, agar qidirilayotgan qiymat manbada topilsa (bu holatda Array), kod loopning davom etishini, ya'ni kodni > while pastadir.

Ushbu bu/ kontseptsiyasi bilan sizda mavjud bo'lgan "confusion":

bu ob'ektlar bilan ishlayotganda murojaat qilish uchun mavjud kontekstni yoki kontekstni anglatadi va JavaScript-ni boshqa funktsiyalarni chaqiruvchi anonim funktsiyalar va funktsiyalarga o'xshash narsalar mavjudligi sababli chalkash bo'lishi mumkin, bu kontekstning "yo'qolishiga" yoki to'liq " > Bu kalit so'z bog'lab turadi yoki bildiradi, lekin bu boshqa mavzu.

Sizning holatingizda return changeImg (this) ) kodingizda ko'rsatilgan o'zgarish funksiyasining chaqiruvi bu bu parametrini argument (s) ), bu kontekstni joriy elementga (DOM elementi) bosib qo'yishga yordam beradi, bu sizning Js kodingizga kirish uchun. Shunday qilib, siz turli elementlarga bir xil funktsiyani (changeImg) chaqiradigan darajada ishonch hosil qilish uchun bu parametrini ko'rishingiz mumkin, kontekst to'g'ri belgilangan.

The use of that , is simply a way of referring to this , I would assume that, somewhere in your textbook, where you extracted the code from, there's something that probably looks like : var that = this;

1
qo'shib qo'ydi

Bu "belgilangan"


"changeImg" funktsiyasidagi "img" elementiga ishora qiladi: shuning uchun to'g'ridan-to'g'ri "src" xususiyatiga kirishingiz mumkin.
'Bu oddiy usul parametridir va' this 'ga ishora qiladi.

Buning o'rniga qaytish uslubi, Quentinning javobi yaxshi!

0
qo'shib qo'ydi

Bu "belgilangan"


"changeImg" funktsiyasidagi "img" elementiga ishora qiladi: shuning uchun to'g'ridan-to'g'ri "src" xususiyatiga kirishingiz mumkin.
'Bu oddiy usul parametridir va' this 'ga ishora qiladi.

Buning o'rniga qaytish uslubi, Quentinning javobi yaxshi!

0
qo'shib qo'ydi

"bu" img elementiga ishora qiladi, "bu" funktsiya argumenti, shuning uchun "u erda" ob'ektning qaysi ob'ektga o'tishi nazarda tutiladi (bu "bu" bilan bir xil ob'ektga aylanadi).

va keyinchalik, deydi Kventin.

0
qo'shib qo'ydi

"bu" img elementiga ishora qiladi, "bu" funktsiya argumenti, shuning uchun "u erda" ob'ektning qaysi ob'ektga o'tishi nazarda tutiladi (bu "bu" bilan bir xil ob'ektga aylanadi).

va keyinchalik, deydi Kventin.

0
qo'shib qo'ydi
Javascript UZB
Javascript UZB
99 ishtirokchilar

@js_uzb @vuejs_uz @react_uz @nodejs_uz @angular_uz @ngTashkent @yiiframework_uz @laravel_uz @linux_uzbek @python_uz @swift_uzb —————— @uzdevgroup @UzGeeksGroup ——— @UzDev_Jobs @jobs_uzb