Javascript - 변수와 자료형

Bloooooooooooooog..·2023년 2월 25일
0

var, let, const

자바스크립트는 자바와는 다르게 변수 선언을 자료형을 두지 않고 유연하게 둔다. var의 경우 과거에 많이 쓰이던 변수 선언 방식인데 여러 가지 문제점이 있어 현재에는 let과 const를 위주로 사용하고 있다.

 // var 의 문제

-- script 파일 내부 -- 

var num1; // 전역변수
num2 // 전역변수

function fn(){
  var num3; //지역변수
  var num1; // 변수의 중복 선언
  num4 // 전역변수
  if{
    var num5; // 지역변수 (function 내부에서 전부 사용)
    num6; //전역변수
  }
}
  

Java만 공부하다가 넘어온 사람들은(나를 포함) var의 유연성과 줏대 없음에 놀랄 것 같다.
일단 Javascript에서 변수 선언 방식을 붙이지 않고 선언한 변수는 스크립트 내부에서 자유롭게 사용 가능한 전역 변수가 된다.

물론 당연하겠지만 이런 방식으로 변수를 선언하는 것은 피하는 것이 좋다.

var의 문제

  • var는 함수 내부에 있는 if문과 같은 블록 안에서 선언이 되어도 함수 전체에서 사용이 가능하다.

  • 변수 선언 이후 또 다시 변수를 선언해서 재정의해도 된다.

이러한 유연한 특징이 어떤 코드를 짤 때는 자유로울 수 있지만, 코딩을 할수록 불분명하고 모호한 부분을 쌓아가게 된다.

let과 const의 경우

let은 이런 var의 단점을 극복한 방식이다. let은 변수명을 중복할 수 없고, 블록레벨({})에서 유효한 범위를 지닌다. 자바나 다른 프로그래밍 언어를 공부하였다면 쉽게 이해할 수 있을 것이다.

const의 경우 변수가 아닌 상수 선언 방식이다. 자바스크립트는 스크립트 언어로 html 내부에서 동작하는 경우가 많기 때문에 상수로 지정한 값을 고정적으로 사용하는 경우가 많다. 따라서 자바스크립트는 1순위로 const를 중요하게 생각한다.

Javascript의 자료형

JS는 변수 선언 시 자료형을 지정하지 않는다. 리터럴에 따라 유연하게 자료형이 결정된다. 자바스크립트는 6개의 자료형이 있다.

  • String : 문자열("aa", 'aa') => 큰따옴표와 작은따옴표 모두 사용 가능
  • number : 숫자(실수, 정수 모두 포함)
  • boolean :논리값 (true/false)
  • object : 객체/배열 (K:V로 이루어진 *JS객체 또는 배열)
  • function : 함수
  • undefined : 자료형이 정해지지 않은 변수

cf) JS 객체 : Key와 Value 쌍으로 이루어진 자바스크립트의 객체로 Key는 무조건 문자열이며 Value의 경우 자료형이 상관없다.

// JS객체 선언
const jsObject = {"id" : "junsu", "pw" : 1234, "hobby" : ["게임", "넷플릭스", "음악"]}

// 이처럼 Key에는 string형태 Value에는 문자열, 숫자, 배열 등 상관없이 구성할 수 있다.

cf) null : null은 참조하는 게 없음을 나타내는 리터럴로 자료형이 아니다.

profile
공부와 일상

0개의 댓글