본문 바로가기
JavaScript/모던자바스크립트

06장 동적 타이핑

by sophia02 2022. 7. 19.

자바스크립트의 모든 값은 데이터 타입을 가진다

C나 자바와 같은 정적타입언어는 변수를 선언할 때 데이터 타입을 사전에 선언해야 한다(명시적 타입 선언)

ex) int num;  char c;

 

정적타입 언어는 변수의 타입을 변경할 수 없고, 변수에 선언한 타입의 맞는 값만 할당이 가능하다

 

그러나 자바스크립트는 정적 타입 언어와 다르게 변수를 선언할 때 타입을 선언하지 않고 var, let, const 와 같은 키워드를 사용해 변수를 선언한다.

- 자바스크립트는 선언한 데이터 타입의 값만 할당할 수 있는 것이 아니라 어떠한 데이터 타입의 값이라도 자유롭게 할당할 수 있다

- 변수는 선언이 아닌 할당에 의해 타입이 결정되며, 재할당에 의해 변수 타입은 언제든지 동적으로 변할 수 있다

→ 이러한 특징을 동적 타이핑이라고 부르며, 자바스크립트는 동적 타입 언어이다

 

- 자바스크립트는 엔진에 의해 암묵적으로 타입이 자동적으로 변환되기도 한다

→ 잘못된 예측으로 인해 프로그램은 오류가 날 가능성이 매우 높아진다

따라서 주의가 필요하다. 주의는 아래와 같다


❌주의 사항❌

1.변수는 꼭 필요한 경우에 한해 제한적으로 사용한다

- 값은 재할당에 의해 언제든지 변경될 수 있으므로 동적 타입 언어인 자바스크립트는 타입을 잘못 예측해 오류가 발생할 가능성이 높아진다

→ 변수의 개수가 많으면 많을수록 오류가 발생할 확률도 높아지게 되기 때문이다

 

2. 변수의 유효 범위는 최대한 좁게 만들어 변수의 부작용을 억제해야 한다

- 변수의 유효 범위가 넓으면 넓을수록 변수로 인해 오류가 발생할 확률이 높아지기 때문이다

 

3. 전역변수는 최대한 사용하지 않도록 한다

- 어디서든지 참조, 변경이 가능한 저너역변수는 의도치 않게 값이 변경될 가능성이 크고, 다른 코드에 영향을 줄 가능성도 높다

→  복잡성을 증가시키며 처리 흐름을 추적하기 어렵게 만들고, 오류의 원인을 특정하기 어렵게 만들기 때문이다

 

4. 변수보다는 상수를 사용해 값의 변경을 억제한다(const를 사용하자)

 

5. 변수 이름은 변수의 목적이나 의미를 파악할 수 있도록 네이밍한다

- 변수 이름 뿐만아니라 모든 식별자는 존재 이유를 파악할 수 있는 적절한 이름으로 지어야 한다

→ 식별자의 유효 범위가 넓을수록 명확한 이름을 명명해야 한다

→  개발자의 의도를 나태내는 명확한 네이밍은 협업과 코드의 가독성을 높혀주기 때문이다

 

'JavaScript > 모던자바스크립트' 카테고리의 다른 글

06장 데이터 타입  (0) 2022.07.19
05장 표현식과 문  (0) 2022.07.17
자바스크립트 - 4장 변수  (0) 2022.07.10