質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

473閲覧

var foo="foo";はwindow.foo="foo";と同じなのでしょうか?

tanakashouzoux

総合スコア52

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2020/06/12 23:04

編集2020/06/14 07:13

タイトル通りなのですが、
var foo="foo";

window.foo="foo";
と同じことなのでしょうか?

詳しい方ご教示頂けないでしょうか?

--下記の部分は追記部分となります--

元のコードは下のコードになります

最後のsayFoo();でthis['foo']がコンソールに表示され、このthisはグローバルオブジェクトであるwindowを指すと思うのですが、window.fooが定義されていない様に感じ、今回の質問をさせて頂きましたm(__)m

javascript

1var foo = 'foo'; 2var myObject = { foo: 'I am myObject.foo' }; 3var sayFoo = function() { 4console.log(this['foo']); 5}; 6// myObject の sayFoo メソッドに sayFoo() 関数を与える 7myObject.sayFoo = sayFoo; 8myObject.sayFoo(); // myObject.sayFoo() 内での this は myObject なので 'I am myObject. 9foo' を出力 10sayFoo();

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2020/06/12 23:07

あまりに質問が漠然としすぎです 実際のコードを提示しましょう
hentaiman

2020/06/12 23:21

同じ事もあれば違うこともあるな
m.ts10806

2020/06/13 03:53 編集

この内容だと「厳密には違う」「状況による」程度の意見にしかならないと思います。 というか、自分で試しましょうよ。
tanakashouzoux

2020/06/14 07:10

皆さんすいません 一応自分でも試してみたのですがコンソールの使い方がおかしいのかjqueryでエラーが出てしまっているみたいでして・・・ 質問に元のコードを追記したいと思いますm(__)m すいませんでしたm(__)m
think49

2020/06/14 12:36 編集

追記されたコードは「ベストアンサー」に対応していない問題に見えます。 this値がグローバルオブジェクトでは有りません。
guest

回答1

0

ベストアンサー

Webブラウザ の 開発者ツール の コンソール で実行してみました。

js

1> var foo = "foo" 2undefined 3> window.foo 4"foo"

同じになりましたね。

ただし、関数内で実行すると結果は異なります。

js

1> function bar() { 2 var foo = "Hello"; 3 console.log("foo:", foo); 4 console.log("window.foo:", window.foo); 5} 6undefined 7> bar(); 8foo: Hello 9window.foo: foo

また、サーバサイド JavaScript である node.js で実行した場合も windowオブジェクト が存在しないため結果が異なります。

js

1> var foo = "foo" 2undefined 3> window.foo 4Uncaught ReferenceError: window is not defined

投稿2020/06/12 23:25

編集2020/06/12 23:36
shiracamus

総合スコア5406

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tanakashouzoux

2020/06/14 07:16

shiracumusさん 私の質問の仕方が悪かったと思うのですが、わざわざご丁寧にありがとうございますm(__)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問