Penilaian komparatif
Penilaian perbandingan adalah untuk membandingkan dua nilai dan mengembalikan nilai boolean untuk menunjukkan apakah kondisi perbandingan dipenuhi. JavaScript menyediakan total 8 operator perbandingan. Di sini kami terutama berbicara tentang perbedaan antara operator kesetaraan yang ketat dan operator kesetaraan.
Operator Kesetaraan yang ketat ===
Tentukan bahwa pengembalian dua nilai berbeda, salah, kedua nilai itu nol/tidak terdefinisi/benar/false true. Salah satu dari dua nilainya adalah NAN, FALSE, kedua nilai adalah numerik dan sama, benar, kedua nilai adalah string, dan nilai yang sama adalah benar, kedua nilai menunjukkan tipe referensi yang sama true1 === "1" // falsetrue === true // trueundefined === tidak terdefinisi /// truenan // truenan ===== = {{{{Truen === false [] === [] // false (function () {} === function () {}) // falseavar v1 = {}; var v2 = v1; // Dua nilai merujuk ke objek yang sama v1 === v2 // trueOperator kesetaraan yang ketat memiliki operator ketidaksetaraan yang ketat yang sesuai (! ==), dan hasil operasi keduanya justru sebaliknya.
Operator Kesetaraan ==
Jika Operator Kesetaraan membandingkan data dari jenis yang sama, operator kesetaraan yang sama yang sama jika operator kesetaraan membandingkan berbagai jenis data: jenis data asli akan dikonversi menjadi tipe numerik, mengubah kedua string dan boolean menjadi nilai numerik, dan kemudian membandingkan null == yang tidak terdefinisi dengan nilai yang tidak terdefinisi, yang lain adalah suatu objek, yang lain adalah angka atau string, mengonversi objek ke dalam null == KEBAIHAN. // true'123 '== 123; // Benar, '123' akan dikonversi menjadi nilai numerik 123false == 0; // Benar, konversi palsu ke nilai numerik adalah 0'a '==' a '; // false, pengkodean yang dikonversi berbeda 123 == {}; //false, executing toString() or valueOf() will change 123 == = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Nan; // false, selama ada nan, itu false {} == {}; // Salah, perbandingannya adalah alamat mereka. The reference address of each newly created object is different null == undefined //true'NaN' == NaN //false123 == NaN //falseNaN == NaN //falsefalse == 0 //truetrue == 1 //truetrue == 2 //falseundefined == 0 //falsenull == 0 //false'123' == 123 //true'123' == 123 // SalahOperator kesetaraan memiliki operator yang tidak sama (! =), Dan hasil operasi keduanya justru sebaliknya.
!!hakim
!! setara dengan Boolean , ini sangat berguna saat menulis kode !! Mengubahnya menjadi tipe Boolean untuk penilaian sangat berguna
!! 'xzavier'; // BENAR!!''; // false !! '0'; // Benar !! '1'; // Benar !! '-1' // Benar !! 0 // false !! tidak terdefinisi // false !! null // false !! nan // false !! {}; // true !! {name: 'xz'} // true !! []; // Benar !! [1,2,3]; // betul betul; // BENAR!hakim
Operator terbalik! digunakan untuk mengubah nilai boolean ke nilai yang berlawanan, yaitu, benar menjadi false dan false menjadi benar. Untuk data yang bukan boolean, operator inversi secara otomatis mengubahnya menjadi boolean. Aturannya adalah bahwa enam nilai berikut terbalik menjadi benar, dan nilai -nilai lainnya terbalik menjadi false
NULL NULL FALSE 0 (termasuk +0 dan -0) nan string kosong ('')! Tidak terdefinisi // true! null // true! false // true! 0 // true! nan // true! "" // true! 54 // false! 'hello' // false! [] // false! [1,2.2,3] // false! {hello '// false! [] / false! [1,2,2,3] // false! {Hello' / false![] dan {} penilaian
Untuk [] dan {}, kami pasti akan membuat penilaian pada mereka dalam kode bisnis, seperti di atas
!! {}; // true !! {name: 'xz'} // true !! []; // Benar !! [1,2,3]; // BENAR Tidak dapat digunakan untuk penilaian! Dan!. Untuk array, kami menggunakan atribut length untuk menilai
[] .length // 0 false [1,2,3] .length // 3 true
Untuk objek, Anda dapat menggunakan metode jQuery $.isEmptyObject(obj) , atau Anda dapat merangkum metode dengan meniru jQuery untuk menulis a
function isEmptyObject (obj) {var name; untuk (nama dalam obj) {return false; } return true;} isEmptyObject ({}); // TrueIsEmptyObject ({name: 'xzavier'}); PALSU Rekomendasikan Perpustakaan Alat underscore , yang juga memiliki metode isEmpty(object)
const _ = membutuhkan ('underscore'); _. ISempty ({}); // BENAR&&hakim
Digunakan dalam ekspresi bersyarat, aturannya adalah:
num1 && num2true true true true true false false false false false false false
Digunakan dalam sebuah pernyataan, aturannya adalah:
hasil = ekspresi1 && ekspresi2
Jika ekspresi1 mengevaluasi ke false, hasilnya adalah ekspresi1. Kalau tidak, hasilnya adalah ekspresi2
(1 - 1) && (x + = 1) // 0 (2> 1) && (5 + 5) // 10 (2 + 1) && (5 + 5) // 10
|| penilaian
Digunakan dalam ekspresi bersyarat, aturannya adalah:
num1 || num2true true true true false true true true true false false false
Digunakan dalam sebuah pernyataan, aturannya adalah:
Jika nilai boolean dari operator pertama benar, nilai operator pertama dikembalikan dan operator kedua tidak lagi dievaluasi.
Jika nilai boolean dari operator pertama salah, nilai operator kedua dikembalikan
|| Operator umumnya melakukan penilaian ekspresi bersyarat dan pemrosesan toleransi kesalahan dalam kode bisnis. Jika kita tidak bisa mendapatkan data saat mengambilnya, itu tidak dapat mempengaruhi kode bisnis berikutnya, jadi kita harus menjadi toleransi kesalahan. || adalah metode penulisan toleran yang sangat baik, yang setara dengan menyediakan data cadangan.
var data = tidak terdefinisi || backup_data; // Ketika ada kesalahan dalam permintaan dan data tidak ditentukan, buka data cadangan backup_data
Penilaian tiga mata
aturan:
kondisi ? ekspresi1: ekspresi2; fungsi absn (xzavier) {return xzavier> 0? xzavier: -xzavier;} absn (-123); // 123ABSN (123); // 123Jika nilai boolean dari ekspresi pertama adalah benar, nilai ekspresi kedua dikembalikan, jika tidak nilai ekspresi ketiga dikembalikan.
Meringkaskan
Di atas adalah semua konten penilaian dalam kode JavaScript untuk semua orang. Saya harap konten artikel ini akan membantu semua orang menggunakan JavaScript.