Dalam JavaScript, pengendali identiti ialah "===", yang digunakan untuk membandingkan sama ada operan pada kedua-dua belah persamaan adalah sama. Semasa operasi perbandingan, "===" bukan sahaja membandingkan sama ada nilai kedua-dua operan adalah sama, tetapi juga menyemak sama ada jenisnya adalah sama asalkan nilainya sama dan jenisnya sama , benar akan dikembalikan.
Persekitaran pengendalian tutorial ini: sistem Windows 7, versi JavaScript 1.8.5, komputer Dell G3.
Dalam JavaScript, pengendali identiti ialah "===", yang digunakan untuk membandingkan sama ada operan pada kedua-dua belah persamaan adalah sama.
Apabila melakukan operasi perbandingan, pengendali "===" bukan sahaja membandingkan sama ada nilai kedua-dua operan adalah sama, tetapi juga menyemak sama ada jenisnya adalah sama.
Dalam operasi identiti, isu berikut perlu diberi perhatian:
Jika kedua-dua operan adalah nilai mudah, selagi nilainya sama dan jenisnya adalah sama, Sama sahaja.
Jika satu operan ialah nilai mudah dan satu lagi operan ialah objek komposit, ia tidak kongruen.
Jika kedua-dua operan ialah objek komposit, bandingkan sama ada alamat rujukan adalah sama.
(1) Jika jenisnya berbeza, ia mestilah tidak sama
(2) Jika kedua-duanya adalah nilai berangka dan nilai yang sama, maka ia adalah sama; jika Sekurang-kurangnya satu NaN, maka mereka tidak sama. (Untuk menentukan sama ada nilai ialah NaN, anda hanya boleh menggunakan isNaN() untuk menentukan)
(3) Jika kedua-duanya adalah rentetan dan aksara pada setiap kedudukan adalah sama, maka ia adalah sama, jika tidak ia adalah tidak sama.
(4) Jika kedua-dua nilai adalah benar atau salah, maka ia adalah sama
(5) Jika kedua-dua nilai merujuk kepada objek atau fungsi yang sama, maka ia adalah sama, sebaliknya bukan Kesamaan
(6) Jika kedua-dua nilai adalah batal atau tidak ditentukan, maka kesamaan
Contoh 1
Berikut ialah operan khas Perbandingan kongruen.
console.log(null === undefined); //返回false console.log(0 === "0"); //返回false console.log(0 === false); //返回false
Contoh 2
Berikut ialah perbandingan dua objek Memandangkan kedua-duanya merujuk kepada alamat yang sama, benar dikembalikan.
var a = {}; var b = a; console.log(a === b); //返回true
Walaupun dua objek berikut mempunyai struktur yang sama, ia mempunyai alamat yang berbeza, jadi ia tidak kongruen.
var a = {}; var b = {}; console.log(a === b); //返回false
Contoh 3
Untuk objek komposit, alamat rujukan terutamanya dibandingkan, dan nilai objek tidak dibandingkan.
var a = new String("abcd); //定义字符串“abcd”对象 var b = new String("abcd); //定义字符串“abcd”对象 console.log(a === b); //返回false console.log(a == b); //返回false
Dalam contoh di atas, nilai kedua-dua objek adalah sama, tetapi alamat rujukan adalah berbeza, jadi mereka tidak mahu menunggu dan tidak sama. Oleh itu, untuk objek komposit, hasil operasi kesamaan == dan kongruen === adalah sama.
Contoh 4
Untuk nilai mudah, selagi ia mempunyai jenis dan nilai yang sama, ia adalah kongruen, tanpa mengira perubahan dalam proses operasi ungkapan atau alamat rujukan.
var a = "1" + 1; var b = "11"; console.log(a ===b); //返回true
Contoh 5
Ungkapan (a>b || a==b) tidak betul-betul sama dengan ungkapan (a>=b).
var a = 1; var b = 2; console.log((a > b || a == b) == (a >= b)); //返回true,此时似乎相等
Jika null dan undefined masing-masing ditugaskan kepada pembolehubah a dan b, nilai palsu dikembalikan, menunjukkan bahawa kedua-dua ungkapan itu tidak setara sepenuhnya.
var a = null; var b = undefined; console.log((a > b || a == b) == (a >= b)); //返回false,表达式的值并非相等
Oleh kerana null == undefined adalah sama dengan benar, nilai pulangan bagi ungkapan (a > b || a == b) adalah benar, tetapi nilai pulangan bagi ungkapan null > = undefined adalah palsu.
[Cadangan berkaitan: tutorial pembelajaran javascript]
Atas ialah kandungan terperinci Apakah pengendali identiti javascript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!