時々、次のような状況に遭遇します。一部のフロントエンド コントロールがデータをサーバーに送信するときのデータ検証プロセス中に、送信されたデータが空かどうかを判断する必要があります。通常の形式の文字列データの場合、ここで必要なデータは JSON.stringify(data ) によってさまざまなタイプ (数値、文字列、配列、オブジェクトなど) にすることができます。シリーズ化され、その後合格しました。
次のデータ値は、ここでは「null 値」として定義されます:
•未定義
•null
•空の文字列と純粋な空の文字列: ''、' ' など。
•空の配列: []
•空のオブジェクト: {}
これ以外のデータ値は空ではないとみなされます。
このうち、null と unknown は識別しやすいですが、その他の型については、対応するメソッドを使用してデータが空かどうかを検出する前に、データ型を取得する必要があります。最も簡単に考える方法は、typeof 演算子を使用することです:
幸いなことに、Object.prototype.toString という最も単純で信頼性の高いメソッドがもう 1 つあります。このメソッドは、さまざまな種類のデータに対して、「[object Object]」、「[object Array]」、「[object String]」などの文字列を返すことができるため、判断に非常に便利です。 IE8 以前のブラウザでは、このメソッドは null、未定義、ウィンドウなどに対して '[object Object]' を返しますが、幸いなことに、これは空のオブジェクトを決定するための使用には影響しません。
コードはそのすぐ下にあり、説明はコメントにあります。
if(value == null) { // value === unknown || value === null
return true;
}
type = Object。 prototype.toString.call(value).slice(8, -1);
switch(type) {
case 'String':
return !$.trim(value);
case ' array ':
return!value.length;