표준 내장 객체(Standard Built-in Object)

표준 내장 객체(Standard Built-in Object)

자바스크립트가 기본적으로 가지고 있는(탑재되어있는) 객체들

자바스크립트의 내장객체

• Object

• Function

• Array

• String

• Boolean

• Number

• Math

• Date

• RegExp

자바스크립트라는 언어 자체(코어)가 제공하는 내장 객체는 저 9가지 항목이 전부이지만 호스트환경이 제공하는 api는 훨씬 많다.

자바스크립트 호스트 환경이란?

자바스크립트가 구동되는 환경

브라우저, 웹서버(node.js … ),

자바스크립트 내장 객체를 이용할 수도 있고 필요에 따라서 내장 객체 이외의 메소드를 추가하거나 원하는 객체를 만들 수 있는 데 이를 ‘사용자 정의 객체’라고 한다.

배열을 확장

혼자서 존재하는 함수의 쓰임을 잘 이해할 수 있어야 하기 때문에 함수명을 지을 때 잘 지어야한다.

과제 : ('seoul','new york','ladarkh','pusan', 'Tsukuba') 중 하나를 랜덤하게 뽑는 기능이 필요함.

var arr = new Array('seoul','new york','ladarkh','pusan', 'Tsukuba');

function getRandomValueFromArray(haystack){
  var index = Math.floor(haystack.length*Math.random());
  return haystack[index]; 
}

console.log(getRandomValueFromArray(arr));

결과

Array 배열에 들어있는 값들이 랜덤으로 찍힌다.

getRandomValueFromArray를 실행하면 Array 안에 들어있는 값을 랜덤으로 보여준다.

배열의 확장 2

과제 : 위 코드에서 Array라는 생성자를 확장해서 모든 배열이 그 배열이 가지고 있는 특정한 값을 랜덤하게 뽑을 수 있는 코드로 수정

/*
기존코드 

var arr = new Array('seoul','new york','ladarkh','pusan', 'Tsukuba');

function getRandomValueFromArray(haystack){
  var index = Math.floor(haystack.length*Math.random());
  return haystack[index]; 
}

console.log(getRandomValueFromArray(arr));
*/

Array.prototype.rand = function(){
  var index = Math.floor(this.length*Math.random());
  return this[index];
}

var arr = new Array('seoul','new york','ladarkh','pusan', 'Tsukuba');

console.log(arr.rand());

Discussion and feedback