Rumah  >  Artikel  >  hujung hadapan web  >  Terangkan tujuan pengendali "dalam" dalam JavaScript

Terangkan tujuan pengendali "dalam" dalam JavaScript

WBOY
WBOYke hadapan
2023-08-24 14:25:091167semak imbas

解释 JavaScript 中“in”运算符的用途

Tutorial ini akan mengajar anda tentang pengendali "dalam" dalam JavaScript. Terdapat banyak pengendali yang tersedia dalam JavaScript, seperti pengendali aritmetik, pengendali tugasan, pengendali kesamaan, dsb. untuk melaksanakan operasi matematik. Pengendali "dalam" juga merupakan salah satu daripadanya dan kita boleh menggunakannya untuk mencari sifat daripada objek.

Sebelum saya mulakan, izinkan saya bertanyakan soalan kepada anda. Semasa pengekodan dalam JavaScript, adakah anda perlu menyemak sama ada sifat objek wujud? Jika ya, bagaimana anda mengendalikannya? Jawapannya mudah, anda boleh menggunakan pengendali "dalam", yang mengembalikan nilai boolean berdasarkan sama ada objek itu mengandungi harta itu.

Semak sama ada sifat objek wujud menggunakan pengendali "dalam"

Pengendali "dalam" berfungsi sama seperti pengendali lain. Ia memerlukan dua operan. Sifat objek berfungsi sebagai operan kiri, dan objek itu sendiri berfungsi sebagai operan kanan.

Tatabahasa

Anda boleh menyemak kewujudan sifat objek menggunakan pengendali "dalam" seperti dalam sintaks berikut.

let object = {
   property: value,
}
let ifExist = "property" in object;

Dalam sintaks di atas, anda boleh melihat cara objek mengandungi sifat dan nilainya. Nilai boleh menjadi nombor, rentetan, boolean, dll. Pembolehubah ifExist menyimpan nilai boolean benar atau palsu berdasarkan sama ada sifat itu wujud dalam objek.

Contoh 1

Dalam contoh ini, kami mencipta objek dengan sifat dan nilai yang berbeza. Selain itu, objek mengandungi kaedah. Selepas itu, kami menggunakan operator "dalam" untuk menyemak sama ada atribut wujud dalam objek.

Dalam output contoh, pengguna boleh melihat bahawa pengendali "dalam" mengembalikan benar untuk property1 dan property4, tetapi mengembalikan false untuk property7 kerana ia tidak wujud dalam objek.

<html>
<body>
   <h3>Using the <i> in operator </i> to check for the existence of the property in the object.</h3>
   <div id = "output"> </div>
   <script>
      let output = document.getElementById("output");
      let object = {
         property1: "value",
         property2: 20,
         property3: false,
         property4: () => {
            console.log("This is a sample function.");
         },
      };
      let ifExist = "property1" in object;
      output.innerHTML +=
         "The property1 exist in the object " + ifExist + "<br/>";
      ifExist = "property4" in object;
      output.innerHTML +=
         "The property4 exist in the object " + ifExist + "<br/>";
      ifExist = "property7" in object;
      output.innerHTML +=
         "The property7 exist in the object " + ifExist + "<br/>";
   </script>
</body>
</html>

Dalam JavaScript, setiap objek mempunyai prototaipnya. Objek rantai prototaip sebenarnya mengandungi beberapa kaedah dan sifat dalam objek. Walau bagaimanapun, kami belum menambahkan sifat ini pada objek lagi, tetapi JavaScript menambahkannya secara lalai. Sebagai contoh, prototaip tatasusunan dan rentetan mengandungi sifat "panjang", dan prototaip objek mengandungi sifat "toString".

Contoh 2

Dalam contoh di bawah, kami telah mencipta kelas dan menentukan pembina di dalamnya untuk memulakan sifat objek. Selain itu, kami telah menentukan kaedah getSize() dalam kelas jadual.

Selepas itu, kami menggunakan pembina untuk mencipta objek kelas jadual. Kami menggunakan pengendali "dalam" untuk menyemak sama ada harta itu wujud dalam prototaip objek. Dalam JavaScript, setiap objek mempunyai kaedah toString() dalam prototaipnya, itulah sebabnya ia mengembalikan benar.

<html>
<body>
   <h3>Using the <i> in operator </i> to check for the existence of the property in the object prototype</h3>
   <div id = "output"> </div>
   <script>
      let output = document.getElementById("output");
      // creating the table class
      class table {
         //  constructor function
         constructor(prop1, prop2, prop3) {
            this.prop1 = prop1;
            this.prop2 = prop2;
            this.prop3 = prop3;
         }
         getSize() {
            return 10;
         }
      }
      //  creating the object of the table class
      let tableObjet = new table("blue", "wood", "four drawers");
      // check if a property exists in the object
      let ifExist = "prop1" in tableObjet;
      output.innerHTML +=
         "The prop1 exists in the constructor properties of tableObject: " +
         ifExist + "</br>";
      // some properties also exist in the object prototype chain.
      ifExist = "length" in tableObjet;
      output.innerHTML +=
      "The length property exists in the constructor properties of tableObject: " 
         + ifExist + "</br>";
      ifExist = "toString" in tableObjet;
      output.innerHTML +=
         "The toString Property exists in the constructor properties of tableObject: " 
         + ifExist + "</br>";
   </script>
</body>
</html>

Semak sama ada indeks wujud dalam tatasusunan menggunakan operator dalam

Kami hanya boleh menggunakan operator "dalam" dengan objek. Tatasusunan juga merupakan contoh objek. Pengguna boleh menggunakan operator instanceOf atau typeOf untuk menyemak jenis tatasusunan, ia mengembalikan "Objek". Oleh itu, kunci dalam tatasusunan ialah indeks tatasusunan dan nilai kunci ialah nilai tatasusunan.

Di sini, kita boleh menggunakan operator "dalam" untuk menyemak sama ada indeks wujud dalam tatasusunan. Jika ada, kita boleh mengakses nilai tatasusunan untuk mengelakkan pengecualian arrayOutOfBound.

Tatabahasa

Pengguna boleh menyemak sama ada indeks wujud dalam tatasusunan dengan mengikuti sintaks berikut -

let array = [10, 20, 30];
let ifExist = 2 in array;

Dalam sintaks di atas, 2 yang ditulis sebelum operator ialah indeks tatasusunan, bukan nilainya.

Contoh 3

Dalam contoh di bawah, kami telah mencipta tatasusunan dan menyemak jenis tatasusunan menggunakan operator typeOf, yang mengembalikan "Objek".

Selain itu, kami telah menggunakan pengendali "dalam" untuk menyemak sama ada indeks tatasusunan dan sifat panjang terdapat dalam prototaip tatasusunan.

<html>
<body>
   <h2>Using the <i> in operator </i> to check whether the array index exists.</h2>
   <div id = "output"> </div>
   <script>
      let output = document.getElementById("output");
      let array = [10, 20, "Hello", "Hi", true];
      output.innerHTML += "The type of the array is " + typeof array + "<br/>";
      let ifExist = 2 in array;
      output.innerHTML +=
         "The index 2 exist in the array is " + ifExist + "<br/>";
      ifExist = 7 in array;
      output.innerHTML +=
         "The index 7 exist in the array is " + ifExist + "<br/>";
      ifExist = "length" in array;
      output.innerHTML +=
         "The length property exist in the array is " + ifExist + "<br/>";
   </script>
</body>
</html>

Tutorial ini mengajar kita cara menggunakan operator "dalam" dengan objek dan tatasusunan. Dalam objek, pengguna boleh menyemak sama ada sifat wujud, dan dalam tatasusunan, pengguna boleh menyemak sama ada indeks wujud menggunakan pengendali "dalam".

Atas ialah kandungan terperinci Terangkan tujuan pengendali "dalam" dalam JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam