0

JavaScriptでは、オブジェクトまたは関数のタイプが未定義の場合にメッセージを表示したり、falseを返す方法はありますか?オブジェクトまたは関数が存在しない場合、画面にエラーメッセージを表示する方法はなく、Webコンソールにエラーが表示されているように見えます。

4

4 に答える 4

3

これは役立つはずです:

if (typeof foo === "undefined") {
    // foo is undefined
}

または(オットーの回答を参照)、次を使用することもできます。

if (foo === void(0)) {
    // foo is undefined
}

( Alnitak が指摘しているように) 一部のブラウザーでは、グローバル プロパティが既定値以外の値を持つ可能性があるため、使用しないでください(JavaScript 1.8.5 の時点で — Firefox 4 — 読み取り専用プロパティです)。if (foo === undefined)undefined

于 2012-10-29T13:59:17.797 に答える
1

(overkill サードパーティ ライブラリを含む必須の回答)

Underscore.js _.isUndefined()

興味深いことに、ここで提供されている他の回答とは少し異なる方法を使用しています。

_.isUndefined = function(obj) {
    return obj === void 0;
  };
)
于 2012-10-29T14:04:10.550 に答える
1

演算子は、変数のtypeofタイプ、または"undefined"変数が定義されていない場合は文字列を提供します。

if (typeof myvar === 'undefined') {
    // it's not defined
}

または、ブール値が必要な場合:

var itsDefined = (typeof myvar !== 'undefined');

これは、テストよりも名目上安全です。

if (var === undefined)

一部のブラウザundefinedでは上書きされる可能性があるためです。

于 2012-10-29T13:59:26.623 に答える
0

変数のメソッドまたは孫のプロパティにアクセスする前に、typeofチェック ( typeof x==="undefined") または try キャッチのいずれかを使用して定義されているかどうかを確認する必要があります。

try{
    x.method();
}catch(e){
    /*You could check the error message to see if the exception was thrown because x is undefined.*/
}
于 2012-10-29T14:01:52.703 に答える