자바스크립트에서의 변수, 상수의 개념은 기본적인 프로그래밍 개념과 크게 다르지 않다. 변수는 값을 자유롭게 저장할수 있는 값이다. 간단히 말하면 데이터를 저장하는 그릇이다. 상수는 한번 지정하면 바뀌지 않는 값을 말한다.
예시 birtday / birthDay
자료형은 컴퓨터가 데이터를 처리하는 자료의 형태를 말한다. 마찬가지로 자바스크립트도 기본적인 프로그래밍 개념에서의 자료형과 크게 차이는 없다. 자료형은 기본형과 복합형 크게 두가지로 나뉜다.
자바스크립트에서는 정수, 실수 모두 number 타입으로 지정한다. 다른 자료형들은 일반적인 개념과 비슷하지만 자바스크립트에서는 undefined와 null은 조금 다른 부분이 있다.
undefined
는 자료형이 정의되지 않았을때의 상태이다. 자바스크립트에서는 변수에 값을 할당할때 해당 값을 보고 변수의 자료형을 설정한다. 그렇기에 undefined
상태는 변수에 값이 할당되지 않았다는 뜻이다. undefined
라는 자료형 자체는 존재하지 않는다.
null
은 처음에 할당된 값이 더는 유효하지 않음을 뜻한다. 이는 undefined
와는 조금 다른 개념이다. undefined
는 처음부터 값이 설정되지 않은 상태이고 null
은 중간에 변수의 값을 없앤상태, 초기화 상태를 말한다. 쉽게 말하면 값을 설정했다가 지운상태가 null
이다.
배열은 하나의 값이 아닌 복수의 값을 저장하는 자료형을 말한다. 자바스크립트에서는 배열은 특별히 특정 자료형으로 지정하지 않고 각 인덱스마다 자유롭게 값을 저장하는 것이 가능하다. 배열을 선언할 때는 대괄호를 이용한다.
객체는 객체지향 프로그래밍에서의 객체로 다양한 데이터들을 하나로 묶어서 그룹화 한 자료형을 뜻한다. 객체에서 자료들을 저장할때는 key와 value 형식으로 저장한다. key:value
자바나 c언어 같은 언어에서는 변수에 데이터를 저장할 때 할당전에 미리 자료형을 지정하여 저장을 한다. 그렇기에 변수의 타입과 데이터의 타입이 맞지 않으면 저장할수가 없다. 하지만 자바스크립트 에서는 변수자체에 타입을 지정하지는 않는다. 데이터를 할당하는 순간에 해당 데이터의 자료형에 맞춰서 변수의 자료형도 결정한다. 이처럼 c언어, 자바와 같이 자료형을 미리 지정해야하는 방식을 강력한 자료형 체크(Strong Data Type Check) 라고 한다. 반대로 자바스크립트 처럼 자유롭게 변수에 데이터를 저장하는 것이 가능한 방식을 느슨한 자료형 체크(Weak Data Type Check) 라고 한다.
자바스크립트 연산자는 일반 프로그래밍 언어의 연산자와 다르지 않다.
증감연산자는 변수 뒤에 ++나 --를 붙여서 해당 변수의 값을 1을 더하거나 빼는 연산자이다. 증감연산자는 피연산자 뒤에 있을때는 모든 수식계산이 끝나고 마지막에 적용이 된다. 앞에 있을경우는 전체 수식계산이 시작 되기 전에 먼저 처리가 이루어진다.
자바스크립트에서는 문자형 간의 연결을 + 연산자를 이용해서 연결한다. 이때 숫자형와 문자형을 연결하면 숫자를 자동으로 문자열로 변경하여 연결한다. 반대로 -연산자를 이용할때는 문자를 자동으로 숫자형으로 변경하여 빼기 연산을 실행한다. 이처럼 자바스크립트는 연산자에 따라서 자동으로 형변환을 하여 처리하므로 프로그래머가 신경써야한다.
값이 같은지 다른지를 비교할때 사용되는 연산자이다. ==연산자와 ===연산자 두가지가 있다. 차이점은 ==연산자는 값은 같지만 자료형이 다를 경우, 자료형을 자동으로 변환하여 값을 비교한다. ===연산자는 데이터 말고도 자료형도 비교하여 자료형과 데이터 모두를 비교한다. ==연산자를 이용시 자료형에 주의하여야 한다.
'100' == 100 // true
'100' === 100 //false