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 if
pernyataan; operator logika seperti ||
, !
atau &&
; atau Boolean()
fungsinya.
The Boolean()
fungsi menerima nilai dan kembali baik true
atau 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 true
atau false
, jadi nilai balik Boolean()
harus berupa true
atau false
. Dalam hal ini, kami memberikan nilai 1
, dan ketika dievaluasi sebagai boolean, 1
adalah 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 false
ketika 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 true
ketika dievaluasi sebagai boolean. Jadi setiap nilai lain dalam JavaScript adalah benar.
Cara mudah lain untuk mengevaluasi sesuatu boolean
adalah dengan menggunakan !
operator. Sama seperti Boolean
fungsi, ini mengevaluasi nilai sebagai boolean. Tetapi nilai-nilai kebenaran menjadi false
dan 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