javascript以外のバックグラウンドから来て、私は「未定義」の周りを頭で囲んでいます。 次のように私は「isUndefined」機能を書いた:関数と定義されていないことを理解する
function isUndefined(value) {
return (typeof value === 'undefined');
}
を私は(ここで、変数「ブーイングが」が存在しない)私の元でこれを入力すると、私は期待された結果、「未定義の変数」を取得します。
if (typeof boo === 'undefined') {
console.log('undefined variable');
}
私は次のように入力した場合: console.log (isUndefined(undefined));
私が期待した結果 '真'
を取得し、私が入力した場合:console.log(isUndefined(boo));
を私が手:
Reference Error: boo is not defined.
私は「真実」を得ることを期待しています - だから私質問はなぜundefinedの最初の '直接'チェックが期待された結果を返すのでしょうか?
あなたはこれに困惑することが正しいです。 –
あなたはどのような背景から来ていますか? – galchen
http://javascriptweblog.wordpress.com/2010/08/16/understanding-undefined-and-preventing-referenceerrors/ – goat