- ベストアンサー
「var」についてのエラー原因とは?
- ソースコードの2行目の頭に「var」をつけるかつけないかでコンソールエラーになるか、ならないかが変わる
- 「var」をつけるとエラーになる理由が不明
- 「var」は変数の宣言に使用されるキーワードであり、正しく使わないとエラーが発生する
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>「var」をつけると何故かエラーになるのですが、その理由が分かる方いらっしゃいますか? var msg = "your name " + name; は「変数を宣言する文」になりますが、変数の宣言をする時、初期値に「式」は書けません。 初期値は「値」しか書く事ができません。 なので、varを付けると「そんな初期化はできん」とエラーになります。 一方、 function hello(name){ msg = "your name " + name; return msg; } var greet = hello("Tom"); console.log(msg); と書いた場合「msgの定義が省略されている」と解釈され var msg; function hello(name){ msg = "your name " + name; return msg; } var greet = hello("Tom"); console.log(msg); と同じ意味になり msg = "your name " + name; は「代入文」として扱われます。しかも、変数msgは「グローバル変数」になります。 代入文ですから、エラーにはなりません。
その他の回答 (2)
- muuming2001
- ベストアンサー率23% (202/847)
スコープ関連では?と思います。 http://qiita.com/redamoon/items/4646a909ab234a64735c function内のみで有効な変数なのか、外でも有効なのか。 ”use strict”宣言して厳格モードで作ればよりエラーの原因が分かるかと思います。 といっても厳格すぎて今のままで動かないとは思いますが、ちゃんと動くようにすればより良いと思いますス。
- t_hirai
- ベストアンサー率28% (222/788)
エラーが出ている場所は、「console.log(msg);」ってことでいいですか?