Javascript를 스터디를 통해 기초부터 다시 차근차근 공부하게 되었다.
모던 자바 스크립트 Deep Dive라는 책과 구글링을 통해 공부하고 중요한 부분을 블로그 작성하는 방식으로 하게 되었고
내가 오늘 적게 될 내용은 제목에서 봤다싶이 JavaScript 동적 타이핑이다.
1-1. 동적 타입 언어와 정적 타입 언어
자바스크립트는 정적 타입 언어와 다르게 변수를 선언할 때 타입을 선언하지 않는다.
다만 var, let, const 키워드를 사용해 변수를 선언할 뿐이다.
자바스크립트의 변수는 정적 타입 언어와 같이 미리 선언한 데이터 타입의 값만 할당할 수 있는것이 아니다.
어떠한 데이터 타입의 값이라도 자유롭게 할당할 수 있다.
typeof연산자는 연산자 뒤에 위치한 피연산자의 데이터 타입을 문자열로 반환한다.
ex)
<script> var foo; console.log(type of foo); //undefined foo = 3; console.log(type of foo); // number foo = 'Hello'; console.log(type of foo); // string foo = true; console.log(type of foo); // boolean foo = null; console.log(type of foo); // object foo = Symbol(); console.log(type of foo); // symbol foo = {}; console.log(type of foo); // object foo = [] console.log(type of foo); // object foo = function(){}' console.log(type of foo); // function </script>
typeof 연산자로 변수를 연산하면 변수의 데이터 타입을 반환한다.
자바스크립트의 변수에는 어떤 데이터 타입의 값이라도 자유롭게 할당할 수 있으므로 정적 타입 언어에서 말하는 데이터 타입과 개념이 다르다.
정적 타입 언어는 변수 선언 시점에 변수의 타입이 결정되고 변수의 타입을 변경할 수 없다.
자바스크립트의 변수는 선언이 아닌 할당에 의해 타입이 결정된다. 그리고 재할당에 의해 변수의 타입은 언제든지 동적으로 변할 수 있다.
이러한 특징을 동적 타이핑이라고 하며,
자바스크립트를 정적 타입 언어와 구별하기 위해 동적 타입 언어라 한다.
대표적인 동적 타입 언어로는 JavaScript, Python,PHP 등이 있다.
1-2. 동적 타입 언어와 변수
동적 타입 언어는 변수에 어떤 데이터 타입의 값이라도 자유롭게 할당할수 있다.
모든 소프트웨어 아키텍처에는 트레이드오프가 존재하며, 모든 애플리케이션에 적합한 은 탄환은 없듯이 동적 타입 언어 또한 구조적인 단점이 있다.
끝으로 책 마지막 부분 좋은 글이 있어 적고 마무리 하겠다.
코드는 오해하지 않도록 작성해야한다. 오해는 커뮤니케이션을 어렵게 하는 대표적인 원인으로 생산성을 떨어뜨리는 것은 물론 팀의 사기까지 저하시킨다. 코드는 동작하는 것만이 존재 목적은 아니다. 코드는 개발자를 위한 문서이기도 하다. 따라서 사람이 이해할 수 있는 코드, 즉 가독성이 좋은 코드가 좋은 코드다