Bibi's DevLog ๐ค๐
[์ธํ๋ฐ] Javascript์ ๋ฌธ - ๊ฐ์ฒด๋ฅผ ํ์ฉํด ๊ตฌ๊ตฌ๋จ ๋ค์ ๊ตฌํ(์ค์ต, ํด์ค) ๋ณธ๋ฌธ
[์ธํ๋ฐ] Javascript์ ๋ฌธ - ๊ฐ์ฒด๋ฅผ ํ์ฉํด ๊ตฌ๊ตฌ๋จ ๋ค์ ๊ตฌํ(์ค์ต, ํด์ค)
๋น๋น bibi 2020. 10. 19. 13:37* ์ด ๊ธ์ ์ธํ๋ฐ์์ ์ ๊ณตํ๋ ํธ๋ ์ค๋์ ์ ๋ฃ ๊ฐ์ '์ฝ๊ณ ์์ฐ์ค๋ฝ๊ฒ ๋ฐฐ์๋ณด๋ Javascript ์ ๋ฌธ - ์ฝ๋์ค์ฟผ๋ ๋ง์คํฐ์ฆ ์ฝ์ค ๋ ๋ฒจ1'๋ฅผ ๋ฃ๊ณ ๊ณต๋ถํ๋ฉฐ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ๊ฐ์ ๋ด์ฉ์ ๋ํด, ์ ๊ฐ ํ๊ธฐํ๊ณ ๊ตฌ๊ธ๋งํ ๋ด์ฉ์ด ์ ๋ฆฌ๋์ด ์์ต๋๋ค. ์ด๋ณด์ธ ์ ๊ฐ ์ดํดํ ๋๋ก ์ ๋ฆฌํ๊ธฐ ๋๋ฌธ์, ๋ถ์ ํํ ๋ด์ฉ์ด ์์ ์ ์์์ ๊ฐ์ํด ์ฃผ์๊ธธ ๋ฐ๋๋๋ค. ๊ฐ์๋ฅผ ๋ฃ๊ณ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ด๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๊ฐ ๋์ง ์๋๋ค๋ ์ธํ๋ฐ ์ธก ๋ต๋ณ์ ๋ฐ์ ์ ์ด ์์ผ๋(https://bibi6666667.tistory.com/37), ์ ์๊ถ์ ๋ฌธ์ ๊ฐ ๋๋ค๋ฉด ๋ณดํธ ๋ชจ๋(๋น๊ณต๊ฐ)๋ก ์ ํํ๊ฒ ์ต๋๋ค.
ํ์ต ๋ชฉํ
- ๊ฐ์ฒด์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ ๊ตฌ๊ตฌ๋จ์ ๊ตฌํํ๋ ๊ฒฝํ์ ํ๋ค.
๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๊ณ , ํ๋กํผํฐ๋ฅผ ์ฌ์ฉํ๊ณ , ๊ธฐ์กด์ ํจ์๋ฅผ ๋ฉ์๋๋ก ๋ฐ๊ฟ๋ณด๊ธฐ. - ํ๋กํผํฐ(์์ฑ) = ๊ฐ์ฒด์ ์ํ๋ฅผ ๋ํ๋
๋ฉ์๋ = ๊ฐ์ฒด์ ํ๋์ ๋ํ๋.
์๊ตฌ์ฌํญ
- main() ๋ฉ์๋๋ ํ๋ก๊ทธ๋จ์ ์์ํ๋ ์ญํ ์ ํ๋ค.
- ํจ์๋ฅผ ๊ตฌ๊ตฌ๋จ ๊ฐ์ฒด์ ๋ฉ์๋๋ก ๋ณ๊ฒฝํ๋ค.
ํํธ
- gugudan ์ด๋ผ๋ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค.
- gugudan ๊ฐ์ฒด์ ์ ๋จ๊ณ์์ ์์ฑํ ํจ์๋ฅผ ๋ฉ์๋๋ก ์ถ๊ฐํ๋ค.
- ๊ฐ์ฒด๋ฅผ ์ด์ฉํด์ mainํจ์ ๋ด๋ถ๋ฅผ ์์ ํ๋ค.
gugudan = {}
gugudan.calculate = function {
// ...
}
functin main()
ํ์ต ์ฐธ๊ณ ์๋ฃ
๊ฐ์ฒด - WEB2 Javascript - 30.๊ฐ์ฒด ์ฝ๊ธฐ์ ์ฐ๊ธฐ / 31.๊ฐ์ฒด์ ๋ฐ๋ณต๋ฌธ / 32. ํ๋กํผํฐ์ ๋ฉ์๋
https://opentutorials.org/course/3085/18853
๋ด๊ฐ ์์ฑํ ์ฝ๋
(๊ธฐ์กด์ ๊ตฌ๊ตฌ๋จ_ํจ์ ํ์ผ ๋ด์ฉ์ ํ์ฉ)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>๊ตฌ๊ตฌ๋จ ์ ์ฒด ์ถ๋ ฅ</h1>
<script>
var gugudan = {}
gugudan.calculate = function (x) {
var ret = [];
for (var i = 1; i <= 9; i++) {
ret[i] = x * i;
}
console.log(ret);
return ret;
}
gugudan.print = function (n, ret) {
document.write("<h2>" + n + "๋จ</h2>")
for (var i = 1; i <= ret.length - 1; i++) {
var str = "";
str += n + " ๊ณฑํ๊ธฐ " + i + " ๋ " + ret[i] + "<br>";
document.write(str)
}
}
function main() {
for (var n = 2; n <= 9; n++) {
var results = gugudan.calculate(n);
gugudan.print(n, results);
}
}
main();
</script>
</body>
</html>
ํด์ค (์ฝ๋ฉ - ๊ฐ์ฒด๋ฅผ ํ์ฉํ ๊ตฌ๊ตฌ๋จ ๊ตฌํ)
์ฝ๋ฉ์ ํ๊ธฐ ์ ์..
- ๊ฐ์ฒด ๋ง๋ค๊ธฐ
var human = {}; - ํ๋กํผํฐ ๋ง๋ค๊ธฐ : ๊ฐ์ฒด์ด๋ฆ.ํ๋กํผํฐ์ด๋ฆ = ํ๋กํผํฐ์ ๋ด์ฉ
human.name = "crong"
human.money = 10000 - ๋ฉ์๋ ๋ง๋ค๊ธฐ
human.work = function(hour) {
//๋ฉ์๋ ๋ด์ฉ
} - this์ ์ฌ์ฉ
๊ฐ์ฒด์ ๋ฉ์๋ ์์์ ์ฌ์ฉํด, '๋' ์ฆ ๊ฐ์ฒด ์์ ์ ๊ฐ๋ฆฌํด.
๋ค๋ฅธ ๋ฉ์๋๋ ํ๋กํผํฐ๋ฅผ ์ฐธ์กฐํ ๋ ์ฌ์ฉ.
human.work = function(hour) {
this.money += 8530 * hour;
} - ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ ์ด์ .
- ์ฝ๋์ ์ ์ง.๋ณด์์ ์ข๋ค.
- ๊ฐ๋ ์ฑ์ด ๋์์ง๋ค.
-> ์ผ๋จ์ 'ํจ์'์ ์ต์ํด์ง๋ ๊ฒ์ด ๋ ์ค์ํ๋ค.
โ ์ฝ๋๋ฅผ ์งค ๋๋ ๊ฐ๋ก 80์ค์ด ๋์ด๊ฐ์ง ์๊ฒ ํ๋ ๊ฒ์ด ์ข๋ค.
์ฝ๋๊ฐ ๊ฐ๋ก๋ก ๋๋ฌด ๊ธธ๋ฉด ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๊ธฐ ๋๋ฌธ.
๋ณ์ ๋ฑ์ ์ฌ์ฉํด line์๋ฅผ ๋๋ฆฌ๋๋ผ๋, ๊ฐ๋ก ๊ธธ์ด๊ฐ ๋๋ฌด ๊ธธ์ด์ง์ง ์๊ฒ ํด์ผ ํ๋ค.
์๋ ์ปดํจํฐ์ ๋ชจ๋ํฐ ๊ฐ๋ก ๊ธธ์ด๊ฐ 80์ค๊น์ง ์ถ๋ ฅํด ์ค ๋ฐ์ ์ ๋.
๊ฐ์ฒด๋ฅผ ๋ฐฐ์ ์ผ๋..
console.log() -> console์ด๋ผ๋ ๊ฐ์ฒด์ log๋ผ๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ๊ฒ.
document.write() -> document ๋ผ๋ ๊ฐ์ฒด์ write๋ผ๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ๊ฒ์ด๋ค.
๐Javascript๋ผ๋ ์ธ์ด๋ ํ์์ ์ผ๋ก html๋ฌธ์๋ฅผ ์กฐ์ํ๊ธฐ ์ํด ๋ง๋ค์ด์ง ์ธ์ด์ด๋ค.
์น ๋ฌธ์๋ค๋ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ฐ์ฒด, ํ๋กํผํฐ, ๋ฉ์๋๋ก ์ด๋ฃจ์ด์ ธ ์๊ธฐ ๋๋ฌธ์ javascript๋ฅผ ํตํด ์กฐ์ํ ์ ์๋ ๊ฒ!
ํด์ค ์ฝ๋ (์ ๋ต)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>๊ตฌ๊ตฌ๋จ ์๊ฒฐํธ</h1>
<script>
gugudan = {};
gugudan.result = [];
gugudan.current = -1; // ์ฌ๊ธฐ์ ๋ง์ง๋ง์ผ๋ก ๊ณ์ฐํ ๋จ์ ์ ๋ณด๊ฐ ๋ค์ด๊ฐ๋ค.
gugudan.calculate = function(n) {
this.current = n; // gugudan.current์ ํ์ฌ ๊ณ์ฐํ๋ ๋จ์ ์ ๋ณด๋ฅผ ๋ฃ๋๋ค.
for (var i = 0; i < 9; i++) {
this.result[i] = n * (i + 1);
}
}
gugudan.print = function(){
document.write("<h2>" + this.current + "๋จ</h2>");
for (var i = 0; i < 9; i++){
var x = this.current;
var y = i + 1;
var z = this.result[i];
document.write(x + "*" + y + "=" + z + "<br>");
}
}
function main(){
for (var i = 2; i <= 9; i++) {
gugudan.calculate(i);
gugudan.print();
}
}
main();
</script>
</body>
</html>
๋ด ์ฝ๋์ ๋ค๋ฅธ ์
- ํ์ฌ ๊ณ์ฐ์ค์ธ ๋จ์ ์ ๋ณด๋ฅผ ๋ฃ๋ ํ๋กํผํฐ gugudan.current ๊ฐ ์๋ค.
.calculate์์ ๊ณ์ฐํ๊ธฐ ์ ์ gugudan.current์ ๊ฐ์ ๋ฃ๊ณ ,
.print์์ ์ถ๋ ฅํ ๋ ํ์ฌ ๊ณ์ฐํ ๋จ์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์์ ์ถ๋ ฅํ๋ค!
-.print์์
๊ฒฐ๊ณผ ์ถ๋ ฅ์ ํ์ํ ์ฝ๋๊ฐ ๋๋ฌด ๊ธธ์ด์ง์ ๋ณ์ x,y,z๋ฅผ ํ์ฉํด ์ฝ๋์ ๊ฐ๋
์ฑ์ ๋์ด๊ณ ๊ธธ์ด๋ฅผ ์ค์๋ค.
-.calculate์์ ๋งค๋ฒ ์ ์ํด ์ฐ๋ ret๋ฐฐ์ด์ gugudan.result๋ผ๋ ๊ฐ์ฒด ํ๋กํผํฐ๋ก ์ ์ํ๊ณ
ํ์ํ ๋ this.result ๋ก ๋ถ๋ฌ์ ์ฌ์ฉํ๋ค.