javascript 데이터타입 (let,const,var) 변수타입

Subin Ryu·2024년 8월 21일

데이터 타입(data type)

let

  • 변수 mutable

var (r/w)

  • 변수 mutable
  • 호이스팅
  • {}괄호 안에 선언해도 접근가능
  • 문제가 많으므로 사용하지 마라

const (read only) (r/w)

  • 상수 immutable
  • 한번 정의하면 변경 불가능
  • 가능하면 const 사용 - 변경시킬 수 없어서 안전함 해커 값 변경 스레드 동시 값 변경 실수 방지

let과 var은 variable 로 read와 write가 가능하지만 const는 read만 가능

변수타입(variable type)

primitive, single item: number, string, boolean, null, undefined, symbol

object, box container

functionm first-class function

  • number: 숫자
    특별한 숫자 값 - Infinity, -Infinity, NaN(숫자가 아닌 경우)

  • string: 문자나 문장
    string끼리 더하면 이을 수 있지만 백틱을 이용한 templete literals(string)을 더 많이 씀
const name = 'ryucandoit'
console.log('hello '+name); // hello ryucandoit
console.log(`hello ${ryucandoit}`); // hello ryucandoit
  • boolean: 참과 거짓
    false - 0, null, undefined, Nan, ''
    true - 아무 값

null과 undefined 차이: null은 값에 null이라고 할당, undefined은 선언은 되었지만 값이 없는 상태

const a = null; // null
const b; // undefined
  • symbol: 고유한 식별자가 필요할 경우 사용
const symbol1 = symbol("a");
const symbol2 = symbol("a");
console.log(symbol1 === symbol2); // fasle
//같은 심볼을 만들려면
const symbol3 = Symbol.for("a");
console.log(symbol1 === symbol3); // true
// 심볼 값 출력할땐 description 사용해야 함
console.log(symbol3.description); // a
  • object: 객체
const person = {name:ryucandoit, job:"programmer"}
// 상수로 정의된 person은 변경할 수 없지만 그 안에 정의된 변수 name과 job은 변경 가능
person.name = "cadoit";
person.job = "developer";
console.log(`name: ${person.name}`); // name: candoit
console.log(`job: ${person.job}`); // job: developer

primitive type은 값이 메모리에 저장되고 object는 object가 담겨있는 reference가 메모리에 저장 됨

profile
개발블로그입니다.

0개의 댓글