JavaScriptにおけるネイティブオブジェクト(後編)

[JavaScriptにおけるネイティブオブジェクト(前編)]
(http://qiita.com/Knbass/items/bc8d8ec58288685d22b5)の続き。
今回はArray(),String(),Number(),Boolean()について学んでいきたい。


##Array()オブジェクト

###定義方法

```js
//リテラル宣言
var sampleArray = [1,2,3]; 

//コンストラクタ宣言
var sampleArray = new Array(1, 2, 3); //要素に1, 2, 3を設定

var sampleArray = new Array(100); //長さ100の配列を生成

```

###Object()のインスタンスプロパティとインスタンスメソッド

・インスタンスプロパティ

constructor

length - 配列の要素の数を返す。


・インスタンスメソッド

toString() - 引数を与えないjoin()と同じ

toLocalString() - toString()と同じ結果を返すが、ホスト環境のロケールによってはセパレータの文字が異なる場合がある。

concat([item1 [, item2 [, ・・・]]]) - 元の配列の要素を持った新しい配列を生成し、引数として渡した要素をその順番に末尾の要素として付加して、その配列を返す。引数が配列の場合は、配列を要素に分解し、新しい配列の末尾に結合する。

join(separator) - カンマ(もしくはseparatorに指定した文字列)をセパレータとして使用し、配列の要素を１つの文字列として結合して返す。

pop() - 配列の最後の要素を削除し、その要素を返す。

push(item1, [, item2 [, ・・・]]]) - 引数として渡した要素をその順番に配列の最後に挿入する。挿入後の配列のlengthの値を返す。

reverse() - 配列の順番を逆さにして返す。元の配列にも変更が適用される。

shift() - 配列の最初の要素を削除し、その要素を返す。

slise(start, end) - 指定されたインデックス範囲の要素を新たな配列として返す。

sort(comparefn) - アルファベット順、もしくは与えられた関数に従って配列の要素の順番を入れ替える。

splice(start, deleteCount, [, item1 [, item2 [,・・・]]]) - startで指定した位置からdeleteCountで指定した数の要素を削除する。第３引数以降を指定した場合は、それらの引数を配列の要素としてstartで指定した位置に追加する。削除した要素を配列として返す。

unshift([item1 [, item2 [, ・・・]]]) - 引数として渡した要素をその順番に配列の最初に挿入する。挿入後の配列のlengthの値を返す。


###要素を追加・要素を確認する

```js

var myArray = new Array(3);

console.log(myArray.length); //出力： 3

myArray[5] = 'addition'; //存在しない6番目

console.log(myArray.length); //出力： 6  配列の長さが変わっていることがわかる

//先頭に要素を挿入
myArray.unshift('unshifted');
//末尾に要素を挿入
myArray.push('pushed');

//要素を一覧して確認する
var counter = 0;
while(counter < myArray.length){
  console.log(myArray[counter]);
  counter++;
}

```

##String()オブジェクト

###定義方法と仕様

```js
var stringObject = new String('foo');
console.log(typeof stringObject, stringObject()); //出力 object, {0="f", 1="o", 2="o"};

```

###String()のインスタンスプロパティとインスタンスメソッド

・インスタンスプロパティ

constructor

length - 文字列の長さ。Unicodeコードユニット単位で数える。

・インスタンスメソッド

chartAt(pos) - 渡した引数の位置の文字を返す。

charCodeAt(pos) - 渡した引数の位置の文字の文字コードを返す。

concat([string1 [, string2 [, ・・・]]]) - 複数の文字列をひとつに結合して返す。元の文字列は変更されない。

indexOf(searchString, pos) - searchStringに渡した文字列を元の文字列で検索し、存在する場合はその最初のインデクスを返す。posが指定されている場合は指定位置以降から検索する。

lastIndexOf(searchString, pos) - searchStringに渡した文字列を元の文字列の末尾から検索し、存在する場合はその最初のインデクスを返す。posが指定されている場合は指定位置以前から検索する。

locateCompare(that) - thatに渡した文字のソート順が元の文字よりも前の場合には負の値、後の場合には正の値、同じ文字の場合には0を返す。

match(regexp) - 引数として渡した正規表現とのマッチングを試みる。一つ以上マッチする場合は結果を配列で返し、マッチしない場合はnullを返す。

replace(searchValue, replaceValue) - searchValueに渡した文字列を元の文字列で検索し、replaceValueに渡した文字列で置き換える。元の文字列は変更されない。

search(regexp) - 引数として渡した正規表現とのマッチングを試みる。マッチする場合はインデクスを返し、マッチしない場合は-1を返す。

slice(start, end) - startとendで指定した位置の範囲の文字列を返す。元の文字列は変更されない。

split(separator, limit) - separatorに渡した文字列で元の文字列を分割し、配列に格納して返す。limitに数値を渡した場合、配列の要素数をその数に制限する。

substr(start, length) - startで指定した位置からlengthで指定した長さの文字列を返す。元の文字列は変更されない。

substring(start, end) - startとendで指定した位置の範囲の文字列を返す。元の文字列は変更されない。

toLocaleLowerCase() - 大文字小文字の区別がある文字をすべて小文字に変換して返す。

toLowerCase() - toLocaleLowerCase()とほとんど同じ。

toLocaleUpperCase() - 大文字小文字の区別がある文字をすべて大文字に変換して返す。

toUpperCase() - toLocaleUpperCase()とほとんど同じ。

toString() - 文字列オブジェクトに格納されている文字列をプリミティブ型にして返す。プリミティブ型の場合は変更しない。

valueOf() - String.prototype.toString()と同じ。通常はJavaScriptによってのみ呼び出される。



##Number()オブジェクト

###定義方法と仕様

```js
var numberObject = new Number(1);
console.log(typeof numberObject, numberObject); //出力: object, 1

//new演算子を使わずに定義できる
var numberObject = Number(1);

//結局はこの定義方法が一般的
var numberLiteral = 1;

```


###Number()に引数を渡し数値に変換する

Number()関数は、渡された引数をもとに数値オブジェクトもしくはプリミティブ型数値を生成する。

```js
var string = '1'; //文字列'1'
console.log(Number(string) + 1); //出力 2

```

###Number()のプロパティ

・プロパティ

MAX_VALUE - JavaScriptが表現可能な最大値。1.7976931348623157e + 308

MIN_VALUE - JavaScriptが表現可能な、０より大きい最小値。5e - 324

NaN - 「数値ではないこと」を表す数値。

NEGATIVE_INFINITY - -Infinityと同値。

POSITIVE_INFINITY - Infinityと同値。

prototype


###Number()のインスタンスのプロパティとメソッド(Number.prototypeのプロパティ)

・インスタンスプロパティ

constructor

・インスタンスメソッド

toExponential(fractionDigits) - fractionDigitsに指定した数を指数とした、指数表記の文字列を返す。

toFixed(fractionDigits) - fractionDigitsに小数点以下の桁数を指定して、そのフォーマットの文字列を返す。有効桁未満は四捨五入。

toLocaleString() - ロケールに合ったフォーマットの文字列に変換して返す。(1000 → 1,000など)

toPrecision(precision) - precisionに渡した数を精度とする概数を文字列に変換して返す。

toString(radix) - 数値をプリミティブ型の文字列に変換して返す。radixに底（2～36）を渡した場合、その進数のフォーマットに変換した文字列を返す。(1000.0.toString(13)は'5bc'を返す)

valueOf() - プリミティブ型の数値を返す。

##Boolean()オブジェクト

###定義方法

```js
var boolObject = new Boolean(false);

```

###falseになる値、trueになる値

```js
//以下はすべてfalse
var console.log(Boolean(0));
var console.log(Boolean(-0));
var console.log(Boolean(false));
var console.log(Boolean(''));
var console.log(Boolean(undefined));
var console.log(Boolean(null));

//以下はすべてtrue
var console.log(Boolean(1));
var console.log(Boolean(2));
var console.log(Boolean('false'));
var console.log(Boolean(Math));
var console.log(Boolean(Array()));

```
###Boolean()のインスタンスのプロパティとメソッド(Boolean.prototypeのプロパティ)

・インスタンスプロパティ

constructor

・インスタンスメソッド

toString() - 真偽値がtrueの場合はプリミティブ型の文字列'true'を、それ以外の場合は'false'を返す。

valueOf() - プリミティブ型の真偽値を返す。



###余談

真偽値オブジェクトは格納されている値がfalseであってもtrueと評価される

```js
var falseValue new Boolean(false);
if(falseVale){
	console.log('falseValue is truthy'); //出力される
}

```

##リファレンス
開眼！JavaScript(９章，１０章，１１章，１２章)