Jawaban singkat:
Tidak , mereka tidak sama.
Tapi ini:
if (!fields) {
...
}
Apakah sama dengan ini:
if ((fields === null) || (fields === undefined) || (fields === 0) || (fields === '') || (fields === NaN) || (fields === flase)) {
...
}
Panjang (dan lebih baik) Jawaban:
Pertama mari kita bicara tentang nilai-nilai yang benar dan salah.
Ini semua tentang apa yang terjadi ketika Anda mengevaluasi sesuatu sebagai boolean. Dalam JavaScript, ini terjadi ketika Anda menggunakan hal-hal seperti ifpernyataan; operator logika seperti ||, !atau &&; atau Boolean()fungsinya.
The Boolean()fungsi menerima nilai dan kembali baik trueatau false.
Sebagai contoh:
var age = 1; // Let's evaluate age as a boolean
Boolean(age); // true
Silakan dan coba ini di node repl.
Boolean hanya bisa trueatau false, jadi nilai balik Boolean() harus berupa trueatau false. Dalam hal ini, kami memberikan nilai 1, dan ketika dievaluasi sebagai boolean, 1adalah true.
Penting: Ketika dievaluasi sebagai boolean, nilai harus benar atau salah. Hanya itulah dua opsi.
Dalam JavaScript, hanya ada 6 nilai falsy. Nilai itu akan falseketika dievaluasi sebagai boolean. Mereka adalah: false, 0, "", null, undefined, dan NaN. Jadi jika salah satu dari nilai-nilai ini dievaluasi sebagai boolean, mereka akan salah:
Boolean(false) // false
Boolean(0) // false
Boolean("") // false
Boolean(null) // false
Boolean(undefined) // false
Boolean(NaN) // false
Ini berarti bahwa nilai lainnya, dalam JavaScript, akan trueketika dievaluasi sebagai boolean. Jadi setiap nilai lain dalam JavaScript adalah benar.
Cara mudah lain untuk mengevaluasi sesuatu booleanadalah dengan menggunakan !operator. Sama seperti Booleanfungsi, ini mengevaluasi nilai sebagai boolean. Tetapi nilai-nilai kebenaran menjadi falsedan nilai-nilai palsu menjadi true.
!false // true
!0 // true
!"" / true
!null // true
!undefined // true
!NaN // true
Sekali lagi, coba ini dalam simpul pengganti atau sesuatu untuk memastikan Anda mengerti.
Jadi pernyataan ini:
if (!fields) {
...
}
Mengatakan sebagai berikut: "jika fields, ketika dievaluasi sebagai boolean, salah, maka jalankan kode di dalam pernyataan if ini."
Adapun pernyataan pertama Anda:
var fields = options.fields || ['id', 'query'];
Anda bekerja dengan operator OR logis, yang layak dibaca untuk memastikan bahwa Anda mengerti. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators