어떤 언어든 변수의 존재가 없을 수 없다.
변수와 함수의 존재로 인해 프로그래밍 언어라는 카테고리에 들어가게 되기 때문이다.
당연히 자바스크립트도 프로그래밍 언어에 속하기 때문에, 변수를 가진다.
자바스크립트 변수 키워드는 본래 var이 전부였는데,
ES6으로 넘어오면서 let변수와 const변수가 생성되었다.
1 2 3 4 | int a = 0; int a = 2; // Error b = 1; // Error | cs |
대부분의 프로그래밍 언어들은 선조 격인 C언어의 구조와 방식을 많이 차용했기 때문에 위와 비슷한 결과를 초래한다.
선언 키워드 (int) 를 붙인 a를 두번 선언해도 오류가 발생하고,
키워드를 붙이지 않고 b를 선언해도 오류를 뿜는다.
이는 웹 사이드 언어가 아닌 프로그램 사이드 언어들이 꽤나 까다로운 변수 룰을 갖고있기 때문이었다.
이런 점에서 자바스크립트는 매우 유연하다는 특징때문에 초보자들이 처음 프로그래밍을 배울때 자바스크립트로 시작하기에 좋다.
물론 그런 이유때문에 갖은 문제들도 발생한다.
1 2 | var i="sjwjs"; var i="sjwj"; | cs |
var은 자바스크립트가 욕을 오지게 먹는 이유중 하나였다.
변수를 선언하는 유일하고도 기본적인 키워드가 질타의 원인이 된다는 점은 꽤나 웃긴 일이었는데,
보이는것처럼 같은 이름의 변수를 두번이나 선언했는데 에러가 나지 않는다.
이는 굳이 선언문을 붙이지 않고도 변수를 선언할 수 있는 자바스크립트의 특성이 가져온 문제로 추측된다.
위에서 언급했듯이, 변수 선언문은 var 이외에도 let, const가 존재한다.