ぱっと見では分からなかったバグ
問題のコード
Date.prototype.getYYYYMMDD = function() { var yyyy = this.getFullYear(); var mm = this.getMonth() + 1; var dd = this.getDate(); if (mm < 10) mm = "0" + mm; if (dd < 10) dd = "0" + dd; return yyyy + mm + dd; };
このコード見ただけでバグが分かった人は素晴らしい。
ヒント1
2012/03/22は正しく動作するけど、2012/10/22は正しく動作しない。
ヒント2
文字列と数値
答え
mmまたはddが10未満の場合、"0"を連結しているので、returnのところの+演算子が文字列連結になるけど、mmとddが共に10以上の場合、単なる数値の足し算になるので、正しく動作しない。
というオチでした。
ショボすぎる。。。