Javascript의 특징 ?(1)
느슨한 타입(loosely typed)의 동적(dynamic) 언어
자바스크립트를 배운 지 얼마 안 됐지만, 알고리즘 문제를 풀면서 가장 어이없던 풀이에
문자열과 정수를 더할 수 있다거나 문자열을 정수로 만들 때 1을 곱하거나 나눠준다던가 하는 것들이다.
C는 변수 선언할 때 자료형은 꼭 짚고 넘어가는 부분이었는데, 물론 자료형이 없는 것은 아니지만
자바스크립트에서는 변수 선언할 때 자료형을 정해주지 않아도 된다.
변수에 저장되는 값의 타입을 언제든지 바꿀 수 있는 언어를 동적 언어, 느슨한 타입이라고 한다.
그래서 딱히 형 변환을 한다는 느낌보다 집어넣는 대로 그 변수의 타입을 결정한다.
🧐 느슨한 타입이라서 문제점?
아래에서도 같은 내용이 쓰이겠지만 , 자바스크립트 특성상 자동형 변환을 하게 되니 현업에서 일하시는 분들의 글들을 살펴보니 어디서 어떤 에러가 나올지 모른다고 한다. 그러므로 명시적으로 형 변환을 해주는 게 좋다고 한다.
이 놈이 아무나 좋다고 끌어안을 때 안된다고 커트✂️해줄수있어야 한다.
== , ===
처음 C언어를 배울 때 = 은 같다는 뜻이 아니라 대입 연산자고 ==을 써야 같다는 논리 연산인 게 낯설었는데,
자바스크립트에서는 === 이 같다는 뜻이라니. 주변에 코딩의 코도 들어본 적 없는 사람들은 = 이 분명 같다일 텐데
세 번이나 써야 같다는 걸 알면 왜 그래야 하냐고 따질 수도 있을 거 같다.(물론 == 을 써도 얼추 같다는 표현이긴 하다.)
- ==은 연산자를 이용하여 서로 다른 유형의 두 변수의 값 비교.
- ===은 값과 자료형까지 비교한다.
이러한 이유 때문에 자바스크립트에서는 ===를 쓰는 것이 권장된다.
동적 언어의 특징 때문에 정해져 있지도 않은 변수의 자료형이 이랬다 저랬다 난리를 치니까 확실히 짚고 넘어가는 게 좋다.