let a = 3 //const는 재할당이 불가능하여 let 사용
a+=2
console.log(a)
5
let a = 3
console.log(a++) //연산자가 뒤에 있을때
console.log(a)
3
4
let a = 3
console.log(++a) //연산자가 앞에 있을때
console.log(a)
4
4
console.log(!0) //true 출력
const a = 1
const b = 3
console.log(a === b) //false 출력
console.log(a !== b) //true 출력
: null이나 undefined는 넘어가고 그외 모든 데이터는 만나자마자 반환
(단, null이나 undefined이 마지막 데이터라면 반환함)
const n = 0
const num = n ?? 7
console.log(num) //0출력
조건 ? 참 : 거짓
function getAlert(message) {
return message ? message :'메시지 없음'
}
console.log(getAlert('안녕')) //'안녕' 출력
console.log(getAlert(' ')) //'메시지 없음' 출력
const a = [1, 2, 3]
const b = [4, 5, 6]
const c = a.concat(b)
console.log(c) //[1,2,3,4,5,6] 출력
const d = [...a, ...b]
console.log(d) //[1,2,3,4,5,6] 출력
const a = [x: 1, y: 2]
const b = [y: 3, z: 4]
const c = Object.assign({}, a, b)
console.log(c) //{x: 1, y: 3, z: 4} 출력
const d = {...a, ...b}
console.log(d) //{x: 1, y: 3, z: 4} 출력
function fn(x, y, z) {
console.log(x, y, z)
}
fn(1, 2, 3) //1 2 3 출력
const a = [1, 2, 3]
fn(...a) //1 2 3 출력
논리/산술연산자는 생략,,
: 배열/객체 데이터 구조를 분해하여 각 변수에 개별적으로 데이터 할당
const arr = [1, 2, 3]
const [a, b, c] =arr
console.log[a, b, c] //1 2 3 출력
let a = 0 //재할당 가능한 let 사용
let b = 0
let c = 0
const arr = [1, 2, 3]
;[a, b, c] = arr //앞 명령이 끝나지 않아서 세미콜론으로 시작
console.log(a, b, c)
let b = 0
let c = 0
const arr = [1, 2, 3]
;[, b, c] = arr //쉼표는 그대로 두어 b,c는 순서에 맞게 할당 되도록 함
console.log(b, c) //2 3 출력
const obj {
a: 1,
b: 2,
c: 3
}
const {a, b} = obj //a와 b만 꺼내씀, 배열과 달리 순서를 맞추지 않아도 됨
console.log(a, b) //1 2 출력
const obj {
a: 1,
b: 2,
c: 3,
y: 4
}
const {x = 4, a: tbz, y: sw = 10} = obj //값, 변수 이름 바꾸기 가능
console.log(x, tbz, sw) //4 1 10 출력
const arr = [1, 2, 3] //배열에서
const [a, ...rest] = arr //rest는 변수명으로 다른 이름 가능
console.log(a, rest) //1 [2, 3] 출력
const obj { //객체에서
a: 1,
b: 2,
c: 3,
y: 4
}
const {c, ...rest} = obj
console.log(c, rest) //3 {a: 1, b: 2, y: 4} 출력
: 에러발생을 방지하는 예외처리 방법 중 하나로 꼭 필요할때만 사용하기
const user = null //혹은 undefined인 경우
console.log(user?.name) //undefined 출력
-> 물음표의 앞쪽에 있는 데이터가 점표기법을 사용할 수 없는 데이터인 경우에도 에러 없이 undefined 출력하도록함
const userA = {
name: 'ksw',
age: 25,
address: {
country: 'Korea'
city: 'Seoul'
}
}
const userB = {
name: 'jcm'
age: 26
}
function getCity(user) {
return user.address?.city //선택적체이닝 사용
}
console.log(getCity(userA)) //Seoul 출력
console.log(getCity(userB)) //undefined 출력
function getCity(user) {
return user.address?.city || '주소없음' //또는 연산자 사용
}
console.log(getCity(userA)) //Seoul 출력
console.log(getCity(userB)) //주소없음 출력
조건문 생략,,
for (let i = 9; i> -1; i -= 1) {
if (i<4) {
break
}
console.log(i) //9부터 4까지 차례로 출력
}
for (let i = 9; i> -1; i -= 1) {
if (i%2 === 0) {
countinue
}
console.log(i) //9부터 1사이 홀수만 차례로 출력
const tbz = ['ksw', 'jcm', 'kyh']
for (const member of tbz) {
console.log(member) //tbz 배열안 아이템 차례로 출력
}
const user = {
name: 'ksw',
age: 25,
isValid: true
}
for (const key in user) {
console.log(key) //name age inValid 출력
console.log(user[key]) //키 속성 모두 출력
}
while문 생략,,