var v1 = 1, v2 = 2;
この構文が使われている、とあるソースコード(SyntaxHighlighter)の動作を見ていた時に、思考の罠に陥ってしまった体験を書きます。
「SyntaxHighlighterのsrc\shCore.js」より一部引用します。
一部引用開始
一部引用終了var brushes = sh.vars.discoveredBrushes, result = null ;
動作は単純に
- 変数 brushes と 変数 result を宣言
- brushes には sh.vars.discoveredBrushes を代入
- result には null を代入
しているだけです。
しかしながら、","の位置で改行されているという点と、sh.vars.discoveredBrushes という(制作者以外には)良くわからないもの、そして、result=nullという文からして、二項演算子やラムダ式のような非常に簡潔な構造を持つ、自分自身がまだ知らないような構文に見えてしまいました。
結局、1時間くらいその文の持つ意味がなんなのか悩んでしまいました。
単純に、変数の宣言と代入を行っているだけなんですけどね。
参考文献
カンマ演算子 - JavaScript | MDNhttps://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Comma_Operator
[javascript]カンマ演算子は右側の値を返す : minoawのブログ
http://blog.livedoor.jp/minoaw/archives/1642468.html
その他の演算子
http://wot.pro.tok2.com/web/javascript/other_operators.html
演算子 - JavaScript | MDN
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators
JavaScript/演算子 - Wikibooks
http://ja.wikibooks.org/wiki/JavaScript/%E6%BC%94%E7%AE%97%E5%AD%90
変数の宣言(var文) - 変数 - JavaScript入門
http://www.ajaxtower.jp/js/var/index2.html
コメントを投稿
コメント投稿機能について