理屈ではなく、フィーリングでアニメを見る人。それがおにくやさん。
レトロゲーム大好きなので、そっちの話題もたまにあり。
× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
やあ。
おにくやさんですよ。 今日はね。javascriptの話。 別に大した話じゃないんだけどさ。 今日は仕事にちょいとばかし空き時間があってね。 でまあ、ふと「そういやうちの会社のスケジューラは使いづらいんだよなあ」とか思って。 んじゃまあ自分で作るべか。 なんて思ったのだ。 で。 どういう構成で作るかあれこれ考えたんだけど。 と言っても5分くらいしか考えてないけど。 あまり環境に依存しない方がいいと思って。 javascriptになったわけだ。 ここまでは前置き。 作ってる最中にさ、ひとつよくわからないバグを出してね。 っていうのもカレンダーと一か月分のスケジュールを表示して。 「次の月へ」と「前の月へ」ってボタンを作ったんだわ。 ここまでは良かったんだけど。 なんか7月のスケジュール出しつつ「次の月へ」って押したら来年の1月になっちゃうわけ。 うーんなんじゃこりゃ。と思ってしばしソースを眺める。 3分で眺めるの飽きて、デバッグモードで動かしたんだけど。 データベース内でソートしやすいとか表示面を考えて、データを作った結果、 「8月」じゃなくて「08月」っていう形で一桁の月/日は頭に0を付けてたんですわ。 その結果、内部処理上で「+1」とかする時に、型変換の必要性が発生して。 ここでようやく表題のparseInt()が出てくるわけなんですが。 普通に考えてさ。 parseInt("07"); これの戻り値が7になるんですよ。INT型で。 そしたら普通さ parseInt("08"); これの戻り値はさ、8になるって思うじゃん。 何か0が返ってくるわけ。 なんやねーんこれー そう思ってちょっと調べたら。 parseIntメソッドで第2引数(radix)を省略した場合で、かつ先頭の文字が0の場合は8進数、0xの場合は16進数の整数型にキャストされます。 みたいなの見っけてさ。 びみょー・・・な表情で硬直。 どうやら「08」を整数型にキャストする場合は parseInt("08",10); と書かないといけないようです。 ぬーん・・・・javascriptカッコイイなあ。 蛇足ですが。 Javaの場合はこんなことしなくても10進数で解釈してくれます。 ま、Javaとjavascriptは名前が似てるだけで中身は全く別物だということを再認識させられた一件でした^^; おはり。 PR |
カレンダー
プロフィール
リンク
最新記事
(01/01)
(08/29)
(05/31)
(04/29)
(12/19)
(12/17)
(12/16)
(12/13)
(12/12)
(12/12)
カテゴリー
最新トラックバック
アーカイブ
|