【訳】javascriptのundefinedは書き換えられます.
2313 ワード
周知のように、変数が宣言され、与えられていない場合、その初期値は
簡単な答え
現代ブラウザでは、変数を安全に比較することができます.
15.1.1.3 undefined The value of undefined is undefined(see 8.1).This property has the atributes{[[Writable]]:false、[[Enumerable]]:false、[[Configrable]]]:false.
現代ブラウザでは、
私たちはie 8またはもっと古いブラウザをサポートしたいですが、どうすればいいですか?
通常
I don't hear people telling me that I shuldn't use set Timeout because someone canは他の人に教えてもらえません.私は
もう一つの選択は、
ただし、void(0)コマンドは使用しないでください.
コードの中で
Javascriptではどうやってundefiendをチェックしますか?
undefined
である.しかし、javascriptでは、どのように1つの値がundefined
かどうかをチェックしますか?簡単な答え
現代ブラウザでは、変数を安全に比較することができます.
undefined
ですか?if (name === undefined) {...}
いくつかの人が直接undefined
変数を使って比較することに反対しています.古いブラウザでその値が再割り当てされることができます.undefined = "test"
値が再割り当てされた後、undefined
コマンドを使用すると、一つの変数が割り当てられているかどうかを正確に検出できなくなります.しかし、この行動は2009年のECMAScript 5で修復されました.15.1.1.3 undefined The value of undefined is undefined(see 8.1).This property has the atributes{[[Writable]]:false、[[Enumerable]]:false、[[Configrable]]]:false.
現代ブラウザでは、
undefined
の値は書き換えられません.私たちはie 8またはもっと古いブラウザをサポートしたいですが、どうすればいいですか?
通常
undefined
コマンドは安全です.アプリケーションでは、undefined
の値を変更する必要がある理由は何もない.トーマスの答えは説得力のある推理を使って、この点を論証しました.I don't hear people telling me that I shuldn't use set Timeout because someone canは他の人に教えてもらえません.私は
setTimeout
を使うべきではありません.window.setTimeout = function () {
alert("Got you now!");
};
次の行は、「再割り当て可能」であり、raw==undefinedがfalseに戻る場合、気になる2つの方法があり、undefined
であるかどうかを確認することができます.たとえ大域window.undefined
が書き換えられていても、if (name === void(0)) {...}
この例では0は実際的な意味がないので、1
or function(){}
を使っても大丈夫です.void(anything)
はいずれも計算されます.undefiend
です.もう一つの選択は、
typeof
オペレータを使って、割り当てられたかどうかを安全に確認することができます.値の種類が「undefined」であるかどうかを確認してください.全体のundefined
と比較します.if (typeof name === "undefined") {...}
第二の選択は前のスキームとは少し違っています.name
は声明されていませんが、typeof
はundefined
に戻ってきます.もしあなたが直接nameを使ったら、undefined
or void(0)
に異常なエラーがあります.ただし、void(0)コマンドは使用しないでください.
コードの中で
ReferenceError
またはvoid(0)
を使用しないでください.typeof x === "undefined"
方法を使って彼らを包むことができます.そうすると、あなたが使う時はわざわざ説明しなくてもいいです.function isUndefined(value){
// undefined,
var undefined = void(0);
return value === undefined;
}
いくつかのツールライブラリは、この方法を展開しています.例えば、isUndefined function
、undescoreにおけるisUdefined方法.Javascriptではどうやってundefiendをチェックしますか?