* 자바스크립트 런타임환경 (Browser or Node)
- 우리가 자바스크립트 코드를 작성하면 우리 어플리케이션은 자바스크립트 런타임 환경에서 동작할수 있다.
- 런타임 환경은 브라우저가 될수도있고 노드환경이 될수도있다.
[ 런타임 환경안에 있는 객체의 종류 ]
1. 내장객체(Built-in Objects)
2. 호스트 객체(Host Objects)
- 자바스크립트 만으로는 브라우저에 있는 화면을 보여주거나 네트워크 전송을 하거나 컴퓨터에 있는 파일을 읽을수 없다.
- 이런일들을 수행하기 위해서는 런타임 환경에서 제공해주는 호스트 객체(Host Objects)를 사용해야한다.
- 호스트 객체란 ??? 브라우저 런타임 환경이라면 브라우저 호스트가 제공해주는 다양한 객체들 및 Web APIs들을 뜻하고 노드 환경이라면 노드에서 제공해주는 Node APIs를 뜻한다.
3. 우리가 정의한 사용자 정의 객체(User-defined Objects)
* 래퍼 객체 (Wrapper Object)
- 래퍼 객체란 이름처럼 원시 타입의 값을 감싸는 형태의 객체이다.
// 원시값을 필요에 따라서 관련된 빌트인 객체로 변환한다.
// 원시값에 점(.)을 추가하여서 빌트인 객체로 변환한다.
const number = 123; // number 원시 타입
// number 원시타입을 감싸고 있는 Number 객체로 감싸짐
console.log(number.toString());
console.log(number); // number 원시 타입
const text = 'text'; // string 문자열 원시타입
console.log(text);
text.length; // String 객체
text.trim();
* 글로벌 객체 (Global Object)
* 객체를 바로 쓰지 않는 이유? (원시타입에서 빌트인 객체로 변환하는 이유)
- 객체에는 값뿐만 아니라 다양한 함수들을 가지고 있기 때문에 원시타입보다 무겁고 메모리를 더 많이 차지한다.
- 값을 만들때마다 객체를 생성하면 어플이 무거워진다.
- 따라서 가능하면 원시타입을 쓰다가 필요하면 객체로 변환하고 다시 원시타입으로 변환해준다.
* Node에서의 this
- 현재 모듈에 있는 정보를 출력한다.
console.log(globalThis);
console.log(this);
console.log(Infinity);
console.log(NaN);
console.log(undefined);
eval('const num = 2; console.log(num)');
console.log(isFinite(1));
console.log(isFinite(Infinity));
console.log(parseFloat('12.43'));
console.log(parseInt('12.43'));
console.log(parseInt('11'));
// URL (URI, Uniform Resource Identifier 하위 개념)
// 아스키 문자로만 구성되어야 함
// 한글이나 특수문자는 이스케이프 처리 해야 한다
// 프론트와 백엔드 통신할때 유용하게 쓰인다
const URL = 'https://네이버.com';
const encoded = encodeURI(URL);
console.log(encoded);
// 이스케이프 처리된 문자를 다시 decoded해주는법
const decoded = decodeURI(encoded);
console.log(decoded);
// 전체 URL이 아니라 부분적인 것은 Component이용
const part = '네이버.com';
console.log(encodeURIComponent(part));
'Study > JavaScript' 카테고리의 다른 글
[JavaScript_study] 자료구조 및 배열 (0) | 2022.04.11 |
---|---|
[JavaScript_study] 유용한 함수들 (0) | 2022.04.11 |
[JavaScript_study] 자바스크립트 엔진에 대해서 (0) | 2022.04.11 |
[JavaScript_study] 상속 (extends) (0) | 2022.04.11 |
[JavaScript_study] setter, getter (0) | 2022.04.11 |