Deep Dive

    [DeepDive] - 20장(strict mode), 21장(빌트인 객체) 필요 내용 정리

    strict mode ES5부터 도입된 기능으로, JS 언어의 문법을 좀 더 엄격히 적용하여 오류를 발생시킬 가능성이 높거나 JS 엔진의 최적화 작업에 문제를 일으킬 수 있는 코드에 대해 에러를 발생시킨다. 암묵적 전역: 선언하지 않은 변수를 참조할시, ReferenceError 발생 변수, 함수, 매개변수의 삭제: delete 연산자로 변수, 함수, 매개변수 삭제시 SyntaxError 발생 매개변수 이름 중복: 중복된 매개변수 이름 사용시 SyntaxError 발생 with 문의 사용: 전달된 객체를 스코프체인에 추가하지만, 성능과 가독성이 나쁘므로 사용하지 않는것을 권장 strict mode를 적용하기 위해서, 전역의 선두 혹은 함수 몸체의 선두에 use strict; text를 추가한다. // t..

    [DeepDive] 13장(스코프), 14장(전역 변수의 문제점) 필요 내용 정리

    스코프 스코프란, 식별자(변수명)에 접근할 수 있는 유효한 범위를 말한다. 다른 스코프 영역에서 같은 이름의 변수가 존재할 때, 자바스크립트 엔진은 어떤 변수를 참조해야 할 것인지를 결정하게 되는데, 이를 식별자 결정이라고 한다. var x = "global"; function foo() { var x = "local"; console.log(x); // local } foo(); console.log(x); // global 스코프의 종류 전역 스코프(global scope) 함수나 특정 블록({})에 속하지 않고 어디든 접근이 가능하며 이때 지정된 변수를 전역변수라 한다. (함수 외부에서 선언된 변수는 무조건 전역변수이다.) 지역 스코프(local scope) 코드 내 특정 영역에만 활동 및 접근이 ..

    [DeepDive] 1~10장 필요 내용 정리

    데이터 타입이 필요한 이유 값을 저장할때 확보해야하는 메모리 공간의 크기를 결정하기 위해서(변수의 타입에 따라 확보해야할 메모리 공간의 크기가 결정됨) 값을 참조할 때 한 번에 읽어 들여야 할 메모리 공간의 크기를 결정하기 위해서 메모리에서 읽어 들인 2진수를 어떻게 해석할지 결정하기 위해서 동적 타이핑 자바스크립트 변수는 선언이 아닌 할당에 의해 타입이 결정(타입 추론)된다. 그리고 값의 재할당으로 인해 변수의 타입은 동적으로 변할수 있는데, 이러한 특징을 동적 타이핑이라고 한다. 통적 타입 언어는 유연하지만, 신뢰성이 떨어지므로 동적 타입 언어의 변수 사용시 다음과 같은 주의사항이 필요 변수는 필요한 만큼, 최소한으로 유지 스코프는 최대한 좁게 만들어 사용 전역변수 기피 변수보다는 상수를 사용하여 값..