1. 데이터 타입 확인
string
: 문자 데이터
number
: 숫자 데이터
boolean
: 참/거짓
undefined
: 의도하지 않은 빈 데이터
null
: 의도한 빈 데이터
object
: 객체 데이터 (null, {}, [] 형식은 객체 데이터)
function getType(data) {
return Object.prototype.toString.call(data).slice(8, -1)
}
console.log(getType(123))
console.log(getType(false))
console.log(getType(null))
console.log(getType(undefined))
console.log(getType([]))
console.log(getType({}))
2. 연산자
2.1 산술 연산자(arithetic operator)
+
: 덧셈
-
: 뺄셈
*
: 곱셉
/
: 나눗셈
%
: 나머지 연산
2.2 할당 연산자(assignment operator)
=
(const는 재할당 불가, let은 재할당 가능)
a = a + 1
= a += 1
- 모든 산술 연산자에 대해 사용 가능
2.3 비교 연산자(comparison operator)
===
: 일치 연산자
!==
: 불일치 연산자
>
, <
, >=
, <=
2.4 논리 연산자(logical operator)
3. 삼항 연산자
반환 값 ? [True 값] : [False 값]
const a = 1 < 2
if(a) {
console.log('참')
}
else{
console.log('거짓')
}
console.log(a ? '참' : 거짓)
4. 조건문
4.1 if else
if (a === 0) {
console.log('a is 0')
} else if (a === 2) {
console.log('a is 2')
} else {
console.log('rest...')
}
4.2 Switch
switch (a) {
case 0:
console.log('a is 0')
break
case 1:
console.log('a is 1')
break
case 2:
console.log('a is 2')
default:
}
5. 반복문
const ulEl = document.querySelector('ul')
for (let i = 0; i < 10; i += 1) {
const li = document.createElement('li')
li.textContent = `list-${i + 1}`
if (i % 2) {
li.addEventListener('click', function () {
console.log(li.textContent)
})
}
ulEl.appendChild(li)
}
6. 변수의 유효범위
function scope() {
if (true) {
const a = 123
}
console.log(a)
}
scope()
- 변수는 선언됐을 때, 해당 블록을 유효 범위로 가진다.
a
는 if
구문 안에서만 유효하다.
- 변수는 사용하기 이전에 선언해야 한다.
var
은 함수 레벨에서 유효범위가 정해지고 let, const
는 블록 단위로 유효 범위를 가진다. 즉, var
은 의도하지 않은 부분에서 사용될 수 있다. 유지 보수를 생각하면 var
보단 let
,const
를 사용하는 것이 좋다.
7. 형변환
==
: 동등연산자. 일치 연산자와 다르게 형이 달라도 true가 나올 수 있다.
7.1 Truthy 와 Falsy
Truthy | Falsy |
---|
true, {}, [], 1, 2, 'false', -12 등 | false, '', null, undefined, 0, NaN |
- 데이터의 형태에 따라
true
가 될 수도, false
가 될 수도 있다.