목차
변수와 값(Values, Variables)
let firstName = "Jonas";
let
으로 선언- camelCase 사용
- 변수명으로 예약어 사용 불가 (e.g.
name
) - 변수명 숫자, uppercase로 시작하지 않도록
7가지 주요 데이터 타입(Data Types)
- Number
- decimals, integers
- String
- Boolean
true
offalse
- Undefined
- 변수 선언(e.g.
let year;
) 후 아직 값을 지정하지 않음 - empty value
- 변수 선언(e.g.
- 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