1

以下のコードは、本「JavaScript Enlightement」から引用しました。コードは、最初の 2 つのステートメントが true を返すことを示していますが、JSFiddle でコードを実行すると、最初の行は "false" (var キーワードで定義された変数) を返します。コードは次のとおりです。

<!DOCTYPE html><html lang="en"><body><script>
var myStringVar = 'myString';
var myFunctionVar = function() {};
myString = 'myString';
myFunction = function() {};
console.log('myStringVar' in window); // returns true
console.log('myFunctionVar' in window); // return true
console.log('myString' in window); // returns true
console.log('myFunction' in window); // return true
</script></body></html>

誰かがここで何が起こっているのか説明できますか?

4

1 に答える 1

0

jsFiddle では、コードが埋め込まれ、直接実行されるのではなくwindow、ページが読み込まれたときに呼び出されるコールバックで実行されます。

これらのケースをテストする場合は、標準ページでコードを実行するか"no wrap"、左側のパネルの 2 番目のメニューにあるオプションのいずれかを選択する必要があります。

于 2013-03-02T10:55:49.710 に答える