Rumah  >  Artikel  >  hujung hadapan web  >  Apakah pengendali identiti javascript?

Apakah pengendali identiti javascript?

青灯夜游
青灯夜游asal
2022-02-15 17:44:003113semak imbas

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.

Apakah pengendali identiti javascript?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn