哀愁の Duke
do svidanya Sun Microsystems
thank you support site wimax-kaba.com WiMAX キャンペーン
JavaScript という言語
JavaScriptはやっかいな言語の1つだ。
JavaScriptの開発効率を悪くする巨悪の根源3つ
・ 変数定義は必要なし
・ マルチキャスト
・ スクリプト言語
つまり、変数定義の必要がないから、どこかで同じ変数名を使っていてもわからない、マルチキャストだから、文字列だと思ったら数字だったり、スクリプト言語だから、動かしてみるまで、動くかわからない。
といういいかげんっぷり。史上最恐言語の1つです。
JavaScriptで現在時刻を HHMISS の形式で取得するサンプル。
サンプルの中では、getHours() dt.getMinutes() dt.getSeconds() をキャストしているが、マルチキャストのため、数値として足し算してくれちゃうんだよね。
エンジニアが、キャストしないとコンパイラが通らない言語で、キャストを意識できるようになっていればいいが、それでもバグの温床になる。
その辺が、JavaScriptがクソだという理由。
/** * 現在時刻を String の HHMISS の形式で取得する。 * @param なし * @return String の HHMISS の形式の現在時刻 */ function getNowHhmiss() { var dt= new Date(); hours = String(dt.getHours()); minutes = String(dt.getMinutes()); seconds = String(dt.getSeconds()); /* getHours() dt.getMinutes() dt.getSeconds() の戻り値は数値 HHMISSの形式に連結した場合は、Stringにキャストする必要がある。 キャストを意識できないコーダーだとこの辺がクソでバグが内封される! 例)下記のコードは、戻り値が数字のため、hours + minutes + seconds は数字として足し算される。 hours = dt.getHours(); minutes = dt.getMinutes(); seconds = dt.getSeconds(); alert(hours + minutes + seconds); */ if (hours < 10) {hours = "0" + hours;} if (minutes < 10) {minutes = "0" + minutes;} if (seconds < 10) {seconds = "0" + seconds;} //alert("現在時刻 hhmiss = " + hours + minutes + seconds); return hours + minutes + seconds; }