HOME > Learning Place >  No.6 null/undefined、Date/Errオブジェクト

No.6 null/undefined、Date/Errオブジェクト

前回は、「No.5 配列」を学びました。

今回は、その他のオブジェクトや少し特殊な型について触れていきます。

Dateオブジェクト

Dateオブジェクト」または「Date型」は日付を扱うものになります。

正確には基本的なデータ型には含まれませんが、JavaScriptが提供しているこのオブジェクト(型)を利用することによりデータ型として扱うことが出来ます。

1
2
3
4
5
6
var today = new Date(); // 今日の日付
// 月は1~12ではなく、0~11のため注意が必要です
var christmas = new Date(2013, 11, 25); // クリスマスの日付
 
console.log(today); // Tue Aug 27 2013 21:35:01 GMT+0900 (JST)
console.log(christmas); // Wed Dec 25 2013 00:00:00 GMT+0900 (JST)

img_slp_no6_01

その他にもDate型に用意されているメソッドを利用することにより、様々な値を取得することが出来ます。

1
2
3
4
5
6
7
8
9
var christmas = new Date(2013, 11, 25); // クリスマスの日付
// setFullYearメソッドで既に生成されているDateオブジェクトの年を変更したり
// getFullYearメソッドでDateオブジェクトの年を取得したり出来ます
christmas.setFullYear(christmas.getFullYear()-1);
 
// Dateオブジェクトに設定されている日付の曜日を取得します
// 取得出来る値は 0 ~ 6 の値です
// ['日', '月', '火', '水', '木', '金', '土']
christmas.getDay();

img_slp_no6_02

これらのメソッドを応用すると、現在日時から「明日」「明後日」「昨日」などの取得も出来るため非常に便利です。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 今日の情報取得
var nDate = new Date(),
    now = {
    y: nDate.getFullYear(),
    m: nDate.getMonth(),
    d: nDate.getDate()
};
 
// 明日の情報生成
var tDate = new Date(now.y, now.m, now.d - 1),
    tomorrow = {
    y: tDate.getFullYear(),
    m: tDate.getMonth(),
    d: tDate.getDate()
};

null値

JavaScriptのキーワードの null は、「値が無い」ことを表す特殊な値で、他の数値や文字列などとは全く異なるユニークな値になっています。

ある変数の値が null の場合は、その変数に値が何も入っていない(要するに空)ことを指します。

1
var a = null; // 意図的に変数の中身を空にしている

JavaScriptでnullは、よく何かしらの処理をして途中で失敗または空のデータを返すなどの時にnullが用いられたりします。

img_slp_no6_03

undefined値

そして、一見 null と同じように見えなくもない undefined という型もあります。

先ほどの null は、値が空ということを明示的に示すものというような内容でしたが、undefined は、値が未定義ということを明示的に示すものになります。

どのようなときに現れるかというと

1
2
3
4
5
6
var a;
var b = {name: 'Sample'};
 
console.log(a); // undefined
console.log(b.name); // Sample
console.log(b.sex); // undefined

といった具合に、変数宣言のみを行い値の定義が未定義の場合オブジェクトの未定義プロパティを参照した場合などに、この undefined が返却されます。

img_slp_no6_04

Errorオブジェクト

JavaScriptでは何かしらのエラーが発生した際に、そのエラーを表すオブジェクトをいくつか定義しています。これらは、JavaScript内部でエラーが発生した際に、そのエラーオブジェクトを「スロー(throw)」します。

エラーオブジェクトはmessageプロパティを持っているため、ブラウザはエラーが発生した際にthrowされたエラーオブジェクトを取得し、エラーメッセージを表示させるなどの振る舞いを行います。

1
2
3
4
5
6
7
var a,
    b = null;
 
// nullやundefinedなどの空の値に対して
// プロパティ参照などを行うとJavaScriptエラーが起きます
console.log(a.name); // Error
console.log(b.sex); // Error
1
2
3
4
5
6
7
8
9
10
// 自身でエラーオブジェクトをthrowすることも可能です
function setup(v) {
    var me = this;
 
    if (v) {
        // code...
    } else {
        throw new Error('エラーです');
    }
}

img_slp_no6_05

Learning Placeトップに戻る

PAGETOP