回答編集履歴
2
表示結果修正、不要行削除
    
        answer	
    CHANGED
    
    | @@ -20,8 +20,7 @@ | |
| 20 20 | 
             
            undefined
         | 
| 21 21 | 
             
            > bar();
         | 
| 22 22 | 
             
            foo: Hello
         | 
| 23 | 
            -
            debugger eval code:3:11
         | 
| 24 | 
            -
            window.foo:  | 
| 23 | 
            +
            window.foo: foo
         | 
| 25 24 | 
             
            ```
         | 
| 26 25 |  | 
| 27 26 | 
             
            また、サーバサイド JavaScript である node.js で実行した場合も windowオブジェクト が存在しないため結果が異なります。
         | 
1
関数内での実行例を追記
    
        answer	
    CHANGED
    
    | @@ -9,9 +9,23 @@ | |
| 9 9 |  | 
| 10 10 | 
             
            同じになりましたね。
         | 
| 11 11 |  | 
| 12 | 
            -
            ただし、 | 
| 12 | 
            +
            ただし、関数内で実行すると結果は異なります。
         | 
| 13 13 |  | 
| 14 | 
            +
            ```js
         | 
| 15 | 
            +
            > function bar() {
         | 
| 16 | 
            +
              var foo = "Hello";
         | 
| 17 | 
            +
              console.log("foo:", foo);
         | 
| 18 | 
            +
              console.log("window.foo:", window.foo);
         | 
| 19 | 
            +
            }
         | 
| 20 | 
            +
            undefined
         | 
| 21 | 
            +
            > bar();
         | 
| 22 | 
            +
            foo: Hello
         | 
| 23 | 
            +
            debugger eval code:3:11
         | 
| 24 | 
            +
            window.foo: undefined
         | 
| 25 | 
            +
            ```
         | 
| 14 26 |  | 
| 27 | 
            +
            また、サーバサイド JavaScript である node.js で実行した場合も windowオブジェクト が存在しないため結果が異なります。
         | 
| 28 | 
            +
             | 
| 15 29 | 
             
            ```js
         | 
| 16 30 | 
             
            > var foo = "foo"
         | 
| 17 31 | 
             
            undefined
         | 
