- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:JavaScriptのステートメントの考え方)
JavaScriptのステートメントの考え方
このQ&Aのポイント
- JavaScriptのステートメントの考え方について質問です。
- JavaScriptでは行の終わりがステートメントの終わりと解釈されるため、コードの一部が正常に実行されないことがあります。
- 具体的には、即時関数の直前のステートメントが認識されずにエラーが発生することがあります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
「1 is not a function」のエラーが発生する原因は、() が後続する場合に関数の引数リストとして解釈されるためです。 つまり、"1()" という関数呼び出しであると扱われています。 http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/7_Lexical_Conventions.html#section-7.9.2 http://jsfiddle.net/5j2Us/
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
回答No.1
>JavaScriptでは行の終わりがステートメントの終わりと解釈されるはずなので、 解釈に間違いがあります 「行の終わりと推定される場合は、ステートメントの終わりと拡大解釈される」 というだけで、基本的に終端子がなければ行は続いていると考えるのが プログラムの特性です。 <script> j = a () alert(j); function a(){ return 100; } </script> 行をまたいでカッコがあるなら関数の実行と考えるのが筋でしょう
お礼
なるほど! そういうことなのですね。 即時関数の最後に();を付けることと理屈としては同じなのですね。 有難うございました。