2011.05.07
Javascript (Javaではない)
- Written by
- しゃちょ
最近、お仕事で、古いASPの移植をしているのだが、Javascriptごりごり書くのは、意外と楽しい。
っていうか、Javascriptはもっと認められてもいい言語ではなかろうか。単に使い方をみんなが間違っていて、HTMLのおまけみたいな感じでやってるからいけない。本気でJavascript書けば、かなり面白い事がいろいろ出来る。
まぁ、開発環境があんまりないので、デバッグしづらいとかいろいろあるけどさ。でも、考え方よよっちゃ、テストスイートは結構あるんだし、オブジェクト指向で開発するんなら、テスト駆動開発するには、結構いい言語なんじゃないかなぁ。
新人に教える言語としてはアレかも知れないけど、アルゴリズムとか、オブジェクト指向的な概念とかを教えるには、メモ帳とコマンドプロンプトだけで出来るし、悪くないと思うんだけどなぁ。
続きを読むには、Javascriptを載せておく。これくらいのJavascriptを読んで内容が理解出来るくらいになると、Javascriptは結構楽しい。ちなみに、うちの部署のメンバーはたぶん読めない。
コマンドプロンプトから、CScriptで実行するサンプルです。
var DateSample = function(dateValue) {
var _dateValue = dateValue;
this.getDateValue = function() {
return _dateValue;
};
}
DateSample.prototype = {
getEras: function () {
var result = new Array();
//月は、0月~11月までなので注意
result.push({
EraNo: 0,
EraName: "明治",
AbbreviatedEraName: "M",
StartDate: new Date(1868, 9 -1, 8, 0, 0, 0, 0),
EndDate: new Date(1912, 7 -1, 30, 0, 0, 0, 0)
});
result.push({
EraNo: 1,
EraName: "大正",
AbbreviatedEraName: "T",
StartDate: new Date(1912, 7 -1, 30, 0, 0, 0, 0),
EndDate: new Date(1926, 12 -1, 25, 0, 0, 0, 0)
});
result.push({
EraNo: 2,
EraName: "昭和",
AbbreviatedEraName: "S",
StartDate: new Date(1926, 12 -1, 25, 0, 0, 0, 0),
EndDate: new Date(1989, 1 -1, 7, 0, 0, 0, 0)
});
result.push({
EraNo: 3,
EraName: "平成",
AbbreviatedEraName: "H",
StartDate: new Date(1989, 1 -1, 8, 0, 0, 0, 0),
EndDate: new Date(9999, 12 -1, 31, 0, 0, 0, 0)
});
return result;
},
getEraData: function () {
var eras = this.getEras();
for (var i = eras.length; 0 < i; i--) {
if (this.getDateValue() >= eras[i - 1].StartDate) {
return eras[i - 1];
}
}
return null;
},
getEraNameAndYear: function () {
var era = this.getEraData();
if (era == null) {
return "";
}
else {
var numYear = this.getDateValue().getFullYear();
var warekiNen = new String(numYear - era.StartDate.getFullYear() + 1);
return String(era.EraName + warekiNen);
}
}
}
var d = new DateSample(new Date(2011, 5 - 1, 5));
WScript.Echo(d.getEraNameAndYear());
コメントする