자바스크립트 변수 선언자(let, const, var), 데이터 타입, 연산자

변수와 값(Values, Variables)

let firstName = "Jonas";
  • let 으로 선언
  • camelCase 사용
  • 변수명으로 예약어 사용 불가 (e.g. name)
  • 변수명 숫자, uppercase로 시작하지 않도록

7가지 주요 데이터 타입(Data Types)

  • Number
    • decimals, integers
  • String
  • Boolean
    • true of false
  • Undefined
    • 변수 선언(e.g. let year;) 후 아직 값을 지정하지 않음
    • empty value
  • Null
    • empty value
    • console.log(typeof null);
      • object로 나옴
  • Symbol(ES2015)
    • unique, cannot be changed
    • not useful for now
  • Bigint(ES2020)
    • Larger integers
  • js는 dynamic typing이 지원되기 때문에 데이터 타입을 디파인할 필요 없음
let jsisfun = true;
console.log(jsisfun);
console.log(typeof jsisfun);

jsisfun = 'yes!';
console.log(typeof jsisfun);
  • typeof operator: 데이터 타입 확인 가능
  • 이미 선언된 변수의 값을 바꿀 때는 let 사용하지 않음

변수 선언자 – let, const, var

let age = 30;
age = 31;

const birthYear = 1991;

var job = 'programmer';
job = 'teacher'
  • let
    • reassigning(mutate)이 가능
    • mutable
  • const
    • cannot be changed
    • immutable
    • initial value가 항상 있어야 함
      • const job; 선언 불가능
  • var
    • mutable
    • let과의 다른 점은 나중에

=> 실제 js 코드 작성시에는 let, const만 사용하면 됨

lastName = 'Schmedtmann';
console.log(lastName);
  • 이렇게 선언해도 작동하기는 하나, scope가 정해지지 않게 되어서 문제 발생

연산자(Operators)

const now = 2037;
const ageJonas = now - 1991;
const ageSarah = now - 2018;
console.group(ageJonas, ageSarah);

console.log(ageJonas * 2, ageJonas / 2, 2 ** 3);
  • 산술 연산자
const firstName = 'Jonas';
const lastName = 'Schmedtmann';
console.log(firstName + ' ' + lastName);
  • 문자열 concat
let x = 10 + 5;
x += 10; // x = x + 10
x++; // x = x + 1
x--; // x = x - 1
console.log(x);
  • 할당 연산자
// comparison
console.log(ageJonas > ageSarah);
console.log(ageSarah >= 19);
  • 비교 연산자

연산자 우선순위(Operator Precedence)

  • 자바스크립트 연산자 우선순위 – mdn
const now = 2037;
const ageJonas = now - 1991;
const ageSarah = now - 2018;

console.log(now - 1991 > now - 2018);

// left to right
console.log(25 - 10 - 5);

// right to left
let x, y;
x = y = 25 - 10 - 5;
console.log(x, y); // 10 10
  • Assignment: right to left

Leave a Reply

Your email address will not be published. Required fields are marked *