⚡strict mode를 전역에 적용하면 어떻게 되나요? 전역에 적용된 strict mode는 스크립트 단위로 적용됩니다. ⚡strict mode는 어떻게 쓰는게 좋나요? strict mode는 즉시 실행 함수로 감싼 스크립트 단위로 적용하는 것이 바람직합니다. 함수 단위로 strict mode를 적용하면 strict mode가 적용되지 않은 함수를 참조할 때 문제가 발생할 수도 있기 때문입니다. ⚡strict mode가 발생시키는 에러는 뭐가 있나요? 1. 암묵적 전역에 대한 에러가 발생합니다. 2. 변수,함수,매개변수를 delete 연산자로 삭제하면 에러가 발생합니다. 3. 중복된 매개변수 이름을 사용하면 에러가 발생합니다. 4. with 문을 사용하면 에러가 발생합니다. ⚡strict mode로 변..
⚡객체지향 프로그래밍에서 객체는 뭐라고 생각하세요? 객체지향 프로그래밍에서 객체는 상태 데이터와 동작을 하나의 논리적인 단위로 묶은 복합적인 자료구조라고 생각합니다. 객체의 상태데이터로는 프로퍼티를 동작으로는 메서드를 말할 수 있을것입니다. ⚡객체지향에서 상속은 뭔가요? 상속은 어떤 객체의 프로퍼티 또는 메서드를 다른 객체가 상속받아 그대로 사용할 수 있는 것을 말합니다. 자바스크립트는 프로토타입을 기반으로 상속을 구현하여 중복을 제거합니다. ⚡생성자 함수의 문제점은 뭐가 있을까요? 동일한 생성자 함수에 의해 생성된 모든 인스턴스가 동일한 메서드를 중복 소유하는 건 메모리를 불필요하게 낭비한다는 문제점이 있습니다. 또한 인스턴스를 생성할 때마다 메서드를 생성하므로 퍼포먼스에도 악영향을 줍니다. 자바스크립..
⚡일급객체가 뭐에요 일급 객체는 다음 조건을 만족하는 객체를 의미합니다. 1. 무명의 리터럴로 생성할 수 있다. 즉 런타임에 생성이 가능하다. 2. 변수나 자료구조에 저장할 수 있다. 3. 함수의 매개변수로 전달할 수 있다. 4. 함수의 반환값으로 사용할 수 있다. 자바스크립트의 함수는 다음 조건을 모두 만족하기때문에 일급 객체입니다. ⚡함수는 프로퍼티도 가질 수 있나요? 네. 함수는 객체이기 때문에 함수도 프로퍼티를 가질 수 있습니다. 일반 객체에는 없는 함수만의 프로퍼티로는 arguments, caller, length, name, prototype 이 있습니다. ⚡arguments에 대해서 설명해주세요 arguments는 함수객체의 프로퍼티이며 값은 arguments 객체입니다. arguments ..
⚡ 프로퍼티 어트리뷰트가 뭔가요? 프로퍼티 어트리뷰트란 자바스크립트 엔진이 관리하는 내부 상태값입니다. 자바스크립트 엔진은 프로퍼티를 생성할 때 프로퍼티의 상태를 나타내는 프로퍼티 어트리뷰트를 기본값으로 정의하고 이 기본값에는 1. 프로퍼티의 값 (value) 2. 값의 갱신 가능 여부 (writable) 3. 열거 가능 여부 (enumerable) 4. 재정의 가능 여부 (configurable) 이 있습니다. 이 프로퍼티 어트리뷰트는 직접 접근할 수 없지만 Object.getOwnPropertyDescriptor 메서드를 이용하면 간접적으로 확인할 수 있습니다. ⚡ 데이터 프로퍼티랑 접근자 프로퍼티에 대해 말해주세요 데이터 프로퍼티는 키와 값으로 구성된 일반적인 프로퍼티입니다. 데이터 프로퍼티는 va..
⚡스코프에 대해 설명해주세요 스코프는 식별자가 유효한 범위를 말합니다. 또는 스코프는 식별자를 검색할 때 사용하는 규칙이라고도 할 수 있습니다. 모든 식별자는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효 범위가 결정되기 때문입니다. ⚡식별자 결정에 대해 말해주세요 식별자 결정이란 이름이 같은 두개의 변수 중 어떤 변수를 참조할 것인지를 결정하는 것을 말합니다. 자바스크립트 엔진은 스코프를 통해 어떤 변수를 참조할 지를 결정합니다. ⚡스코프가 없으면 어떤 일이 생기나요? 스코프 개념이 없으면 같은 이름을 갖는 변수는 충돌을 일으키므로 프로그램 전체에서 중복되는 이름의 변수를 사용할 수 없게됩니다. ⚡스코프체인에 대해서 설명해주세요 함수는 전역에서 정의할수도, 함수 내부에서 정..
⚡프로그래밍언어는 뭐라고 생각하시나요? 프로그래밍 언어란 사람과 컴퓨터(컴파일러,인터프리터) 모두가 이해할 수 있는 약속된 형태의 인공어입니다. 주로 프로그래밍언어는 구문(syntax)와 의미(semantics)의 조합으로 표현됩니다. ** 프로그래밍이란? 요구사항의 집합을 분석해 적절한 자료구조와 함수의 집합으로 변환한 후 그 흐름을 제어하는 것 ⚡렌더링이란 뭔가요? 렌더링이란 HTML,CSS,Javascript로 작성된 문서를 해석하여 브라우저에 시각적으로 출력하는 것입니다. 때로는 서버에서 데이터를 HTML로 변환해서 브라우저에게 전달하는 과정 (SSR: Server Side Rendering)을 말하기도합니다. ⚡Ajax를 설명해주세요 Ajax는 자바스크립트를 이용해 서버와 브라우저가 비동기 방식..
🔍렉시컬 환경 😢렉시컬 환경은? 식별자와 식별자에 바인딩된 값, 그리고 상위 스코프에 대한 참조를 기록하는 자료구조로 실행컨텍스트를 구성하는 컴포넌트다. 실행 컨텍스트 스택이 코드의 실행순서를 관리한다면 렉시컬 환경은 스코프와 식별자를 관리한다. 렉시컬 환경은 키와 값을 갖는 객체 형태의 스코프(전역 함수, 블록 스코프)를 생성하여 식별자를 키로 등록하고 식별자에 바인딩 된 값을 관리한다. 즉 렉시컬 환경은 스코프를 구분해주고, 식별자를 키로 등록하고 관리하는 저장소 역할을 한다. 실행 컨텍스트는 렉시컬환경 컴포넌트와 VariableEnvironment 컴포넌트로 구성됩니다. 생성 초기에는 렉시컬과 배리어블 모두 하나의 동일한 렉시컬 환경을 참조하지만 특정 상황을 만나게되면 배리어블컴포넌트를 위한 새로운..
⚡실행컨텍스트 (execution context) 란? 실행컨텍스트는 자바스크립트의 동작 원리를 담고있는 핵심 개념이다. 실행컨텍스트를 바르게 이해하면 자바스크립트가 스코프를 기반으로 식별자와 식별자에 바인딩 된 값(식별자 바인딩) 을 관리하는 방식과 호이스팅이 발생하는 이유, 클로저의 동작 방식 그리고 태스크 큐와 함께 동작하는 이벤트 핸들러와 비동기 처리의 동작 방식을 이해할 수 있다. -자바스크립트 모던 딥다이브 359p 본 글은 모던 자바스크립트 딥다이브 내용을 참고하여 작성하지만 제가 이해한 바를 같이 서술하다보니 틀린 점이 있을 수도 있습니다. 최대한 맞게 이해해보려고 노력하겠지만 틀린점이 있으면 지적해주세요 전혀 와닿지는 않는 설명입니다만 아무튼 핵심이고 중요하다는 건 전해지네요 이걸 이해하..