日々のコンピュータ情報の集積と整理

Dr.ウーパのコンピュータ備忘録

2014年5月1日木曜日

JavaScript:カンマ演算子を使った複数の変数の宣言が全く別のものに見えて理解するのに時間がかかってしまった

JavaScript で一行で二つの変数を宣言し、値を代入する場合、以下の構文を使用します。



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 | MDN
https://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




関連記事

関連記事を読み込み中...

同じラベルの記事を読み込み中...