본문 바로가기
독서/자바스크립트 완벽 가이드

1부 3장 - 타입, 값, 변수

by proudofch 2021. 1. 6.

여기까지 읽어보니 개발하면서 필요한 부분을 찾아보기에 좋은 기본서라는 생각이 든다.

정리하기엔 방대하고 또 다른 하는 일이 많아서... 계속 인상 깊은 부분만 기록해본다.

 

 

1. 자바스크립트의 산술 연산은 오버플로우와 언더플로우, 0으로 나누는 에러를 발생시키지 않는다. 대신 (±)Infinity라고 표현하는 무한대의 값을 출력한다.

 

2. 엄격한 동치연산자 ===이 존재한다. (null과 undefined를 구별하고 싶다면 이를 사용할 것)

 

3. 함수 유효범위와 끌어올림(hoisting) - 책 66~67쪽

- 자바스크립트에는 블록 유효 범위(block scope)라는 개념이 없다. 대신 함수 유효범위(function scope)를 사용한다.

- 이 함수 유효 범위는, 어떤 함수 안에서 선언된 모든 변수는 그 함수 전체에 걸쳐 유효하다는 뜻이다. 이는 변수가 미처 선언되기도 전에 유효하다는 뜻이기도 하다. 이런 자바스크립트의 특징은 비공식적으로 끌어올림(hoisting)이라고 알려져 있다.

var scope = "global";
function f() {
    console.log(scope); // undefined 출력 (함수 유효 범위 때문이다.)
    var scope = "local";
    console.log(scope); // local 출력
}

- 지역 변수는 함수 전체에 걸쳐서 정의된다. 즉, 같은 이름의 전역 변수는 함수 전체에서 이 지역 변수에 의해 감춰진다.

- 지역 변수가 함수 전체에 걸쳐 정의되었더라도 var문이 실행되고 나서야 실제로 초기화된다. 그래서... 

function f() {
    var scope; // 이렇게 변수 선언이 함수 꼭대기로 끌어올려(hoisted)진다.
    console.log(scope); // undefined. 아무것도 할당되지 않았다.
    scope = "local";
    console.log(scope); // local 출력
}

 이렇게 됨

 

언어가 정말... 느슨하다;

그리고 비교 대상이 자바뿐이라 뭔가 이상함... 그냥 다르다고 받아들여야겠지만...ㅎㅅㅎ;

'독서 > 자바스크립트 완벽 가이드' 카테고리의 다른 글

1부 2장 - 어휘 구조  (0) 2020.12.31

댓글