0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【JavaScript】関数とオブジェクト⑱ ビルトインオブジェクトとラッパーオブジェクト

Posted at

#はじめに

Udemyの【JS】ガチで学びたい人のためのJavaScriptメカニズムの講座の振り返りです。

前回の記事

#目的

  • 関数とオブジェクトについての理解を深める

#本題
###1.ビルトインオブジェクト

ビルトインオブジェクトとは、コード実行前にJSエンジン側で自動的に生成されるオブジェクト

具体例.
String, Object, Number, Function, 
Math, Boolean, Date, Symbol, etc....

####例1

windowオブジェクトにビルトインオブジェクトが格納されているか

Console.
window
Window {window: Window, self: Window, document: document, name: '', location: Location, …}
alert: ƒ alert()
    :
    :
AbortController: ƒ AbortController()
AbortSignal: ƒ AbortSignal()
AbsoluteOrientationSensor: ƒ AbsoluteOrientationSensor()
AbstractRange: ƒ AbstractRange()
Accelerometer: ƒ Accelerometer()
AggregateError: ƒ AggregateError()
AnalyserNode: ƒ AnalyserNode()
Animation: ƒ Animation()
AnimationEffect: ƒ AnimationEffect()
AnimationEvent: ƒ AnimationEvent()
AnimationPlaybackEvent: ƒ AnimationPlaybackEvent()
AnimationTimeline: ƒ AnimationTimeline()
Array: ƒ Array()
     :
     :

大文字から始まるものはすべてビルトインオブジェクト
殆どがインスタンス化をするためのコンストラクター関数になる

Console.
window.Array
ƒ Array() { [native code] }

例えば、配列を定義するArrayを実行するとnative codeと出力される。JSエンジン側で用意されたものなので、中身を確認できない。

配列を使ってビルトインオブジェクトを定義する

// コンストラクター関数を定義
// new演算子で初期化 window.Array(windowは省略できる)
const array = new Array(1,2,3,4);
// (4) [1, 2, 3, 4]配列として出力される
console.log(array);

###2.ラッパーオブジェクト

ラッパーオブジェクトとはプリミティブ値を内包するオブジェクト

####例1

文字列を定義するラッパーオブジェクト

// コンストラクター関数を定義
// new演算子でStringを初期化
const a = new String("Hello");
console.log(a);

この実行結果を見てみると下記の通りとなっている

Console.
String {'Hello'}
0: "H"
1: "e"
2: "l"
3: "l"
4: "o"
length: 5
[[Prototype]]: String
anchor: ƒ anchor()
at: ƒ at()
big: ƒ big()
blink: ƒ blink()
   :
   :
toLocaleLowerCase: ƒ toLocaleLowerCase()
toLocaleUpperCase: ƒ toLocaleUpperCase()
   :
   :

Helloが一文字ずつ入っている
また、使用できるメソッドが並んでいる

試しにメソッドの1つを使用する

const a = new String("Hello");
// HELLOと大文字で出力される(大文字にするメソッド)
console.log(a.toLocaleUpperCase());

####例2

試しに数値を入れて、やってみる

// 数値を引数に設定
const b = new Number(100);
// Number {100}という数値をもったオブジェクトが出力される
console.log(b);
// 試しにtoExponentialというメソッドを使用すると
console.log(b.toExponential());
// 1e+2と出力される(10の二乗を意味する)

####例3

上記のように、明示的にインスタンス化は基本的に行わず、
下記のように表現する

// new Stringを省略
const a2 = "hello";
// この場合でもString型であると認識し、toLocaleUpperCaseを使用できる
console.log(a2.toLocaleUpperCase());
// 下記のように書くことも可能
const a3 = "hello".toLocaleUpperCase();
// 同様にHELLOとシュル力される
console.log(a3);
// 数値も同様

今日はここまで!

#参考にさせて頂いた記事

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?