์๋ ํ์ธ์ ๋ถ์คํฐ์ฝ์ค 3๊ธฐ ์ํฌํฐ์ฆ ํ๋ธ์ ๋๋ค. ๐ฟ
๋ถ์คํฐ์ฝ์ค๋?
์ปค๋ฅํธ์ฌ๋จ์ ๋ค์ด๋ฒ๊ฐ ์ค๋ฆฝํ ๋น์๋ฆฌ ๊ต์ก ์ฌ๋จ์
๋๋ค.
์ํํธ์จ์ด ๊ฐ๋ฐ์ ์์ฑ ๊ต์ก ํ๋ก๊ทธ๋จ, ๋ถ์คํธ์ฝ์ค์ ํจ๊ป
๋น์ ์ ๊ฐ๋ฐ ์ปค๋ฆฌ์ด๋ฅผ ์
๊ทธ๋ ์ด๋ํ์ธ์!
์ ํฌ์คํ ์ ๊ฐ์ ๋ด ์๊ฐํด๋ณด๊ธฐ์ ์์ ์์ ๋ค๋ฃจ๋ ์ฝ๋๋ฅผ ์ง์ ํฌ๋กฌํ๋ฉด์์ ํ์ธ ํด๋ณผ ์ ์๋๋ก ์งํํฉ๋๋ค. ๊ด๋ จ๋ ๊ฐ๋ ๊ณผ ๊ฐ์๋ ํจ๊ป ์ฌ๋ ค๋๋ฆฌ๋ ๋งํฌ์์ ํ์ธํด๋ณด์ค ์ ์์ต๋๋ค.
www.boostcourse.org/cs124/joinLectures/52258
ํ๋ก๊ทธ๋จ, ํ๋ก๊ทธ๋๋จธ, ํ๋ก๊ทธ๋๋ฐ
www.boostcourse.org/cs124/lecture/194603
ํ๋ก๊ทธ๋จ์๋ ์์๋ผ๋ ์๋ฏธ๊ฐ ์์ต๋๋ค. ํ๋ก๊ทธ๋๋ฐ์ ์ด๋ฌํ ์์๋ฅผ ๋ง๋๋ ํ์๋ฅผ ๋งํ์ฃ . ํ๋ก๊ทธ๋๋จธ๋ ์ด๋ฌํ ์์๋ฅผ ๋ง๋๋ ์ผ์ ํ๋ ์ฌ๋์ ์๋ฏธํฉ๋๋ค. ์ด๋ฌํ ์ฉ์ด๋ ์ํํธ์จ์ด ๋ถ์ผ ๋ฟ๋ง ์๋๋ผ ๋ค์ํ ๋ถ์ผ์์๋ ์ฌ์ฉ๋๋ ๋ง์ ๋๋ค.
์ปดํจํฐ๋ฅผ ์ฌ์ฉํ ๋์๋ ๋ค์ํ ๊ธฐ๋ฅ์ ์์๋๋ก ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ณดํต์ ์ด๋ฌํ ๊ธฐ๋ฅ์ด ๋ฐ๋ณต์ ์ผ๋ก ์ด์ฉ๋ฉ๋๋ค. ์ปดํจํฐ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ ์๊ฐ์ ์์์ ๋ฐ๋ผ์ ์คํ๋์ด์ผ ํ ๊ธฐ๋ฅ์ ๊ธ๋ก ์ ์ด๋๋ ๋ฐฉ์์ ์๋ฏธํฉ๋๋ค. ์์ ์ด ํ์ํ ๋๋ง๋ค ์ ์ด๋ ๊ธ์ ์ปดํจํฐ๊ฐ ์คํํ๋๋ก ๊ฑด๋ค์ฃผ๋ ๊ฒ์ด์ฃ .
HTML๊ณผ Javascript์ ๋น๊ต
HTML๋ก ๋ง๋ ์นํ์ด์ง๋ ์๊ฐ์ ์์์ ๋ฐ๋ผ ์คํ๋์ง ์๊ณ , ํ ๋ฒ ๋ง๋ค์ด์ง๋ฉด ๋ฐ๋์ง ์์ต๋๋ค. ๋๋ฌธ์ HTML์ ์ปดํจํฐ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ์๋ ๊ฒ์ด์ฃ .
๋ฐ๋ฉด์ Javascript๋ ์ฌ์ฉ์์ ์ํธ์์ฉํ๊ณ , ์ด๋ฅผ ์ํด์ ์๊ฐ์ ๋ฐ๋ผ ์ฌ๋ฌ ๊ธฐ๋ฅ์ด ์คํ๋์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ํ๋ก๊ทธ๋๋ฐ์ด๋ผ๋ ํํ๋ฅผ ๋๊ฒ ๋ฉ๋๋ค. ๋ฐ๋ผ์ Javascript๋ ์ปดํจํฐ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ผ๊ณ ๋ถ๋ฅผ ์ ์๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ ๋์๊ฐ์ ์๊ฐ์ ๋ฐ๋ผ ์ฝ๋๊ฐ ์คํ๋๋ ๊ฒ ์ธ์๋, ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ค๋ฅธ ์ฝ๋๊ฐ ์คํ๋๋๋ก ํ๊ฑฐ๋, ๊ฐ์ ์ฝ๋๊ฐ ๋ฐ๋ณต์ ์ผ๋ก ์คํํ ์ ์๋ ๋ฐฉ๋ฒ๋ ๊ณ ์ํ๊ฒ ๋ ๊ฒ์ ๋๋ค.
์๊ฐํด๋ณด๊ธฐ
์ด๋ฒ ๊ฐ์์์ HTML๊ณผ๋ ๋ฌ๋ฆฌ Javascript๋ ์ปดํจํฐ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ผ๋ ๊ฒ์ ๋ฐฐ์ ์ต๋๋ค. ์ค๋ ๋ฐฐ์ด ๋ด์ฉ์ ๋ฐํ์ผ๋ก HTML์ ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ์๋์ง ์ค์ค๋ก์๊ฒ ์ค๋ช ํด๋ด ์๋ค.
"HTML์ด ์ ํ๋ก๊ทธ๋๋ฐ์ด ์๋๋๋ฉด ํ๋ก๊ทธ๋จ์ด ๋๊ธฐ ์ํด์ ์๊ฐ์ ๋ฐ๋ฅธ ๋ก์ง์ด ๋ฐ์ํ์ฌ์ผ ํ๋๋ฐ HTML ์ ๋จ์ํ ๋ฌ์ฌํ๊ณ ์ ์ ์ด๊ธฐ ๋๋ฌธ์ด๋ค."
์กฐ๊ฑด๋ฌธ
https://www.boostcourse.org/cs124/lecture/194604/
์กฐ๊ฑด๋ฌธ์ด๋ ํ๋ก๊ทธ๋จ์ด ์กฐ๊ฑด์ ๋ฐ๋ผ์ ๋ค๋ฅธ ๊ธฐ๋ฅ๋ค์ด ๋ค๋ฅธ ์์์ ๋ฐ๋ผ์ ์คํ๋๋๋ก ๋ง๋ค์ด์ฃผ๋ ๊ฒ์ ๋๋ค. ์กฐ๊ฑด๋ฌธ์ ๋จ์ํ๊ณ ๋ฐ๋ณต์ ์ธ ์ ๋ฌด ๋ฟ๋ง ์๋๋ผ ๋ณต์กํ ์ ๋ฌด๊น์ง๋ ์ปดํจํฐ๊ฐ ๋ค๋ฃฐ ์ ์๋๋ก ํด ์ค๋๋ค.
์๋ฅผ ๋ค์ด ์ฐ๋ฆฌ๊ฐ ์ง๊ธ๊น์ง ๋ง๋ค์๋ night/day ๋ฒํผ ์์ ์ ๋ํด์ ์๊ฐํด๋ด ์๋ค. ์ง๊ธ๊น์ง๋ night์ day์ ๋ฒํผ์ ๋ฐ๋ก ๋ง๋ค์ด์ ๊ฐ๊ฐ์ ๋์์ ์ง์ ํด ์ฃผ์์ฃ .
ํ์ง๋ง, ํ์ฌ ์ํ๊ฐ night๋ผ๋ฉด day ๋ชจ๋๋ก, ํ์ฌ ์ํ๊ฐ day๋ผ๋ฉด night๋ชจ๋๋ก ๋ฐ๊ฟ์ฃผ๋ ๊ธฐ๋ฅ์ ๊ฐ์ง๋๋ก ๋ง๋ค๋ฉด, ๋ฒํผ์ ๋ ๊ฐ ๋ง๋ค ํ์ ์์ด ํ๋๋ก ๊ตฌํํ ์ ์๊ฒ ๋ ๊ฒ๋๋ค. ์ด๋ฌํ ๋ฒํผ์ ํ ๊ธ์ด๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
์ง๊ธ๋ถํฐ if/else ์กฐ๊ฑด๋ฌธ์ ์ฌ์ฉํด์ ์ด๋ฌํ ํ ๊ธ์ ๊ตฌํํด๋ด ์๋ค.
if ์กฐ๊ฑด๋ฌธ์ ์จ์ ํ์ฌ์ mode๊ฐ 'day'๋ก ์ง์ ๋์ด ์์ ๋ ์คํ๋ ์ฝ๋๋ฅผ ์ง์ ํ๊ณ , ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ์๋ else ์กฐ๊ฑด๋ฌธ์ ์ฌ์ฉํด์ mode๊ฐ 'night'๋ก ์ง์ ๋์ด ์์ ๋ ์คํ๋ ์ฝ๋๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค.
์๊ฐํด๋ณด๊ธฐ
1) ์กฐ๊ฑด๋ฌธ์ด ํ์ํ ์ด์ ๊ฐ ๋ฌด์์ผ๊น์? ์กฐ๊ฑด๋ฌธ์ ์ฌ์ฉํ๋ฉด ์ด๋ค ์ ์ด ๋ ํธ๋ฆฌํ ๊น์? ์์๋ฅผ ๋ค์ด์ ์๊ฐํด๋ด ์๋ค.
"๋ง์ฝ ๋ค์ ์์ ์ boolean ์ ๋ํด์ ์๋ค๋ฉด toggle ์ ๋ด์ฉ์ผ๋ก ๊ฑด๋๋ฐ๊ณ , ์ฝ๋ฉ์ ์ฒ์ ์งํํด๋ณธ๋ค๋ฉด ์์ ์ ๋ฃ๋๋ค. ์ด์ฒ๋ผ ์กฐ๊ฑด๋ฌธ์ ์ฐ๋ฆฌ์ ์๊ฐ๊ณผ ๋น์ฉ์ ์ ์ฝํด์ค๋ค."
๋น๊ต์ฐ์ฐ์์ ๋ธ๋ฆฌ์ธ
https://www.boostcourse.org/cs124/lecture/194605/
๋น๊ต ์ฐ์ฐ์ ===
Javascript์์ ๊ฐ์ฅ ๋ง์ด ์ฐ์ด๋ ๋น๊ต ์ฐ์ฐ์๋ ๋๋ฑ ๋น๊ต ์ฐ์ฐ์ **===**์ ๋๋ค. ์ด ๋น๊ต ์ฐ์ฐ์๋ ์ผ์ชฝ๊ณผ ์ค๋ฅธ์ชฝ์ด ๊ฐ์์ง ํ๋จํ๋ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด ๋ค์๊ณผ ๊ฐ์ ์ฝ๋๋ฅผ ์คํํ๋ฉด ๊ฒฐ๊ณผ๊ฐ ์ด๋ป๊ฒ ๋ ๊น์?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Compraison operators & bollean</title>
</head>
<body>
<h1>Compraison operators & bollean</h1>
<h2>===</h2>
<h3>1===1</h3>
<script>
document.write(1 === 1); //true
</script>
<h3>1===2</h3>
<script>
document.write(1 === 2); //false
</script>
</body>
</html>
๋น๊ต ์ฐ์ฐ์ ===
Javascript์์ ๊ฐ์ฅ ๋ง์ด ์ฐ์ด๋ ๋น๊ต ์ฐ์ฐ์๋ ๋๋ฑ ๋น๊ต ์ฐ์ฐ์ **===**์ ๋๋ค. ์ด ๋น๊ต ์ฐ์ฐ์๋ ์ผ์ชฝ๊ณผ ์ค๋ฅธ์ชฝ์ด ๊ฐ์์ง ํ๋จํ๋ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด ๋ค์๊ณผ ๊ฐ์ ์ฝ๋๋ฅผ ์คํํ๋ฉด ๊ฒฐ๊ณผ๊ฐ ์ด๋ป๊ฒ ๋ ๊น์?
์ฌ๊ธฐ์ ์ ์ ์๋ ์ ์, ๋น๊ต ์ฐ์ฐ์ ===๋ ์ดํญ ์ฐ์ฐ์๋ผ๋ ๊ฒ์ ๋๋ค. ์ฆ ์ขํญ๊ณผ ์ฐํญ์ ๊ฒฐํฉํด์ ๊ทธ ๊ด๊ณ์ ๋ฐ๋ผ ํ๋์ ๊ฒฐ๊ณผ, ์ฆ True์ธ์ง False์ธ์ง๋ฅผ ๋ง๋ค์ด๋ด๋ ๊ฒ์ด์ฃ .
๋ถ๋ฆฌ์ธ(Boolean)
์ด๋ ๊ฒ ๋น๊ต ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฒฐ๊ณผ๋ก True ํน์ False๊ฐ ๋ง๋ค์ด์ง๋๋ค. ์ด ๋ ์ด True์ Fasle๋ฅผ ๋ณด๊ณ ๋ถ๋ฆฌ์ธ(Boolean) ๋ฐ์ดํฐ ํ์ ์ด๋ผ๊ณ ๋ถ๋ฆ ๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ด์ ์ ๋ฐฐ์ ๋ ๋ฐ์ดํฐ ํ์ ์ธ ์ซ์(Number)๋ ๋ฌธ์์ด(String)์๋ ์์ฃผ ๋ง์ ์ข ๋ฅ๊ฐ ์์ต๋๋ค. ํ์ง๋ง ๋ถ๋ฆฌ์ธ์๋ True ์๋๋ฉด False, ๋ฑ ๋๊ฐ์ง๋ง์ด ์กด์ฌํ์ฃ .
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Compraison operators & bollean</title>
</head>
<body>
<h1>Compraison operators & bollean</h1>
<h2>===</h2>
<h3>1<1</h3>
<script>
document.write(1 < 1); //false
</script>
<h3>1<2</h3>
<script>
document.write(1 < 2); //true
</script>
</body>
</html>
๋น๊ต ์ฐ์ฐ์ <, >
๋ ๋ค๋ฅธ ๋น๊ต ์ฐ์ฐ์๋ก๋ ๋ ๊ฐ์ ํฌ๊ธฐ๋ฅผ ์๋ก ๋น๊ตํ๋ ์ฐ์ฐ์๊ฐ ์์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ํํ ๋ถ๋ฑํธ๋ผ๊ณ ๋ถ๋ฅด๋ **<, >**์ ๊ฐ์ ๊ฒ๋ค์ด์ฃ . ์ด๋ฅผ HTML์์ ์ธ ๋๋ ๋ค์๊ณผ ๊ฐ์ด ์๋๋ค.
HTML์์๋ ์ด ๊บฝ์ ๊ธฐํธ(<,>)๊ฐ ํ๊ทธ๋ฅผ ๋ํ๋ผ ๋ ์ฐ์ด๊ธฐ ๋๋ฌธ์ ํผ๋์ ์ค ์ ์๊ธฐ ๋๋ฌธ์ด์ฃ . <๊ฐ <๋ฅผ ์๋ฏธํ๋ ๊ฒ์ด๊ณ , >๊ฐ >๋ฅผ ์๋ฏธํฉ๋๋ค.
Javascript์์๋ ๊ทธ๋๋ก <, >๋ก ๋ํ๋ด๋ ๊ด์ฐฎ์ต๋๋ค. ๋ค์๊ณผ ๊ฐ์ Javascript ์ฝ๋๋ฅผ ์คํํ๋ฉด ๊ฒฐ๊ณผ๋ ์ด๋ป๊ฒ ๋ ๊น์?
1) Javascript์์ '์ผ์ชฝ์ด ์ค๋ฅธ์ชฝ๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๋ค'๋ฅผ ํํํ๊ธฐ ์ํด์๋ ์ด๋ป๊ฒ ๋น๊ต ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ฉด ์ข์๊น์? (ํํธ: javascript bigger than or equal to ๋ผ๊ณ ๊ฒ์ํด๋ณด์ธ์!)
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Greater_than_or_equal
console.log(5 >= 3);
// expected output: true
console.log(3 >= 3);
// expected output: true
console.log(3n >= 5);
// expected output: false
console.log('ab' >= 'aa');
// expected output: true
์๊ฐํด๋ณด๊ธฐ
๋ค์ ์ฝ๋์ ์คํ ๊ฒฐ๊ณผ๋ ๋ฌด์์ผ๊น์?
1+1 > 1+2 //false
์กฐ๊ฑด๋ฌธ
https://www.boostcourse.org/cs124/lecture/194606/
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>Conditional statements</h1>
<h2>Program</h2>
<script>
document.write("1<br>");
document.write("2<br>");
document.write("3<br>");
document.write("4<br>");
</script>
<h2>IF-true</h2>
<script>
document.write("1<br>");
if (true) {
document.write("2<br>");
} else {
document.write("3<br>");
}
document.write("4<br>");
</script>
<h2>IF-false</h2>
<script>
document.write("1<br>");
if (false) {
document.write("2<br>");
} else {
document.write("3<br>");
}
document.write("4<br>");
</script>
</body>
</html>
์ด ์ฝ๋๋ฅผ ์คํํ๊ฒ ๋๋ฉด ์๊น์๋ ๋ฌ๋ฆฌ 13์ด ์ถ๋ ฅ๋๊ฒ ๋ฉ๋๋ค.
๊ทธ๋ ๋ค๋ฉด **if(true)**์ if(false), ๊ทธ๋ฆฌ๊ณ else๊ฐ ์ด๋ค ์ญํ ์ ํ๊ธธ๋ ์ด๋ฐ ๊ฒฐ๊ณผ๊ฐ ๋์ค๋ ๊ฒ์ผ๊น์?
if๋ฌธ์ ๊ดํธ ์์๋ ๋ถ๋ฆฌ์ธ ๋ฐ์ดํฐ ํ์ ์ด ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ง์ฝ ๊ทธ ๋ถ๋ฆฌ์ธ์ด true์ด๋ฉด ์ฒซ ๋ฒ์งธ ์ค๊ดํธ์ ์๋ ์ฝ๋๊ฐ ์คํ๋๊ณ , else์ ์ค๊ดํธ์ ์๋ ์ฝ๋๋ ๋ฌด์๋ฉ๋๋ค. ๋ฐ๋๋ก ๊ทธ ๋ถ๋ฆฌ์ธ์ด false์ด๋ฉด else์ ์ค๊ดํธ์ ์๋ ์ฝ๋๊ฐ ์คํ๋๊ณ ์ฒซ ๋ฒ์งธ ์ค๊ดํธ์ ์๋ ์ฝ๋๊ฐ ๋ฌด์๋๊ฒ ์ฃ .
์ง๊ธ ์ง ์ฝ๋์์๋ ๊ดํธ ์์ ์๋ ๋ถ๋ฆฌ์ธ์ด ๊ณ ์ ๋์ด ์๊ธฐ ๋๋ฌธ์ ํญ์ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ์ถ๋ ฅ๋๊ฒ ๋ฉ๋๋ค. ํ์ง๋ง, ์ด ๊ดํธ ์์ ์๋ ๋ถ๋ฆฌ์ธ์ด ์ํฉ์ ๋ฐ๋ผ์ true/false๊ฐ ๋ฐ๋๋๋ก ๋ง๋ค์ด์ฃผ๋ฉด, ์ํฉ์ ๋ฐ๋ผ์ ๋ค๋ฅธ ์ฝ๋๊ฐ ์คํ๋๋๋ก ๋ง๋ค์ด์ค ์ ์์ ๊ฒ๋๋ค.
์๊ฐํด๋ณด๊ธฐ
1) ๋ค์ ์ฝ๋๋ฅผ ์คํํ์์ ๋์ ๊ฒฐ๊ณผ๋ ๋ฌด์์ผ๊น์?
<script>
document.write('1')
if(true) {
document.write('2')
}
else {
document.write('3')
}
if(false) {
document.write('4')
}
else {
document.write('5')
}
document.write('6')
</script>
์ด์ ๋ ๋จผ์ 1์ด ์คํ๋๊ณ , 2๋ true ์ด๊ธฐ ๋๋ฌธ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ค ํ์ง๋ง 3์ else ์ ์ํด ์คํ๋์ง ์๊ณ , 4๋ 1f์ ์กฐ๊ฑด๋ฌธ์ด false ์ด๊ธฐ ๋๋ฌธ์ ์คํ์ด ๋์ง ์๊ณ 6์ false์ else ๋ฌธ์ ์ํด ์คํ๋๋ค.
์กฐ๊ฑด๋ฌธ์ ํ์ฉ
https://www.boostcourse.org/cs124/lecture/194607/
javascript get value
document.getElementById('textbox_id').value to get the value of desired box
For example, document.getElementById("searchTxt").value;
์กฐ๊ฑด๋ฌธ์ ํ์ฉํ ํ ๊ธ ๋ง๋ค๊ธฐ
์ด๋ฒ ์๊ฐ์๋ ์กฐ๊ฑด๋ฌธ์ ํ์ฉํด์ ํ ๊ธ์ ๋ง๋ค์ด ๋ณผ๊ฒ๋๋ค. ๋จผ์ ๋ค์๊ณผ ๊ฐ์ด ๋ฒํผ์ ๋ง๋ค์ด ์ค๋๋ค.
์ง๊ธ๋ถํฐ ์ด ๋ฒํผ์ value ๊ฐ์ ๊ธฐ์ค์ผ๋ก, ์ด value๊ฐ night๋ฉด day ๋ฒ์ ์ผ๋ก ๋ฐ๋๋ ์ฝ๋๋ฅผ, day๋ฉด night ๋ฒ์ ์ผ๋ก ๋ฐ๋๋ ์ฝ๋๋ฅผ ์คํํ๋๋ก ํ๋ก๊ทธ๋จ์ ๋ง๋ค๊ฒ๋๋ค.
์ด๊ฒ์ด ์ด๋ ค์ฐ์๋ค๋ฉด ์์ ๋งํฌ๋ฅผ ๋ฌ์๋์์ต๋๋ค. ํ์ธ ๋ฐ๋๋๋ค.
๋ฒํผ์ onclick ์์ฑ ์์ ๋ค์๊ณผ ๊ฐ์ Javascript ์ฝ๋๋ฅผ ์จ ๋ด ์๋ค.
ํ์ฌ ํ์ด์ง์์ querySelector์ ์ฌ์ฉํด์ id๊ฐ night_day์ธ ํ๊ทธ๋ฅผ ์ฐพ๊ธฐ ์ํด์ id๋ฅผ ๋ํ๋ด๋ #์ ๋ถ์ฌ์ค๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐพ์๋ธ ํ๊ทธ์ value๋ฅผ ์๊ธฐ ์ํด์ .value๋ฅผ ์จ ์ค๋๋ค.
์ด๋ ๊ฒ ๊ฐ์ ธ์จ value ๊ฐ์ night์ ๋น๊ตํ๋ฉด ๋๊ฒ ์ฃ . ๊ทธ๋ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์จ ์ฃผ๋ฉด ๋ฉ๋๋ค.
ํ์ง๋ง ์ด ์ฝ๋์๋ ๊ฒฐ์ ์ ์ธ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋ฐ๋ก ๋ฒํผ์ด ๋๋ฆด ๋๋ง๋ค value๊ฐ ๋ฐ๋์ง ์๋ ๊ฒ์ด์ฃ . ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ํญ์ ์๋ ์ค์ ๋ value์ธ night์ ํด๋นํ๋ ์ฝ๋, ์ฆ ์ฒซ ๋ฒ์งธ ์ค๊ดํธ์ ์๋ ์ฝ๋๋ง ์คํ๋๊ฒ ๋ฉ๋๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ ์ฝ๋๊ฐ ์คํ๋ ๋๋ง๋ค value๋ฅผ ๋ฐ๊ฟ์ฃผ๋ ์ฝ๋๋ ์ถ๊ฐํด์ฃผ๋ฉด ๋ฉ๋๋ค.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>WEB1 - javaScript</title>
</head>
<body style="">
<h1><a href="index.html">WEB</a></h1>
<input type="button" value="night" onclick="
document.querySelector('body').style.backgroundColor = 'black';
document.querySelector('body').style.color = 'white';
">
<input type="button" value="day" onclick="
document.querySelector('body').style.backgroundColor = 'white';
document.querySelector('body').style.color = 'black';
">
<input id="night_day" type="button" value="night" onclick="
if(document.querySelector('#night_day').value === 'night'){
document.querySelector('body').style.backgroundColor = 'black';
document.querySelector('body').style.color = 'white';
document.querySelector('#night_day').value = 'day'
}
else{
document.querySelector('body').style.backgroundColor = 'white';
document.querySelector('body').style.color = 'black';
document.querySelector('#night_day').value = 'night'
}
">
<ol>
<li><a href="1.html">HTML</a></li>
<li><a href="2.html">CSS</a></li>
<li><a href="3.html">JAVASCRIPT</a></li>
</ol>
<h2>JavaScript</h2>
<p>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Sapiente officia incidunt quas reprehenderit alias
eveniet necessitatibus eligendi harum obcaecati temporibus, odit, dolor nulla adipisci tempore illum suscipit
quod voluptatibus debitis quam atque nemo accusantium voluptatum voluptates voluptas. Laudantium labore,
praesentium architecto perspiciatis enim totam! Magni fugit corporis iste ratione dolorem temporibus. Magni
perferendis aspernatur mollitia! Eaque dolorem, exercitationem corrupti amet aliquid quis ab eligendi. Nam odio
maxime quae explicabo repellat velit error fuga dolores quo quia. Quidem beatae iusto dolore eos, consequatur
fuga magnam! Sed esse asperiores dolor et adipisci corrupti eveniet tempore deleniti rerum possimus natus,
reiciendis accusantium ut reprehenderit! Animi quaerat ratione, facere saepe iusto eos, obcaecati, provident
ius doloribus nam! Modi, hic! Est vel ipsam laborum placeat! Non nulla dolorum autem corrupti.
</p>
</body>
</html>
๋ฆฌํฉํ ๋ง(์ค๋ณต์ ์ ๊ฑฐ)
https://www.boostcourse.org/cs124/lecture/194611/
๋ฆฌํฉํ ๋ง - this ์ฌ์ฉํ๊ธฐ
๋ฆฌํฉํ ๋ง์ด๋ ๋นํจ์จ์ ์ธ ์ฝ๋๋ฅผ ํจ์จ์ ์ผ๋ก ๋ง๋ค์ด์ ๊ฐ๋ ์ฑ์ ๋์ด๊ณ ์ ์ง๋ณด์๊ฐ ์ฝ๋๋ก ๋ง๋๋ ๊ฒ์ ๋๋ค. ์ฝ๋์ ๊ธฐ๋ฅ์ ์ธ ๋ฉด์์๋ ๋ณํ๊ฐ ์๋๋ก ๋ง์ด์ฃ . ์ด๋ฒ ์๊ฐ์๋ ์ฝ๋์ ๋นํจ์จ์ ์ธ ๋ถ๋ถ์ ์ฐพ์๋ด์ ๊ณ ์ณ๋ณด๋ ๋ฆฌํฉํ ๋ง ์์ ์ ์งํํด๋ด ์๋ค.
์ง๋ ๊ฐ์์์ ์์ฑํ ๋ค์๊ณผ ๊ฐ์ ํ ํด ์ฝ๋๋ฅผ ์ดํด๋ด ์๋ค.
<input type="button" value="night" onclick="
if(this.value === 'night'){
document.querySelector('body').style.backgroundColor = 'black';
document.querySelector('body').style.color = 'white';
this.value = 'day'
}
else{
document.querySelector('body').style.backgroundColor = 'white';
document.querySelector('body').style.color = 'black';
this.value = 'night'
}
">
์ฌ๊ธฐ์์๋ ์๊ธฐ๊ฐ ์ํ ๋ฒํผ์ ์ฐพ๊ธฐ ์ํด์ document.querySelector('#night_day') ๋ผ๋ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ํ์ง๋ง ๋ง์ฝ ์ด ์ฝ๋๋ฅผ ๋ณต์ฌํด์ ํ๋์ ๋ฒํผ์ ๋ ๋ง๋ค๊ฒ ๋๋ค๋ฉด ์ด๋ป๊ฒ ๋ ๊น์?
id๋ ํ๋์ ํ๊ทธ์๋ง ์ ์ฉ๋ ์ ์์ผ๋ฏ๋ก ์๋กญ๊ฒ ๋ง๋ค์ด์ง ๋ฒํผ์๋ ์๋ก์ด id๊ฐ์ ์ ์ฉํด์ค์ผ๊ฒ ์ฃ . ์๋ฅผ ๋ค์ด์ ์๋กญ๊ฒ ๋ง๋ ๋ฒํผ์ id๋ฅผ #night_day2๋ผ๊ณ ๋ง๋ค์๋ค๊ณ ํด ๋ด ์๋ค. ๊ทธ๋ ๊ฒ ๋๋ฉด ์ด ์ฝ๋์์ ๋ชจ๋ #night_day๋ฅผ #night_day2๋ก ์ง์ ๋ฐ๊ฟ์ฃผ๋ ์์ ์ ์งํํด์ผ ํฉ๋๋ค. ๋ฌด์ฒ ๋นํจ์จ์ ์ด์ฃ .
๊ทธ๋์ Javascript์๋ ์๊ธฐ ์์ ์ ๊ฐ๋ฆฌํค๊ธฐ ์ํ this๋ผ๋ ํค์๋๊ฐ ์์ต๋๋ค. document.querySelector('#night_day') ๋์ this๋ฅผ ์จ๋ ๋๋ ๊ฒ์ด์ฃ . ๊ทธ๋ฌ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์ธ ์ ์์ต๋๋ค.
<input type="button" value="night" onclick="
var target = document.querySelector('body');
if(this.value === 'night'){
target.style.backgroundColor = 'black';
target.style.color = 'white';
this.value = 'day'
}
else{
target.style.backgroundColor = 'white';
target.style.color = 'black';
this.value = 'night'
}
">
์ฝ๋๊ฐ ํจ์ฌ ๊ฐ๊ฒฐํด์ง ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ๊ทธ ๋ฟ๋ง ์๋๋ผ, ์ด ์ฝ๋๋ ๋ช ๋ฒ์ ๋ณต์ฌํด์ ๋ถ์ฌ๋ฃ๋๋ผ๋ ๋ฐ๋ก ์ถ๊ฐ์ ์ธ ์์ ์์ด ๊ณ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ฆฌํฉํ ๋ง - ์ค๋ณต ์ ๊ฑฐํ๊ธฐ
๋ ๋ฒ์งธ๋ก ๋ฆฌํฉํ ๋ง ํด ๋ณผ ๋ถ๋ถ์ ๋ฐ๋ก document.querySelector('body') ์ ๋๋ค. ์ด ๋ถ๋ถ์ด ๋ฌด๋ ค 4๋ฒ์ด๋ ๋ฑ์ฅํ๊ณ ์์ฃ . ์ฝ๋ฉ์ ํ ๋์๋ ์ค๋ณต์ ์์ ์ฃผ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ด ๋ถ๋ถ์ ์ ๊ฑฐํด๋ณด๋๋ก ํฉ์๋ค.
์ด๋ ๊ฒ ํ๋ฉด target์ด๋ผ๋ ๋ณ์๋ฅผ ๋ง๋ค์ด์ ๊ฑฐ๊ธฐ์ body ํ๊ทธ๋ฅผ ์ฐพ์์ ๋ฃ๊ณ , ์ด target ๋ณ์๋ง ๊ฐ๋จํ๊ฒ ์ฌ์ฉํด์ ์ฝ๋์ ๊ธธ์ด๋ฅผ ์ค์ผ ์ ์์ต๋๋ค. ๊ทธ ๋ฟ๋ง ์๋๋ผ ์ฒซ ๋ฒ์งธ ์ค๋ง ์์ ํด์ฃผ๋ฉด, target์ด ์ฐ์ด๋ ๋ค ์ค์ ๋ชจ๋ ๋ฐ๊ฟ ์ ์๋ค๋ ์ฅ์ ๋ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์๊ฐํด๋ณด๊ธฐ
1) ๋ค์๊ณผ ๊ฐ์ ์ฝ๋์์ ๋ฆฌํฉํ ๋ง์ ์งํํ ์ ์๋ ๋ถ๋ถ์ ์ฐพ์์ ๊ณ ์ณ๋ด ์๋ค.
if(document.querySelector('h1').value === 'night') {
document.querySelector('body').style.backgroundColor = 'black';
document.querySelector('h1').style.color = 'white';
document.querySelector('h1').value = 'day';
}
else {
document.querySelector('body').style.backgroundColor = 'white';
document.querySelector('h1').style.color = 'black';
document.querySelector('h1').value = 'night';
}
var target_h1 = document.querySElector('h1');
var target_body = document.querySElector('body');
if(document.querySelector('h1').value === 'night') {
target_body.style.backgroundColor = 'black';
target_h1.style.color = 'white';
target_h1.value = 'day';
}
else {
target_body.style.backgroundColor = 'white';
target_h1.style.color = 'black';
target_h1.value = 'night';
}