⚡strict mode를 전역에 적용하면 어떻게 되나요?
전역에 적용된 strict mode는 스크립트 단위로 적용됩니다.
⚡strict mode는 어떻게 쓰는게 좋나요?
strict mode는 즉시 실행 함수로 감싼 스크립트 단위로 적용하는 것이 바람직합니다.
함수 단위로 strict mode를 적용하면 strict mode가 적용되지 않은 함수를 참조할 때
문제가 발생할 수도 있기 때문입니다.
⚡strict mode가 발생시키는 에러는 뭐가 있나요?
1. 암묵적 전역에 대한 에러가 발생합니다.
2. 변수,함수,매개변수를 delete 연산자로 삭제하면 에러가 발생합니다.
3. 중복된 매개변수 이름을 사용하면 에러가 발생합니다.
4. with 문을 사용하면 에러가 발생합니다.
⚡strict mode로 변화되는 건 뭔가요?
1. 일반 함수의 this가 undefined로 바인딩됩니다.
2. 매개변수에 전달된 인수를 재할당해서 변경해도 arguments 객체에 반영되지않습니다.
⚡자바스크립트에서 객체는 어떻게 분류할 수 있나요?
자바스크립트 객체는 3개의 객체로 분류할 수 있습니다.
1. 표준 빌트인 객체
ECMAScript 사양에 정의 된 객체로 애플리케이션 전역의 공통 기능을 제공합니다.
표준 빌트인 객체는 전역 객체의 프로퍼티로서 제공됩니다.
2. 호스트 객체
호스트 객체는 자바스크립트 실행 환경에서 추가로 제공하는 객체를 말합니다.
브라우저 환경에서는 DOM, fetch , web storage 등이 있습니다.
3. 사용자 정의 객체
사용자 정의 객체는 기본 제공되는 객체가 아니라 사용자가 직접 정의한 객체를 말합니다.
⚡ 자바스크립트의 표준 빌트인 객체에 대해 설명해주세요
자바스크립트는 Object, String, Number, Boolean , Symbol, Date, Math, RegExp, Array, Map/Set
WeakMap/WeakSet, Function, Promise 등 40여개의 표준 빌트인 객체를 제공합니다.
이중 Math, Reflect, JSON 을 제외한 표준 빌트인 객체는 모두 인스턴스를 생성할 수 있는
생성자 함수입니다.
표준 빌트인 객체는 프로토타입 메서드와 정적 메서드를 제공하고
생성자 함수객체가 아닌 표준 빌트인 객체는 정적 메서드만 제공합니다.
표준 빌트인 객체가 생성한 인스턴스의 프로토타입은
표준 빌트인 객체의 프로토타입 프로퍼티에 바인딩 된 객체입니다.
Ex : String을 생성자 함수로 호출해서 생성한 인스턴스의 프로토타입은 ? -> String.prototype
⚡ 래퍼 객체가 뭔가요?
래퍼 객체는 문자열, 숫자 , 불리언 값에 대해 객체처럼 접근하면 생성되는 임시 객체를 의미합니다.
자바스크립트 엔진은 원시값을 객체처럼 사용하면 연관된 객체를 생성하여 생성된 객체로
프로퍼티에 접근하거나 메서드를 호출하고 다시 원시값으로 되돌리는데
이때 생성하는 객체를 래퍼 객체라고 합니다.
⚡ 표준빌트인객체로 Number를 생성하면 어떻게 되나요?
타입이 오브젝트가 됩니다.
⚡ 래퍼 객체의 동작 과정을 설명해주세요
문자열에 대해 마침표 표기법으로 접근하는 경우
1. 래퍼 객체인 String 생성자 함수의 인스턴스가 생성됩니다.
2. 문자열은 래퍼 객체의 [[stringData]] 내부 슬롯에 할당됩니다.
3. 래퍼객체는 String.Prototype의 메서드를 상속받아 사용합니다.
4. 래퍼객체의 처리 종료 후 [[stringData]]내부 슬롯에 할당된 원시값으로 상태를 되돌립니다.
5. 래퍼 객체는 가비지 컬렉션의 대상이 됩니다.
래퍼 객체는 처리 종료 후 가비지 컬렉션에 들어가기 때문에
래퍼객체에 프로퍼티를 동적으로 추가해줘도
아무도 래퍼객체를 참조 하지 않으면 동적으로 추가한 프로퍼티는 제거됩니다.
null과 undefined는 래퍼 객체를 생성하지 않습니다.
⚡ 전역 객체에 대해 설명해주세요
전역 객체는 코드가 실행되기 이전 단계에 자바스크립트 엔진에 의해
어떤 객체보다도 먼저 생성되는 특수한 최상위 객체입니다.
전역 객체는 브라우저 환경에서는 window, node환경에선 global이 가리킵니다.
또한 전역 객체는 모든 빌트인 객체의 최상위 객체입니다.
전역 객체는 어떤 객체의 프로퍼티도 아니며 표준 빌트인 객체와 호스트 객체를
프로퍼티로 소유합니다.
⚡전역 객체의 특징은 뭐가 있을까요?
1.전역 객체는 생성자 함수가 제공되지 않습니다.
2.전역 객체의 프로퍼티를 참조 할 때 window나 global을 생략할 수 있습니다.
3.전역 객체는 모든 표준 빌트인 객체를 프로퍼티로 가집니다.
4. 실행환경에 따라 추가적으로 프로퍼티와 메서드를 가집니다.
5. var 키워드로 선언한 전역 변수와 암묵적 전역, 전역함수는 전역 객체의 프로퍼티가 됩니다.
6. let, const는 전역 객체의 프로퍼티가 아닙니다.
7. 여러개의 스크립트 태그로 코드를 분리해도 브라우저 환경에서 자바스크립트 코드는 하나의 전역을 공유합니다.
⚡ 빌트인 전역 프로퍼티는 뭐가 있을까요?
Infinity, NaN, undefined가 있습니다.
⚡빌트인 전역 함수는 뭐가 있을까요?
eval, isFinite, isNaN.parseFloat 등이 있습니다.
반응형
'javascript' 카테고리의 다른 글
요약 정리는 못 참지 않을까요?(7) 클로저 (0) | 2023.01.13 |
---|---|
자바스크립트의 this를 이해해보자 (0) | 2023.01.12 |
요약 정리는 못 참지 않을까요? (5) 프로토타입 (1) | 2023.01.10 |
요약 정리는 못 참지 않을까요? (4) (0) | 2023.01.10 |
요약 정리는 못 참지 않을까요? (3) (0) | 2023.01.10 |