function getCoordinates() { return { x: 10, y: 10 }; }
0
2
_ 可能性のある重複: + Javascriptの自動セミコロン挿入のルールは何ですか? _
Goもそれらを挿入すると聞きましたが、別のhttp://groups.google.com/group/golang-nuts/msg/7facb7856f017791[approach]
解釈中にJavascriptはどのようにセミコロンを挿入しますか?
任意の参照が役立ちます
3 Answer
12
私が見つけた最大のものの1つは、これに似た座標(または実際には任意のオブジェクト)を返す関数があるとします。
function getCoordinates() { return { x: 10, y: 10 }; }
あなたは正しいオブジェクトを取り戻すことを期待していますか? 違う! 未定義に戻ります。 インタープリターはコードをこれに変換します
function getCoordinates() { return; { x: 10, y: 10 }; }
「return」自体は有効なステートメントであるため。 次のようにリターンを書く必要があります
function getCoordinates() { return { x: 10, y: 10 }; }
4
Javascriptは、可能な限り改行があるとステートメントの終わりを想定します。 例えばこれ:
return true;
次のように解釈されます。
return; true;
戻り値とその引数を2つの別々のステートメントに変換します。これはもちろん、関数に戻り値がないことを意味します(未定義を返します)。
しばらく前に、http://blog.guffa.com/2010/02/javascript-almost-not-line-based/ [ブログエントリ]を書きました。
2
この特定の機能の落とし穴を教えてくれた例は、「Strangest言語機能」のhttps://stackoverflow.com/questions/1995113/strangest-language-feature/2003277#2003277[this one]でした。質問。 (これが、私がその質問を再開する理由でした-ところで、それは貴重な学習リソースです。)
良い参考資料はこちらにあります:https://stackoverflow.com/questions/2846283/what-are-the-rules-for-javascripts-automatic-semicolon-insertion[Javascriptの自動セミコロン挿入のルールは何ですか?]