Pertanyaan JavaScript periksa apakah nilai hanya tidak terdefinisi, null atau salah


Selain membuat fungsi, apakah ada cara yang lebih pendek untuk memeriksa apakah nilai itu undefined,null atau false hanya di JavaScript?

Pernyataan di bawah jika setara dengan if(val===null && val===undefined val===false) Kode berfungsi dengan baik, saya mencari yang lebih pendek setara.

if(val==null || val===false){
  ;
}

Atas val==null mengevaluasi ke true kapan val=undefined atau val=null.

Saya berpikir mungkin menggunakan operator bitwise, atau tipuan lainnya.


32
2017-07-26 21:31


asal


Jawaban:


Nah, Anda selalu dapat "menyerah" :)

function b(val){
    return (val==null || val===false);
}

29
2017-07-26 22:04



Cara terbaik untuk melakukannya menurut saya adalah:

if(val != true){
//do something
} 

Ini akan menjadi benar jika val salah, NaN, atau tidak terdefinisi.


10
2017-10-16 23:15



Salah satu cara untuk melakukannya adalah seperti itu:

var acceptable = {"undefined": 1, "boolean": 1, "object": 1};

if(!val && acceptable[typeof val]){
  // ...
}

Saya pikir itu meminimalkan jumlah operasi yang diberikan pembatasan Anda membuat cek cepat.


2
2018-01-14 07:43



Saya pikir apa yang Anda cari adalah !!val==false yang bisa diubah menjadi !val (bahkan lebih pendek):

Kamu melihat:

function checkValue(value) {
    console.log(!!value);
}

checkValue(); // false
checkValue(null); // false
checkValue(undefined); // false
checkValue(false); // false
checkValue(""); // false

checkValue(true); // true
checkValue({}); // true
checkValue("any string"); // true

Yang berfungsi dengan membalik nilai dengan menggunakan ! operator.

Jika kamu membalik null sekali misalnya seperti ini:

console.log(!null) // that would output --> true

Jika Anda membalikkannya dua kali seperti ini:

console.log(!!null) // that would output --> false

Sama dengan undefined atau false.

Kode Anda:

if(val==null || val===false){
  ;
}

kemudian akan menjadi:

if(!val) {
  ;
}

Itu akan bekerja untuk semua kasus bahkan ketika ada string tetapi panjangnya adalah nol. Sekarang jika Anda ingin juga bekerja untuk angka 0 (yang akan menjadi false jika itu double membalik) maka Anda jika akan menjadi:

if(!val && val !== 0) {
  // code runs only when val == null, undefined, false, or empty string ""
}

2
2017-12-29 17:22



hanya pintasan untuk hal seperti ini yang saya ketahui

var val;
(val==null || val===false) ? false: true;

1
2017-07-26 21:44



Solusi lain:

Berdasarkan dokumen, objek Boolean akan mengembalikan nilai true jika tidak 0, tidak terdefinisi, null, dll. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean

Jika nilai dihilangkan atau 0, -0, null, false, NaN, undefined, atau string kosong (""), objek memiliki nilai awal false.

Begitu

if (Boolean (val))
{
// dapat dieksekusi ...
}

1
2017-12-17 21:44



Boolean (val) === salah. Ini berhasil bagi saya untuk memeriksa apakah nilai itu salah.


0
2018-03-12 18:00



Menggunakan? jauh lebih bersih.

var ? function_if_exists() : function_if_doesnt_exist();

0
2018-06-30 09:33