[๋ถ์คํธ์ฝ์ค]์๋ฐ์คํฌ๋ฆฝํธ์ ์์(๋ฐ๋ณต๋ฌธ,๋ฐฐ์ด)
์๋ ํ์ธ์ ๋ถ์คํฐ์ฝ์ค 3๊ธฐ ์ํฌํฐ์ฆ ํ๋ธ์ ๋๋ค. ๐ฟ
๋ถ์คํฐ์ฝ์ค๋?
์ปค๋ฅํธ์ฌ๋จ์ ๋ค์ด๋ฒ๊ฐ ์ค๋ฆฝํ ๋น์๋ฆฌ ๊ต์ก ์ฌ๋จ์
๋๋ค.
์ํํธ์จ์ด ๊ฐ๋ฐ์ ์์ฑ ๊ต์ก ํ๋ก๊ทธ๋จ, ๋ถ์คํธ์ฝ์ค์ ํจ๊ป
๋น์ ์ ๊ฐ๋ฐ ์ปค๋ฆฌ์ด๋ฅผ ์
๊ทธ๋ ์ด๋ํ์ธ์!
์ ํฌ์คํ ์ ๊ฐ์ ๋ด ์๊ฐํด๋ณด๊ธฐ์ ์์ ์์ ๋ค๋ฃจ๋ ์ฝ๋๋ฅผ ์ง์ ํฌ๋กฌํ๋ฉด์์ ํ์ธ ํด๋ณผ ์ ์๋๋ก ์งํํฉ๋๋ค. ๊ด๋ จ๋ ๊ฐ๋ ๊ณผ ๊ฐ์๋ ํจ๊ป ์ฌ๋ ค๋๋ฆฌ๋ ๋งํฌ์์ ํ์ธํด๋ณด์ค ์ ์์ต๋๋ค.
www.boostcourse.org/cs124/joinLectures/52258
๋ฐ๋ณต๋ฌธ ์๊ณ
https://www.boostcourse.org/cs124/lecture/194612
๋ฐ๋ณต๋ฌธ์ด๋ ๊ฐ์ ์์ ์ ๋ฐ๋ณต์ ์ผ๋ก ์คํํด์ฃผ๋ Javascript์ ์๋ก์ด ๋ฌธ๋ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด์ ๋ค์๊ณผ ๊ฐ์ ์ฝ๋๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
var links = document.querySelectorAll('a');
var i = 0;
while (i<links.length)
{
links[i].style.color = 'powerblue'; i=i+1;
}
๋จผ์ ์ฒซ ๋ฒ์งธ ์ค์์๋ ์ด ํ์ด์ง์ ๋ชจ๋ a ํ๊ทธ๋ฅผ ๊ฐ์ ธ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ๋ค์์ค๋ถํฐ๋ ๋ฐ๋ณต๋ฌธ์ ์ด์ฉํด์ ๊ฐ๊ฐ์ a ํ๊ทธ๋ค์ color์ powerblue๋ก ๋ฐ๊ฟ์ฃผ๋ ๊ฒ์ ๋๋ค.
๋ค์ ์๊ฐ๋ถํฐ๋ ์ด ์ฝ๋๋ฅผ ์ดํดํ๊ธฐ ์ํ ๊ฐ์๋ฅผ ์งํํ ๊ฒ๋๋ค. ๋จผ์ ๋ฐฐ์ด์ ๋ฐฐ์ฐ๊ณ , ๊ทธ ๋ฐฐ์ด์ ์ด์ฉํ ๋ฐ๋ณต๋ฌธ์ ๋ฐฐ์๋ณผ๊ฒ๋๋ค.
์๊ฐํด๋ณด๊ธฐ
1. ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ์ ๋ ํธ๋ฆฌํ ์ํฉ์ ํ ๊ฐ์ง ์๊ฐํด๋ณด์ธ์.
→ ๋ง์ฝ 1์ต๊ฐ์ ๋ฐ์ดํฐ์ ์ ๊ทผํด์ผ๋๋ค๊ณ ์๊ฐํ๋ฉด ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ์ฌ ๊ฐํธํ๊ฒ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์์ต๋๋ค.
๋ฐฐ์ด
https://www.boostcourse.org/cs124/lecture/194613/
๋ฐฐ์ด (Array)
์ฐ๋ฆฌ๊ฐ ์ง์ ์๋ ๋ฌผ๊ฑด๋ค์ ์ ๋ฆฌํ๊ธฐ ์ํด์ ์๋์ฅ์ด๋ ์์์ ์ ๋ฆฌํด์ ๋ฃ๋ฏ์ด ํ๋ก๊ทธ๋๋ฐ์์๋ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ์ข ๋ฅ๋ณ๋ก ์ ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ด ํ์ํฉ๋๋ค. ์ฆ ๋ฐฐ์ด์ ์๋ก ์ฐ๊ด๋ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฆฌํด์ ๋ด์๋๋ ์๋ฉ์์๋ผ๊ณ ์๊ฐํ์๋ฉด ๋ฉ๋๋ค.
๊ทธ๋ ๋ค๋ฉด ๋ฐฐ์ด์ ๋ง๋ค๊ธฐ ์ํด์๋ ์ด๋ค ๋ฌธ๋ฒ์ ์ฌ์ฉํด์ผ ํ ์ง ์์๋ด ์๋ค.
var fruits = ["apple", "banana"];
๋ฐฐ์ด์ ๋ค์๊ณผ ๊ฐ์ด ๋๊ดํธ๋ก ํ์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ๋๊ดํธ ์์ ๋ฃ์ ๊ฐ๋ค์ ์ฝค๋ง(,)๋ก ํ์ํด์ ๋ฃ์ด์ค๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ ๋ณ์ fruits์ ๋ฃ์ด์ค๋๋ค. ์ฆ ๊ณผ์ผ์ fruits๋ผ๋ ์์์ ๋ฃ์ด์ค ๊ฒ์ด์ฃ .
๋ฐฐ์ด์ ๊ฐ์ ์ ๊ทผํ๊ธฐ
๊ทธ๋ ๋ค๋ฉด ์ด๋ ๊ฒ ๋ง๋ ๋ฐฐ์ด์ ๋ค์ด์๋ ๋ด์ฉ์ ๊บผ๋ด๊ธฐ ์ํด์๋ ์ด๋ป๊ฒ ํด์ผ ํ ๊น์? ๋ค์ ์ฝ๋๋ฅผ ์คํํด๋ด ์๋ค.
document.write(fruits[0]);
์ด๋ ๊ฒ ํ๋ฉด ํ๋ฉด์ apple์ด ์ถ๋ ฅ๋๊ฒ ๋ฉ๋๋ค. 0 ๋์ 1์ ์จ์ฃผ๋ฉด banana๊ฐ ์ถ๋ ฅ๋ฉ๋๋ค. ์ฆ, ์์์๋ถํฐ 0๋ฒ์งธ, 1๋ฒ์งธ, ... ๋ก ์์๋ฅผ ๋งค๊ฒจ์ ๊ทธ ๋ฒํธ์ ํด๋นํ๋ ๊ฐ์ ์ถ๋ ฅํ๋ ๊ฒ์ด์ฃ .
๋ฐฐ์ด์ ๊ธธ์ด
๋ค์์ผ๋ก๋ ๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ ์ถ๋ ฅํด๋ด ์๋ค. ๋ค์ ์ฝ๋๋ฅผ ์คํํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์?
document.write(fruits.length);
๋ฐฐ์ด ๋ค์ .length๋ฅผ ์ฐ๋ฉด ๊ทธ ๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ ๋ํ๋ด์ค๋๋ค. ์ด ๋ ์ถ๋ ฅ๊ฐ์ 2๊ฐ ๋์ฃ . ์ฆ ๋ฐฐ์ด์์ ๋ด์ฉ์ ๊บผ๋ผ ๋์๋ 0๋ถํฐ ์์๋ฅผ ๋งค๊ธฐ์ง๋ง, ๊ธธ์ด๋ฅผ ์ถ๋ ฅํ ๋์๋ 1๋ถํฐ ์ธ์, 2๊ฐ์ ๊ฐ์ด ์์ผ๋ 2๋ฅผ ์ถ๋ ฅํด์ฃผ๋ ๊ฒ์ด์ฃ .
๋ฐฐ์ด์ ๊ฐ ์ถ๊ฐํ๊ธฐ
์ด์ ์ด ๋ฐฐ์ด์ ์๋ก์ด ๊ฐ์ ์ถ๊ฐํด๋ด ์๋ค. ๋ค์ ์ฝ๋๋ฅผ ์คํํ๋ฉด ๋ฉ๋๋ค.
fruits.push("coconut");
์ด๋ ๊ฒ ํ๋ฉด fruits๋ผ๋ ๋ฐฐ์ด์ ๋งจ ๋ค์ "coconut"์ด๋ผ๋ ๊ฐ์ ์ถ๊ฐํด์ค๋๋ค. ์ฆ, fruits๋ ["apple", "banana", "coconut"]์ด ๋๋ ๊ฒ์ด์ฃ .
์ด ์ธ์๋ Javascript์์๋ ๋ฐฐ์ด์ ๋ํ ๋ค์ํ ํจ์๋ค์ด ์์ต๋๋ค. ๋ ์์๋ณด๊ธฐ ์ํด์๋ ์ธํฐ๋ท์ "Javascript array" + "์ํ๋ ํค์๋" ๋ก ๊ฒ์ํด๋ณด๋ฉด ๋๊ฒ ์ฃ ?
์๊ฐํด๋ณด๊ธฐ
1. ๋ค์๊ณผ ๊ฐ์ ์ฝ๋๋ฅผ ์คํํ์ ๋ ํ๋ฉด์ ์ด๋ป๊ฒ ์ถ๋ ฅ๋ ์ง ์๊ฐํด๋ณด์ธ์.
var animals = ["ant", "bee"]; animals.push("camel"); document.write(animals[1]);
2. ๋ฐฐ์ด์์ ์ด๋ค ๊ฐ์ ์ญ์ ํ๊ธฐ ์ํด์๋ ์ด๋ค ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋ ๊น์? (ํํธ: Javascript array remove value๋ผ๊ณ ๊ฒ์ํด๋ณด์ธ์!)
->delete ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด 0๋ฒ์งธ ์๋ ๋จผํธ๊ฐ ์ญ์ ๋์ด undefined๊ฐ ๋๋๊ฑธ ์ ์ ์์ต๋๋ค.
delete ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด 0๋ฒ์งธ ์๋ ๋จผํธ๊ฐ ์ญ์ ๋์ด undefined๊ฐ ๋๋๊ฑธ ์ ์ ์์ต๋๋ค.
https://www.w3schools.com/js/js_array_methods.asp
๊ทธ๋ฆฌ๊ณ slice()๋ฉ์๋ฅผ ์ฌ์ฉํ์ฌ๋ ์ญ์ ํ ์ ์๋ค.
์ฒซ๋ฒ์งธ ํ๋ผ๋ฉํฐ๋ ์์น๋ฅผ ์ง์ ํ๊ณ
๋๋ฒ์งธ ํ๋ผ๋ฉํฐ๋ ๋ช๊ฐ์ ์๋ฆฌ๋จผํธ๋ฅผ ์ญ์ ํ ๊ฒ์ด๋ ๋ป์ด๋ค.
๋ฐ๋ณต๋ฌธ
https://www.boostcourse.org/cs124/lecture/194614/
๋ฐ๋ณต๋ฌธ์ด ํ์ํ ์ด์
๋ค์๊ณผ ๊ฐ์ ์ฝ๋๋ฅผ ์ดํด๋ด ์๋ค.
document.write('<li>1</li>');
document.write('<li>2</li>');
document.write('<li>3</li>');
document.write('<li>4</li>');
์ด ์ฝ๋๋ฅผ ์คํํ๋ฉด ํ๋ฉด์ 1,2,3,4๊ฐ ์์๋๋ก ๋ฐ ๊ฒ๋๋ค. ๊ฐ ์ค์ ์ฝ๋๊ฐ ์์๋๋ก ์คํ๋๋ ๊ฒ์ด์ฃ . ๊ทธ๋ฐ๋ฐ ์ด ๋ 2๋ฒ๊ณผ 3๋ฒ์ด ๋ฐ๋ณต์ ์ผ๋ก ์ฌ๋ฌ ๋ฒ ์คํ๋์ด์ผ ํ๋ค๊ณ ์๊ฐํด๋ด ์๋ค. ๊ทธ๋ฌ๋ฉด 2๋ฒ๊ณผ 3๋ฒ ์ฝ๋๋ฅผ ์ฌ๋ฌ๋ฒ ๋ณต์ฌ, ๋ถ์ฌ๋ฃ๊ธฐ๋ฅผ ํ๋ฉด ๋๊ฒ ์ฃ . ํ์ง๋ง ๋ฐ๋ณต ํ์๊ฐ ์์ฃผ ์ปค์ง๋ค๋ฉด ๋ถ์ฌ๋ฃ๊ธฐ๋ ํ๋ค๊ณ ์ฝ๋๋ฅผ ์์ ํ๊ธฐ๋ ํ๋ค ๊ฒ์ ๋๋ค. ์ด ๋ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ฐ๋ก ๋ฐ๋ณต๋ฌธ์ ๋๋ค.
๋ฐ๋ณต๋ฌธ
์ง๊ธ๋ถํฐ while ๋ฐ๋ณต๋ฌธ์ ๋ํด์ ์์๋ด ์๋ค. while ๋ฐ๋ณต๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํฉ๋๋ค.
while (???) {
document.write('<li>2</li>');
document.write('<li>3</li>');
}
์ด ๋ ???์๋ if ๋ฌธ์์ ์ดํด๋ณธ ๊ฒ๊ณผ ๊ฐ์ด ๋ถ๋ฆฌ์ธ ๋ฐ์ดํฐ ํ์ ์ด ๋ค์ด๊ฐ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ์กฐ๊ฑด์ด true๋ผ๋ฉด ์ค๊ดํธ ์์ ์ฝ๋๋ฅผ ์คํํฉ๋๋ค. ์ด ์ฝ๋๋ฅผ ๋ค ์คํํ๊ณ ๋๋ฉด ๋ค์ ์ฒ์์ผ๋ก ๋์๊ฐ์ ???์ ๋ค์ด๊ฐ ๋ถ๋ฆฌ์ธ์ ์ดํด๋ด ๋๋ค. ์ด ๋ถ๋ฆฌ์ธ์ด false๊ฐ ๋ ๋๊น์ง ๋ฐ๋ณตํด์ ์ฝ๋๋ฅผ ์คํํ๋ ๊ฒ์ด์ฃ .
์ฆ ๋ฐ๋ณต๋ฌธ๊ณผ ์กฐ๊ฑด๋ฌธ์ ์์๋๋ก ์คํ๋๋ ํ๋ก๊ทธ๋จ์ ์คํ ํ๋ฆ์ ์ ์ดํ๋ ์ ์ด๋ฌธ์ ๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์ด์ while๋ฌธ์ ์ฌ์ฉํด์ ์๊น ์ดํด๋ณธ ์ฝ๋์์ 2~3๋ฒ์งธ ์ค์ 3๋ฒ ๋ฐ๋ณตํ๋ค๊ณ ํด ๋ด ์๋ค. ์ด๋ฅผ ์ํด์ 3๋ฒ ๋ฐ๋ณตํ์ ๋ ์กฐ๊ฑด์ด false๋ก ๋ฐ๋๋๋ก ??? ์์ ์ฑ์๋ด ์๋ค. ๋ค์๊ณผ ๊ฐ์ด ๋ํ๋ผ ์ ์์ต๋๋ค.
document.write('<li>1</li>');
var i = 0;
while (i < 3) {
document.write('<li>2</li>');
document.write('<li>3</li>');
i = i + 1;
}
document.write('<li>4</li>');
์ด๊ธฐ ์ํ์์ i๋ 0์ ๋๋ค. ๋ฐ๋ผ์ while ๋ค์ ๊ดํธ ์์ ๋ค์ด์๋ i<3์ true๊ฐ ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ์ฝ๋๊ฐ ํ ๋ฒ ์คํ๋๊ฒ ์ฃ . ์ฝ๋๊ฐ ์คํ๋๋ฉด i = i + 1์ ์ํด์ i์ ๊ฐ์ 1์ด ๋ฉ๋๋ค. ์ด ๊ณผ์ ์ 3๋ฒ ๋ฐ๋ณตํ๋ฉด i๋ 3์ด ๋ฉ๋๋ค. ๊ทธ๋ ๊ฒ ๋๋ฉด i<3์ด false๊ฐ ๋๊ณ , ๋ฐ๋ณต๋ฌธ์ด ๋๋๊ณ ๋ง์ง๋ง 8๋ฒ์งธ ์ค์ด ์คํ๋๊ฒ ๋ฉ๋๋ค.
์๊ฐํด๋ณด๊ธฐ
๋ค์ ์ฝ๋์ ์คํ ๊ฒฐ๊ณผ๋ ๋ฌด์์ผ๊น์?
var i = 0;
while (i < 3) {
i = i + 2;
}
document.write(i);
์ฒซ๋ฒ์งธ ๋ฃน; i = 2;
๋๋ฒ์งธ ๋ฃน; i = 4;
i > 3์ด๊ธฐ ๋๋ฌธ์ ์ธ๋ฒ์งธ ๋ฃน์ ๋์ง ์๊ณ i์ ๊ฐ์ด ์ถ๋ ฅ๋จ์ ์ ์ ์์ต๋๋ค.