JavaScipt의 변수 선언에는 3가지 방법이 있다.
//변수를 선언. 추가로 동시에 값을 초기화.
var name = '홍길동';
//블록 범위(scope) 지역 변수를 선언. 추가로 동시에 값을 초기화.
let name = '홍길동';
//블록 범위 읽기 전용 상수를 선언.
const name = '홍길동';
지정된 초기값 없이 var 혹은 let 문을 사용해서 선언된 변수는 undefinded 값을 갖는다.
선언되지 않은 변수에 접근 시 ReferenceError 예외가 발생한다.
어떤 함수의 바깥에 변수를 선언하면, 현재 문서의 다른 코드에 해당 변수를 사용할 수 있기에 전역 변수라고 한다. 만약 함수 내부에 변수를 선언하면, 오직 그 함수 내에서만 사용할 수 있기에 지역 변수라고 부른다.
JavaScript는 동적 형지정(정형) 언어입니다. 이는 변수를 선언할 때 데이터 형을 지정할 필요가 없음을 의미합니다. 또한 데이터 형이 스크립트 실행 도중 필요에 의해 자동으로 변환됨을 뜻합니다. 그래서, 예를 들어, 다음과 같이 변수를 정의할 수 있습니다.
//다른 언어와 달리 변수를 선언할 때 데이터 타입을 입력해 주지않는다
var answer = 42;
answer = 'something';
숫자와 문자열 값 사이에 + 연산자를 포함한 식에서, JavaScript는 숫자 값을 문자열로 변환합니다. 예를 들어, 아래와 같은 문이 있습니다.
let text = 'somthing' + 42;
console.log(text); //결과값 = somthing42
문자열이 숫자로 되어있는 변수를 참조하여 - 식으로 연산할수있다.
이처럼 +는 단순히 문자열로 뒤에 추가가 되지만 -,*,/ 는 숫자로 인식되어 계산된다.
데이터타입이 다르지만 error를 발생시키지 않는다.
//text의 데이터 타입은 string
let text = '43';
//result의 연산에서 string - number로 연산해도 error가 발생하지 않고 number type으로 변수에 할당된다.
let result = text - 3;
console.log('text의 데이터 타입은 '+typeof(text), 'result의 데이터 타입은 ' + typeof(result) , 'result의 값은 '+ result);
//결과값 text의 데이터 타입은 string, result의 데이터 타입은 number, result의 값은 40
참고 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Values,_variables,_and_literals