Dev-dotoli TIL

JS 30 Built-in



Standard Built-in Object

demo33.html


JS가 기본적으로 가지고 있는 object를 의미함

programming을 하는데 기본적으로 필요한 도구들

내장객체에 대한 이해는 programming의 기본

  • JS 내장객체
    • Object
    • Function
    • Array
    • String
    • Boolean
    • Number
    • Math
    • Date
    • RegExp

User-defined object 와 hybrid


내장객체에 사용자정의객체 추가


Array 확장


Array에서 특정한 값을 ramdom하게 추출하기

var arr = new Array("seoul", "new york", "ladarkh", "pusan", "Tsukuba");
function getRandomValueFromArray(arr) {
  var index = Math.floor(arr.length * Math.random());
  return arr[index];
}
console.log(getRandomValueFromArray(arr));
// random값이 매번 뜸 굳굳굳

//math.random
//0~1까지소수에 '어떤 값'을 곱하고
//그 값을 최대값, 0을 최소값으로 하는 값이 만들어짐

//arr.length 배열의 최대값을 '어떤값'으로 지정
//이 값은 소수임
//Math.floor 0.1=0 0.9=0 1.1=1 / 소수점을 버리고 정수로만듦

//return arr[index]
//위에서 랜덤하게 획득한 index값을 인자로 받아서 return


잘 작동하는 코드를 만들었지만 더 세련된 방법이 있음

이 함수를 배열 객체에 포함시키는 것
그러면 배열에 내장된 method인 것 처럼 기능을 사용할 수 있음

Array.prototype.random = 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.random());



prototype의 확장을 통해서

모든 배열이 공통적으로 가지고 있었으면 하는

어떠한 API를 사용자가 직접 정의할 수 있다는 것은

상당히 강력하고 멋진 일


공통적으로 사용해야하는 logic이 있다면

이런 prototype같은 것을 통해 내장객체를 확장할 수 있고

또 우리가 만든 다른 객체를 확장 할 수도 있다는 사실