분류 전체보기23 프로퍼티 어트리뷰트(property attribute) 내부 슬롯(internal slot), 내부 메서드(internal method) 내부 슬롯과 내부 메서드는 자바스크립트 엔진의 구현 알고리즘을 설명하기 위해 ECMAScript 사양에서 사용하는 의사 프로퍼티(pseudo property)와 의사 메서드(pseudo method)이다. ECMAScript 사양에 등장하는 이중 대괄호로 감싼 이름들이 모두 내부 슬롯과 내부 메서드이다. Object Internal Methods and Internal Slots 내부 슬롯과 내부 메서드는 개발자가 직접 접근할 수 있도록 외부로 공개된 객체의 프로퍼티가 아니다. 내부 슬롯과 내부 메서드는 자바스크립트 엔진의 내부 로직이므로, 원칙적인 규칙은 내부 슬롯과 내부 메서드에 개발자가 직접 접근 및 호출하는 방법은 .. 2023. 5. 11. var, let, const 키워드 var 키워드 변수 중복 선언 허용 var x = 1; var y = 1; var x = 100; // x = 100 (1) var y; // y (2) console.log(x); // 100 console.log(y); // 1 위 예제의 x 변수와 y 변수는 중복 선언되었다. 이 때 자바스크립트 엔진에 의해 초기화 문이 있는 변수 선언문(1)은 var 키워드가 없는 것처럼 동작하고, 초기화문이 없는 변수 선언문(2)은 무시된다. 함수 레벨 스코프(function level scope) var 키워드로 선언한 변수는 함수의 코드 블록만을 지역 스코프(local scope)로 인정한다. var x = 1; var i = 10; if (true) { var x = 10; } for (var i = 0; .. 2023. 5. 11. 전역 변수(global variable)의 문제점 변수의 범위를 최소화 하라 Effective Java Item.57 전역 변수의 문제점 암묵적 결합(implicit coupling) 전역 변수는 말 그대로 전역, 즉 코드 어디서든 참조하고 할당할 수 있는 변수를 사용하겠다는 것이다. 이 말은 전역 변수는 모든 코드가 변경하고 참조할 수 있는 암묵적 결합(implicit coupling)을 허용하게 된다. 변수의 유효 범위는 좁을 수록 좋고, 다 사용한 변수는 스코프 밖으로 밀어내는 것이 제일 바람직하다. 전역 변수는 코드의 가독성을 망치고, 의도치 않게 상태가 변경될 수 있는 위험성을 항상 내포한다. 긴 생명 주기(life cycle, 라이프 사이클) 전역 변수는 프로그램이 종료 될 때 까지 살아있다. 즉 전역 변수는 생명 주기(life cycle, .. 2023. 5. 11. 유효범위(scope, 스코프) 자바스크립트에서 스코프(scope)란? 모든 식별자(변수 이름, 함수 이름, 클래스 이름 ...)는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효 범위(scope, 스코프)가 결정된다. 이를 스코프라 한다. var x = `global`; function myFunc(){ var x = `local`; console.log(x); } myFunc(); // -> local console.log(x); // -> global 자바스크립트 엔진은 이름이 같은 두 개의 변수 중에서 어떤 변수를 참조해야 할 것인지를 결정(identifier resolution, 식별자 결정) 한다. 이 때 자바스크립트 엔진은 스코프(scope)를 통해 어떤 변수를 참조해야 할 지 결정한다. 즉 스코.. 2023. 5. 11. 이전 1 2 3 4 ··· 6 다음