나 노래 못한다.
원시 객체
const json = {
a: 'a',
b: 'b'
}
다들 JSON으로 알고 있고, 많이 쓰잖아. Java나 여타 언어의 Map
역할을 보통 하지만 이제 자스에서도 Map
이 생겼다.
분해 구조 할당
const { a, b } = {
a: 'a',
b: 'b'
}
요츰 이게 있어서 요소 딱 잡아서 변수나 상수(?) 잡는거 편하지? 배열도 분해 구조 할당도 되고 말이야.
스코프
자, 이 글의 주인공이다.
함수
함수는 2가지 문법이 생겼어.
하나는 일반적인 함수 문법으로, 컨텍스트 독립이 보장되지.
function func() {
console.log('function call!')
}
그리고 또 하나는 화살표 함수라 하여 람다 문법이라고도 하고, 이녀석은 컨텍스트를 유지할 수가 있어.
const func = () => {
console.log('function call!')
}
반복문
for ( ... ) {
...
}
while ( ... ) {
...
}
do {
...
} while ( ... )
조건문
if ( ... ) {
...
}
else if ( ... ) {
...
}
else {
...
}
레이블
label: {
for ( i ...) {
for ( j ... ) {
if ( ... )
break label;
...
}
}
}
label2: {
if ( ... ) {
break label2;
}
...
}
주로 이렇게들 쓸 거야. 난 label2
같은 구문도 좀 쓴다. 좀... 쓰지.
플레인
내가 좀 변태일 수도 있어. 아예 중괄호로만으로도 식을 쓸 수도 있지.
let a = 'a'
{
let a = 'b'
// ...
}
console.log(a)
마치 맛대가리 없는 플레인 요구르트 먹듯이 말이야.
일종의 프로시저라 보면 되는 거지.
비동기 안 될 것 같다고? 아니
(async (log) => {
log('wait a second...')
let a = await new Promise(r => setTimeout(() => r('1 second'), 1000))
{
let a = await new Promise(r => setTimeout(() => r('2 seconds'), 2000))
log('2 seconds', a)
}
log('1 second', a)
})(console.log)
자네도 중괄호 세계에 빠져보지 않겠나?
초창기 자바에서 가져온 거 아니랄까봐 스코프 문법은 지 양아비 쏙 닮았지?
그래도 정의를 정확하게 아는 것이 중요하지.
끗.
Top comments (0)