프론트엔드/JavaScript

[Deepdive] 21장 빌트인객체

반신욕좋아하는J 2022. 4. 11. 20:55
반응형

자바스크립트 객체 분류

  • 표준 빌트인 객체
  • 호스트 객체
  • 사용자 정의 객체

표준 빌트인 객체

Math, Relect, JSON 을 제외한 표준 빌트인 객체는 생성자 함수 객체다 .

생성자 함수 객체는 프로토타입 메서드 와 정적 메서드를 제공

아닌 객체는 정적 메서드만 제공

래퍼객체

문자열,숫자, 불리언 값에 대해 객체처럼( 마침표 표기법) 접근하게되면 생성되는 임시객체

문자열,숫자,불리언,심볼 이외값들은 래퍼객체 생성을 안함 / 생성할시 에러발생

래퍼객체의 동작방식

  1. 마침표표기법으로 인해 래퍼 객체 생성
  2. 내부슬롯 [[~Data]] 에 데이터값을 저장
  3. 객체 처리가 종료되면 내부슬롯에서 원시값 되돌려주고 가비지 셀렉션이됨

전역객체

코드가 실행 되기 이전에 자바스크립트 엔진에 의해 생성되는 최상위 객체

전역객체의 특징

  1. 개발자가 의도적으로 생성할수없다. 생성자 함수 x
  2. 프로퍼티를 참조시 window 를 생략할수있다.
  3. 모든 표준 빌트인 객체를 프로퍼티로 가지고있다.
  4. var 키워드로 선언한 전역변수 , 암묵적 전역, 전역함수 가 전역객체의 프로퍼티가 된다.

빌트인 전역 프로퍼티

  • Infinity - 무한대인 숫자
  • NaN - 숫자가 아님
  • undefined

빌트인 전역 함수

  • eval - 인수로 문자열을 받고 문자열이 표현식이라면 런타임에 평가하여 값을 생성 아니라면 런타임에 실행함
    • 실행할때 기존 스코프를 런타임에 동적으로 수정한다 다만 strict mode 에서는 자체 스코프를 갖는다 ( let, const 문자열이 있다면 strict mode 와 동일하게 동작)
    • 보안이 취약하고 처리속도가 느려 일반적으로는 사용안함
  • isFinite - 유한수면 true 무한수면 false를 반환 (NaN → F)
  • isNaN - NaN 인지 검사하고 불리언값으로 반환
  • parseFloat - 실수로 해석해서 반환한다.
  • parseInt - 정수로 해석해서 반환한다.
  • encodeURI / decodeURI - 완전한 URI 를 이스케이프 처리를 위해 인코딩 / 인코딩된 URI를 이스케이프 처리이전으로 디코딩
  • 💡 이스케이프란 ? 네트워크 정보 공유시 어떤 시스템에서도 읽을수있는 아스키 문자 셋으로 변환하는것
  • encodeURIComponent/ decodeURIComponent - URI 구성요소를 인수로 받아 인코딩한다 / URI 구성요소를 디코딩한다.
  •  
반응형