Javascript에 관한 정리.

Javascript를 조금씩 사용하고 있는데, 쓰면 쓸수록 어려운 언어같은 느낌이 듭니다.

책이나 다른 블로그를 보면서 찾아본 내용을 조금씩 정리합니다.


==와 === 연산자의 올바른 사용.

==와 === 연산자는 비교하는 연산자이지만, 사용법이 약간 다릅니다.


1. == 연산자는 인자들이 서로 다른 데이터형일때, 일련의 혼동스러운 암묵적인 강제 형변환을 적용시키니다.

2. === 연산자는 비교가 어떠한 암묵적인 강제 형변환과도 연관이 없이 이루어지게 합니다.

3. 비교할 값이 서로 다른 데이터형이라면 프로그램의 동작을 더 명백히 하기 위해 직접 명시적인 강제 형변환을 사용해야 합니다.

(출처 : Effective Javascript Item5)


JS에는 강제 형변환 규칙을 가지고 있기 때문에 이와 같은 사항에 대해서 알고 사용해야할것 같습니다.


변수 스코프의 결정

다른 언어에서는 블록 단위의 스코프를 사용하여 변수를 선언할 수 있지만,

JS에서는 블록으로 스코프를 정하는 것이 아니라 자신을 포함하는 함수에 의해서 정의된다.


JS 변수 선언은 선언과 할당으로 나누어서 처리된다. 암묵적으로 둘러싼 함수의 맨 윗부분으로 선언을 끌어올리고, 할당 부분은 그 자리에 그대로 둔다.  즉, 동일한 함수 내에서 같은 변수를 여러번 정의하는 것은 허용되지 않는다. 변수는 한번만 정의되며, 할당을 여러번 하게 되는것이다.


이러한 규칙에서 예외로, exception에서는 블록 스코프를 지원하여 exception을 잡아 변수로 바인딩하고 이 변수는 catch 블록 안에서만 스코프가 적용된다.

(출처 : Effective Javascript Item12)