์ฝ์ด๋ณด๊ธฐ
์ถ๋ ฅ๋ฐฉ๋ฒ 4๊ฐ์ง
window.console.log("hello world"); document.write("hello world"); window.alert("hello world"); document.body.innerHTML = "hello world";
window
์document
์ ์ฐจ์ด์
window
๊ฐ์ฒด๋ ๋ธ๋ผ์ฐ์ ํญ์ ์กด์ฌํ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ ์ญ ์ต์์ ๊ฐ์ฒดwindow
๊ฐ์ฒด ์์document
๊ฐ์ฒด๊ฐ ์กด์ฌํ๊ณ ,document
์ ์ฌ์ ์ผ๋ก ๋ณด์ฌ์ง ์ ์๋ DOM์ ๋ํ ์ ๋ณด๊ฐ ์ ์ฅ๋์ด ์๋ค.
์๋ฐ์คํฌ๋ฆฝํธ Window / Document ๋ฌด์จ ์ฐจ์ด์ผ๊น?
์์ฑ ์ ๊ทผ์(Property accessors)
- ์ (
.
) ๋๋ ๊ดํธ([]
) ํ๊ธฐ๋ฒ์ผ๋ก ๊ฐ์ฒด์ ์์ฑ์ ์ ๊ทผํ ์ ์๋๋ก ํ๋ค.object.property object['property']
console
- console ๊ฐ์ฒด๋ ๋ธ๋ผ์ฐ์ ์ ๋๋ฒ๊น ์ฝ์(Firefox ์น ์ฝ์ ๋ฑ)์ ์ ๊ทผํ ์ ์๋ ๋ฉ์๋๋ฅผ ์ ๊ณต
- ์์ฃผ ์ฌ์ฉํ๋ ๋ฉ์๋
console.log()
: ์ผ๋ฐ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅconsole.dir()
: ์ฃผ์ด์ง JavaScript ๊ฐ์ฒด์ ์์ฑ ๋ชฉ๋ก์ ์ํธ์์ฉ ๊ฐ๋ฅํ ํํ๋ก ํ์console.error()
: ์ค๋ฅ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅconsole.table()
: ํ ํํ์ ๋ฐ์ดํฐ๋ฅผ ํ์ ๊ทธ๋ฆผ
์ฌ์น์ฐ์ฐ์ ๋ค๋ฃจ๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ด๋ฉด์๋ ๋ง์ด ์ฌ์ฉํ๋ ์ฐ์ฐ์
=> ์ผ์ชฝ ๊ฐ์ ์ค๋ฅธ์ชฝ ๊ฐ์ ์ฐ์ฐ
+
: ๋ง์
-
: ๋บ์
*
: ๊ณฑ์
**
: ์ ๊ณฑ /
: ๋๋์
์ ๋ชซ%
: ๋๋์
์ ๋๋จธ์ง
a = a + b
์ผ ๊ฒฝ์ฐ, ์a = a
๊ฐ ๋จผ์ ์ฐ์ฐ๋์ง ์๊ณa + b
๊ฐ ๋จผ์ ์ฐ์ฐ์ด ๋๋์?
์ฐ์ ์์๋ฅผ ์ธ์๋๋ ๊ฒ์ด ์ข์๊น์?
- ๊ดํธ๋ฅผ ์ฌ์ฉํ์ธ์.
- ์ค๋ฌด์์ ์๋๋ฐฉ์ด ์ฐ์ ์์๋ฅผ ์๋ ๋ชจ๋ฅด๋ ์๋๋ฐฉ์ด ์ฝ๋๋ฅผ ์ฝ๊ธฐ ์ฝ๊ฒ ์์ฑํด์ผํ๋ค.
=> ํ์ง๋ง ํ์ฌ์ ์ปจ๋ฒค์ ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด ํฐ ํ๋ก์ ํธ์์๋ ์ข์ง ๋ชปํ ์ฝ๋๊ฐ ๋์ง ์์๊น์? ์ ์ง๋ณด์๋ ์ด๋ ค์ธ ๊ฒ ๊ฐ์์.
- ์ ์ง๋ณด์ ์ธก๋ฉด์์๋ ๋ณต์กํ ๊ฒ๋ณด๋ค ๋ณด๊ณ ์ดํดํ๊ธฐ ์ฌ์ด ์ฝ๋๊ฐ ๋ ์ข์ ๊ฒ ๊ฐ์์.
+=
: ๋ง์
ํ ํ ๋นa += 4
== a = a + 4
-=
: ๋บ์
ํ ๋น*=
: ๊ณฑ์
ํ ๋น/=
: ๋๋์
ํ ๋น++x
: ๋จผ์ ํผ์ฐ์ฐ์์ ๊ฐ์ 1 ์ฆ๊ฐ์ํจ ํ์ ํด๋น ์ฐ์ฐ์ ์งํx++
: ๋จผ์ ํด๋น ์ฐ์ฐ์ ์ํํ๊ณ ๋์, ํผ์ฐ์ฐ์์ ๊ฐ์ 1 ์ฆ๊ฐ--x
: ๋จผ์ ํผ์ฐ์ฐ์์ ๊ฐ์ 1 ๊ฐ์์ํจ ํ์ ํด๋น ์ฐ์ฐ์ ์งํx--
: ๋จผ์ ํด๋น ์ฐ์ฐ์ ์ํํ๊ณ ๋์, ํผ์ฐ์ฐ์์ ๊ฐ์ 1 ๊ฐ์๋น๊ต ์ฐ์ฐ์๋ ํผ์ฐ์ฐ์ ์ฌ์ด์ ์๋์ ์ธ ํฌ๊ธฐ๋ฅผ ํ๋จํ์ฌ, ์ฐธ(true)๊ณผ ๊ฑฐ์ง(false)์ ๋ฐํ
==
: ์ผ์ชฝ ํผ์ฐ์ฐ์์ ์ค๋ฅธ์ชฝ ํผ์ฐ์ฐ์์ ๊ฐ์ด ๊ฐ์ผ๋ฉด ์ฐธ์ ๋ฐํ===
(Strict equality) : ์ผ์ชฝ ํผ์ฐ์ฐ์์ ์ค๋ฅธ์ชฝ ํผ์ฐ์ฐ์์ ๊ฐ์ด ๊ฐ๊ณ , ๊ฐ์ ํ์
์ด๋ฉด ์ฐธ์ ๋ฐํ!=
: ์ผ์ชฝ ํผ์ฐ์ฐ์์ ์ค๋ฅธ์ชฝ ํผ์ฐ์ฐ์์ ๊ฐ์ด ๊ฐ์ง ์์ผ๋ฉด ์ฐธ์ ๋ฐํ!==
(Strict-non-equality) : ์ผ์ชฝ ํผ์ฐ์ฐ์์ ์ค๋ฅธ์ชฝ ํผ์ฐ์ฐ์์ ๊ฐ์ด ๊ฐ์ง ์๊ฑฐ๋, ํ์
์ด ๋ค๋ฅด๋ฉด ์ฐธ์ ๋ฐํ<
: ์๋ค<=
: ์๊ฑฐ๋ ๊ฐ๋ค>
: ํฌ๋ค>=
: ํฌ๊ฑฐ๋ ๊ฐ๋ค๋ ผ๋ฆฌ ์ฐ์ฐ์๋ ์ฃผ์ด์ง ๋ ผ๋ฆฌ์์ ํ๋จํ์ฌ, ์ฐธ(true)๊ณผ ๊ฑฐ์ง(false)์ ๋ฐํ
&&
: ๋
ผ๋ฆฌ AND ์ฐ์ฐ||
: ๋
ผ๋ฆฌ OR ์ฐ์ฐ!
: ๋
ผ๋ฆฌ NOT ์ฐ์ฐtypeof
์ฐ์ฐ์๋ณ์์ ๋ฐ์ดํฐ ํ์
์ ๋ฐํํ๋ ์ฐ์ฐ์
=> ์์ฑ์ค์
๋๋ค:)
=> ์์ฑ์ค์ ๋๋ค:)
true
)์ธ์ง ๊ฑฐ์ง(false
)์ธ์ง์ ๋ฐ๋ผ ์ฝ๋๋ฅผ ์ํ ์ฌ๋ถ๋ฅผ ํ๋จif
๋ฌธif (์กฐ๊ฑด) {
// ์กฐ๊ฑด์ด ์ฐธ์ผ ๊ฒฝ์ฐ ์คํํ ์ฝ๋
}
if-else
๋ฌธif
๋ฌธ ๋ด์ ์กฐ๊ฑด์ด ์ฐธ์ด๋ฉด if
๋ธ๋ก ๋ด์ ์ฝ๋๋ฅผ ์คํ, ๊ฑฐ์ง์ผ ๊ฒฝ์ฐ else
๋ธ๋ก ๋ด์ ์ฝ๋๋ฅผ ์คํ// if-else ๋ฌธ
if (์กฐ๊ฑด) {
// ์กฐ๊ฑด์ด ์ฐธ์ผ ๊ฒฝ์ฐ ์คํํ ์ฝ๋
} else {
// ์กฐ๊ฑด์ด ๊ฑฐ์ง์ผ ๊ฒฝ์ฐ ์คํํ ์ฝ๋
}
else if
๋ฌธelse if
๋ฌธ์ ์ด์ฉํด์ ๋ค์ํ ์กฐ๊ฑด์ ์ค์ ํ ์ ์๋ค.if
๋ฌธ์ ์ข ๋ ๊ฐ๊ฒฐํ๊ฒ ํํ ๊ฐ๋ฅif (์กฐ๊ฑด1) {
// ์กฐ๊ฑด1์ด ์ฐธ์ผ ๊ฒฝ์ฐ ์คํํ ์ฝ๋
} else if (์กฐ๊ฑด 2) {
// ์กฐ๊ฑด2๊ฐ ์ฐธ์ผ ๊ฒฝ์ฐ ์คํํ ์ฝ๋
} else if (์กฐ๊ฑด 3) {
// ์กฐ๊ฑด3์ด ์ฐธ์ผ ๊ฒฝ์ฐ ์คํํ ์ฝ๋
} else {
// ์์ ์กฐ๊ฑด์ ์ ๋ถ ๊ฑฐ์ง์ผ ๊ฒฝ์ฐ ์คํํ ์ฝ๋
}
// ํํ์์ด ์ฐธ์ด๋ฉด ๋ฐํ๊ฐ1, ๊ฑฐ์ง์ด๋ฉด ๋ฐํ๊ฐ2
ํํ์ ? ๋ฐํ๊ฐ1 : ๋ฐํ๊ฐ2
์ผํญ ์ฐ์ฐ์ ๋์ฒด ์ฉ๋ฒ
true && '์๋ฃ' || '๋ฏธ์๋ฃ';
- ์ผํญ ์ฐ์ฐ์๋ ์ด๋ฌํ ๋์ฒด ์ฉ๋ฒ์ ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๋ค.
=> ์ค๋ฌด์์๋ ์ฃผ์ํด์ ์ฌ์ฉํ๊ธฐ- ์ฃผ์ ์์ด๋ ์ฝ์ ์ ์๋ ์ฝ๋๋ฅผ ์งํฅ
switch
๋ฌธif-else
๋ฌธ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฃผ์ด์ง ์กฐ๊ฑด ๊ฐ์ ๋ฐ๋ผ ํ๋ก๊ทธ๋จ์ด ๋ค๋ฅธ ๋ช
๋ น์ ์ํํ ์ ์๋๋ก ํ๋ ์กฐ๊ฑด๋ฌธdefault
์ ์ ์กฐ๊ฑด ๊ฐ์ด ์์ ๋์ด๋ ์ด๋ ํ case
์ ์๋ ํด๋นํ์ง ์์ ๋ ์คํswitch (์กฐ๊ฑด ๊ฐ) {
case ๊ฐ1:
์กฐ๊ฑด ๊ฐ์ด ๊ฐ1์ผ ๋ ์คํํ๊ณ ์ ํ๋ ์คํ๋ฌธ;
break;
case ๊ฐ2:
์กฐ๊ฑด ๊ฐ์ด ๊ฐ2์ผ ๋ ์คํํ๊ณ ์ ํ๋ ์คํ๋ฌธ;
break;
...
default:
์กฐ๊ฑด ๊ฐ์ด ์ด๋ ํ case ์ ์๋ ํด๋นํ์ง ์์ ๋ ์คํํ๊ณ ์ ํ๋ ์คํ๋ฌธ;
break;
}
for
๋ฌธfor (์ด๊ธฐ์; ํํ์; ์ฆ๊ฐ์) {
ํํ์์ ๊ฒฐ๊ณผ๊ฐ ์ฐธ์ธ ๋์ ๋ฐ๋ณต์ ์ผ๋ก ์คํํ๊ณ ์ ํ๋ ์คํ๋ฌธ;
}
// ๋ฌดํ๋ฃจํ
for (;;) { ... }
// ๊ตฌ๊ตฌ๋จ
for (let i = 2; i < 10; i++) {
for (let j = 1; j < 10; j++) {
console.log(`${i} X ${j} = ${i * j}`);
}
}
// ์ถ๋ ฅ ๊ฒฐ๊ณผ
// 2 X 1 = 2
// 2 X 2 = 4
// 2 X 3 = 6
// ...
// 2 X 9 = 18
// ...
// 9 X 9 = 81
์ฐธ๊ณ ๋งํฌ