はじめに
この記事は、@kjunichiの2014年パーソナルアドベントカレンダーの23日目の記事です。
日付処理でやらかしたとんでもないバグ
やりたかった処理
指定した年、月から現在年、月までを処理する。
やらかしたコード
var cyy = 現在の年; var cmm = 現在の月; var tmpY = ループで処理する年(初期値は指定した年); var tmpM = ループで処理する付(初期値は指定した月); while(tmpY < cyy || tmpM <= cmm) { console.log(tmpY+","+tmpM); // ログ出力 // 処理 // tmpY,tmpMの更新処理 }
どんな動きをしたか
12月に実行するとtmpM<=cmmが常に真12==12
正解は
while(tmpY <= cyy && tmpM <= cmm) { // 処理 }
このバグ対応で分かったこと
Firefoxでは無限ループの中に記述したconsole.logが出力されない。Chromeは頑張って出来る限り出力する。