์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Absolute
- AGI
- ai
- AI agents
- AI engineer
- AI researcher
- ajax
- algorithm
- Algorithms
- aliases
- Array ๊ฐ์ฒด
- ASI
- bayes' theorem
- Bit
- Blur
- BOM
- bootstrap
- canva
- challenges
- ChatGPT
- Today
- In Total
A Joyful AI Research Journey๐ณ๐
[15] 230117 Ch. 9 ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด: 1. ๊ฐ์ฒด, 2. ๊ฐ์ฒด์ ์์ฑ ๋ฐ ์ฌ์ฉ, 3. ํ๋กํ ํ์ , 4. ์๋ฐ์คํฌ๋ฆฝํธ ๋ด์ฅ ๊ฐ์ฒด, 5. Array ๊ฐ์ฒด, 6. ์๋ฐ์คํฌ๋ฆฝํธ์์์ ์ค๋ฅ ์ฒ๋ฆฌ [K-๋์งํธ ํธ๋ ์ด๋ 15์ผ] ๋ณธ๋ฌธ
[15] 230117 Ch. 9 ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด: 1. ๊ฐ์ฒด, 2. ๊ฐ์ฒด์ ์์ฑ ๋ฐ ์ฌ์ฉ, 3. ํ๋กํ ํ์ , 4. ์๋ฐ์คํฌ๋ฆฝํธ ๋ด์ฅ ๊ฐ์ฒด, 5. Array ๊ฐ์ฒด, 6. ์๋ฐ์คํฌ๋ฆฝํธ์์์ ์ค๋ฅ ์ฒ๋ฆฌ [K-๋์งํธ ํธ๋ ์ด๋ 15์ผ]
yjyuwisely 2023. 1. 17. 12:50230117 Tue 15th class
Ch. 9 ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด
์ง๋: p. 338 ~ (๊ต์ฌ: HTML5 + CSS3 + JavaScript๋ก ๋ฐฐ์ฐ๋ ์นํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ด, ์ ์: ์ฒ์ธ๊ตญ)
HTML5+CSS3+JavaScript๋ก ๋ฐฐ์ฐ๋ ์นํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ด | ์ฒ์ธ๊ตญ - ๊ต๋ณด๋ฌธ๊ณ
HTML5+CSS3+JavaScript๋ก ๋ฐฐ์ฐ๋ ์นํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ด | ์นํ๋ก๊ทธ๋๋ฐ ์ด๋ณด์๋ ์ฝ๊ฒ ๋ฐฐ์ฐ๋ ์น ๊ฐ๋ฐ ์ง์นจ์!์ด ์ฑ ์ ์นํ๋ก๊ทธ๋๋ฐ์ ์ฒ์ ๋ฐฐ์ฐ๋ ์ด๋ณด์๋ค์ ์ํด ๊ธฐ์ด๋ถํฐ ์ฐจ๊ทผ์ฐจ๊ทผ ์ค๋ช ํ๋ค. 1~3์ฅ์
product.kyobobook.co.kr
์ค๋ ๋ฐฐ์ด ๊ฒ ์ค ๊ธฐ์ตํ ๊ฒ์ ์ ๋ฆฌํ๋ค.
์ง๋ ์์
๋ ๋ฐฐ์ด ๊ฒ ์ค ๋ค์ ๊ธฐ์ตํ ๊ฒ
- ์นด๋ฉ ํ๊ธฐ๋ฒ(Camel case ์นด๋ฉ ์ผ์ด์ค[*]) ๋๋ ๋ํ ํ๊ธฐ๋ฒ
: ํ๋ก๊ทธ๋๋ฐ์์ ํ์ผ, ๋ณ์, ํจ์ ๋ฑ ๋์์ ์ด๋ฆ์ ๋์ด์ฐ๊ธฐ ์์ด ์ง๊ธฐ ์ํ์ฌ ๋ฐ๋ฅด๋ ๊ด๋ก์ธ ๋ค์ด๋ฐ์ปจ๋ฒค์
(Naming convention)์ ํ๋๋ค.
๋จ์ด ์ ์ฒด์ ์ผ๋ก ์๋ฌธ์๋ฅผ ์ฌ์ฉํ์ง๋ง, ๋งจ ์ฒซ ๊ธ์๋ฅผ ์ ์ธํ ๊ฐ ํฉ์ฑ์ด์ ์ฒซ ๊ธ์๋ง ๋๋ฌธ์๋ก ํ๊ธฐํ๋ค. ํฉ์ฑํ ๋จ์ด์ ๋ชจ์์ด ์๋ด๋ํ์ ๋ฑ๊ณผ ๋น์ทํ๋ค๋ ๋ป์์ ์ด๋ฆ๋ถ์๋ค.
Common examples include "iPhone" and "eBay".
- The innerHTML property sets or returns the HTML content (inner HTML) of an element.
์๋ฐ์คํฌ๋ฆฝํธ์์
- [] ๋ฐฐ์ด
ex) var a = ["a", 1, "b"]
a.length = 3 (๋ฐฐ์ด์ ๊ธธ์ด๋ 3์ด๋ค.)
var s = "์๋ฐ์คํฌ๋ฆฝํธ" (๋ฌธ์์ด)
s.length = 6 (๋ฌธ์์ด์ ๊ธธ์ด๋ 6์ด๋ค.)
- {} ๊ฐ์ฒด
- () ํจ์
- ๋ฆฌํฐ๋ด์ ๋ณ์์ ๊ฐ์ด ๋ณํ์ง ์๋ ๋ฐ์ดํฐ(๋ฉ๋ชจ๋ฆฌ ์์น ์์ ๊ฐ)๋ฅผ ์๋ฏธํ๋ค.
- ๊ฐ์ฒด (Object): ์์ฑ๊ณผ ๋ฉ์๋๋ก ์ด๋ฃจ์ด์ ธ ์๋ ํ๋์ ์ํฐํฐ(๋ฌถ์)
- ์์ ๊ฐ์ฒด๋ ๊ฐ์ฒด์ ๋ด์ฉ์ ๋ณ๊ฒฝ ํ ์ ์๋ ๊ฐ์ฒด์ด๋ค.
In computer science, a literal is a notation for representing a fixed value in source code.
- ํจ์์ ๋ฉ์๋์ ์ฐจ์ด์ : ํจ์๊ฐ ๊ฐ์ฒด ์์ ๋ด์ฅ๋์ด ์์ผ๋ฉด ๋ฉ์๋๋ผ๊ณ ํ๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ๊ฑฐ์ ๋ชจ๋ ํจ์๊ฐ ๊ฐ์ฒด ์์ ๋ด์ฅ๋์ด ์๋ ๋ฉ์๋์ด๋ค.
ex) alert() ํจ์๋ window ๊ฐ์ฒด์ ํ๋์ ๋ฉ์๋์ด๋ค.
- ๊ฐ์ฒด ์์ ํจ์๋ฅผ ์ฌ์ฉํ๋ค.
ex) document.write()
๊ฐ์ฒด.ํจ์()
2023.01.13 - [1. Revision 2023/Javascript] - [13] 230113 Ch. 8 ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ์ด(5): ๋ฐฐ์ด
๋ณ์ (variable) |
๋ฐฐ์ด (Array) |
๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ ๊ณณ ํ๋์ ๊ฐ์ ์ ์ฅํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ์ ๊ณต๊ฐ. ํ๋์ ๋ณ์์๋ ์ค๋ก์ง ํ๋์ ๊ฐ๋ง ์ ์ฅํ ์ ์๋ค. |
๋์ฉ๋์ ์๋ฃ๋ฅผ ์ ์ฅํ๋ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ์ด๋ค. ๋ฐฐ์ด์ ์ ์ฒด ์ง๋จ์ ํ๋์ ์ด๋ฆ์ ๋ถ์ฌํ ๋ค์, ๊ฐ๊ฐ์ ๋ฐ์ดํฐ์ ์ซ์๋ก ๋ ๋ฒํธ๋ฅผ ๋ถ์ฌ์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ด๋ค. ๋ฐฐ์ด์ ์ฌ์ฉํ๋ฉด ๋ง์ ๊ฐ์ ์ ์ฅํ ์ ์๋ ๊ณต๊ฐ์ ํ ๋น๋ฐ์ ์ ์๋ค. |
1. ์ ์ธ var a = 10;// a๋ผ๋ ๋ณ์์ 10์ ์ ์ฅ var b = 20;// a๋ผ๋ ๋ณ์์ 20์ ์ ์ฅ var c = 30;// a๋ผ๋ ๋ณ์์ 30์ ์ ์ฅ |
1. ์ ์ธ var a = [10,20,30] |
2. ํธ์ถ a b c |
2. ํธ์ถ a[0] a[1] a[2] |
Ch. 9 ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด
์ฑ ์ ๋ชฉ์ฐจ
-๊ฐ์ฒด
-๊ฐ์ฒด ์์ฑ ๋ฐ ์ฌ์ฉ
-ํ๋กํ ํ์
-์๋ฐ์คํฌ๋ฆฝํธ ๋ด์ฅ ๊ฐ์ฒด
-Array ๊ฐ์ฒด
-์๋ฐ์คํฌ๋ฆฝํธ์์์ ์ค๋ฅ ์ฒ๋ฆฌ
1. ๊ฐ์ฒด (Object) p. 330
์๋ฐ์คํฌ๋ฆฝํธ์ ๊ฐ์ฅ ๊ธฐ์ด์ ์ธ ์๋ฃํ์ด๋ค.
๋ถ๋ณ๊ฒฝ ๊ฐ์ฒด: ๋ด์ฉ์ ๋ณ๊ฒฝํ ์ ์๋ ๊ฐ์ฒด ex) ๋ฌธ์์ด(String), ์์นํ(Number), ๋ถ์ธํ(Boolean)
๊ฐ์ฒด๋ ์ค์ ์ธ์์ ์กด์ฌํ๋ ์ฌ๋ฌผ์ ๋ชจ๋ธ๋งํ ๊ฒ์ด๋ค.
๊ฐ์ฒด = ๋ฐ์ดํฐ(data) + ๋์(action)
์ฌ๋ฌผ์ ์์ฑ๊ณผ ๋์์ ๋ฌถ์ด์ ํํํ๋ ๊ธฐ๋ฒ์ด๋ค.
๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ: ๋ฐ์ดํฐ(๋ณ์)์ ๋์(ํจ์)์ ํ๋๋ก ํฉ์ณ์ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ ๊ธฐ๋ฒ์ด๋ค.
๊ฐ์ฒด (Object): ์์ฑ๊ณผ ๋ฉ์๋๋ก ์ด๋ฃจ์ด์ ธ ์๋ ํ๋์ ์ํฐํฐ(๋ฌถ์)
=
๊ฐ์ฒด ์์ ๋ณ์(๋ฐ์ดํฐ): ์์ฑ(property)
๊ฐ์ฒด ์์ ๋ณ์(๋ฐ์ดํฐ(data): ๊ฐ์ฒด๊ฐ ๊ฐ์ง๊ณ ์๋ ํน์ฑ๊ฐ): ์์ฑ(property)
ex) var model; var speed; var color;
ex) ๋ชจ๋ธ, ์๋, ์์, ์ ์กฐ์ฌ, ๋ง๋ ฅ, ์ฐ์, ๋ฐฐ๊ธฐ๋, ์ฃผํ ๊ฑฐ๋ฆฌ, ์ฐ๋น
+
๊ฐ์ฒด ์์ ํจ์(๋์): ๋ฉ์๋(method)
๊ฐ์ฒด ์์ ํจ์(Function)(๋์(action): ๊ฐ์ฒด๊ฐ ์ํํ ์ ์๋ ํ๋): ๋ฉ์๋(method)
ex) function brake(speed){...}, function accel(speed){...}
ex) ๊ฐ์ํ๊ธฐ, ๊ฐ์ํ๊ธฐ, ์ถ๋ฐํ๊ธฐ, ๋ฐฉํฅ ์ ํํ๊ธฐ, ๊ธฐ์ ๋ณ์ํ๊ธฐ
function brake(speed){ //๊ฐ์ฒด์ ๋ฉ์๋
...
}
var model; //๊ฐ์ฒด์ ์์ฑ
var speed; //๊ฐ์ฒด์ ์์ฑ
var color; //๊ฐ์ฒด์ ์์ฑ
function accel(speed){ //๊ฐ์ฒด์ ๋ฉ์๋
...
}
ํจ์์ ๋ฉ์๋์ ์ฐจ์ด์ : ํจ์๊ฐ ๊ฐ์ฒด ์์ ๋ด์ฅ๋์ด ์์ผ๋ฉด ๋ฉ์๋๋ผ๊ณ ํ๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ๊ฑฐ์ ๋ชจ๋ ํจ์๊ฐ ๊ฐ์ฒด ์์ ๋ด์ฅ๋์ด ์๋ ๋ฉ์๋์ด๋ค.
ex) alert() ํจ์๋ window ๊ฐ์ฒด์ ํ๋์ ๋ฉ์๋์ด๋ค.
2 ๊ฐ์ฒด ์์ฑ ๋ฐ ์ฌ์ฉ p. 332
2.1 ๊ฐ์ฒด์ ์ข ๋ฅ
1) ๋ด์ฅ ๊ฐ์ฒด (built-in object): ์์ฑ์๊ฐ ๋ฏธ๋ฆฌ ์์ฑ๋์ด ์๋ค.
(์์ฑ์: ๊ฐ์ฒด๊ฐ ์์ฑ๋ ๋๋ง๋ค ์คํ๋๋ ๋ฉ์๋
์์ฑ์๋ ๊ฐ์ฒด๋ฅผ ์ด๊ธฐํ(๋ณ์์ ์ ์ผ ์ฒ์ ๋ค์ด๊ฐ๋ ๊ฐ ex) var a = 10;) ํ๋ ์ญํ ์ ํ๋ค.
A constructor is a special method of a class or structure in object-oriented programming that initializes a newly created object of that type. Whenever an object is created, the constructor is called automatically.)
ex) Date, String, Array ex) document.write("์๋ "); ๊ฐ์ฒด ํจ์ document: HTML ๋ฌธ์๋ฅผ ๋ํ๋ด๋ ๋ด์ฅ ๊ฐ์ฒด์ด๋ค. Document ๊ฐ์ฒด๋ HTML ์์์ ๊ด๋ จ๋ ์์ ์ ๋์์ฃผ๋ ๋ค์ํ ๋ฉ์๋๋ฅผ ์ ๊ณตํ๋ค. write: ํจ์ |
2) ์ฌ์ฉ์ ์ ์ ๊ฐ์ฒด (custom obejct) : ์ฌ์ฉ์๊ฐ ์์ฑ์๋ฅผ ์ ์ํ๋ค.
2.2 ๊ฐ์ฒด ์์ฑ ๋ฐฉ๋ฒ
1) ๊ฐ์ฒด ์์(object literal)๋ก๋ถํฐ ๊ฐ์ฒด ์์ฑ
๊ฐ์ฒด๋ฅผ ๊ฐ์ฒด ์์๋ก๋ถํฐ ์ง์ ์์ฑํ๋ค.
(์์ ๊ฐ์ฒด๋ ๊ฐ์ฒด์ ๋ด์ฉ์ ๋ณ๊ฒฝ ํ ์ ์๋ ๊ฐ์ฒด๋ฅผ ๋งํ๋ค.
In computer science, a literal is a notation for representing a fixed value in source code.)
์ฑ๊ธํค(singleton): ๊ฐ์ฒด๊ฐ ํ๋๋ง ์์ฑ๋๋ค.
์์1)
//์๋์ฐจ๋ผ๋ ๊ฐ์ฒด
//์๋์ฐจ์ ๊ด๋ จ๋ ๋ณ์ (model, speed, color)
var model = "520d";
var speed = 60;
var coloar = "red";
//์๋์ฐจ์ ๊ด๋ จ๋ ํจ์
function brake(){
speed -= 10; //speed = speed - 10;
}
function excel(){
speed += 10; //speed = speed + 10;
}
์์2)
var car = {
//๊ฐ์ฒด์์์ ๋ณ์ ์ ์ธ
model: "520d",
speed: 60,
color: "red",
//๊ฐ์ฒด์์์ ํจ์ ์ ์ธ
brake: function(){this.speed -= 10; return this.speed},//speed = speed-10;
excel: function(){this.speed += 10;}//speed = speed+10;
}
car.speed=70;
document.writeln(car.speed+"<br>");
document.writeln(car.brake());
๊ฒฐ๊ณผ)
70
60
2) ์์ฑ์ ํจ์(Constructor Function)๋ฅผ ์ด์ฉํ ๊ฐ์ฒด ์์ฑ
์ฌ์ฉ์ ์ ์ ๊ฐ์ฒด: ๊ฐ๋ฐ์๋ ์์ ๋ง์ ๊ฐ์ฒด๋ ์์ฑํ ์ ์๋ค.
์ฌ์ฉ์ ์ ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ค๋ฉด ์์ฑ์๋ผ๋ ํน๋ณํ ํจ์๊ฐ ํ์ํ๋ค.
์์ฑ์๋ ๊ฐ์ฒด๋ฅผ ์ด๊ธฐํ(๋ณ์์ ์ ์ผ ์ฒ์ ๋ค์ด๊ฐ๋ ๊ฐ ex) var a = 10;) ํ๋ ์ญํ ์ ํ๋ค.
๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ์ฐ์ฐ์(์ด๋ค ํจ์์ ์์ฉํด ๊ทธ ํจ์๋ฅผ ๋ค๋ฅธ ํจ์๋ก ๋ณํ์ํค๋ ํจ์)๋ new์ด๋ค.
∴ ์์ฑ์ ํจ์๋ฅผ ์ด์ฉํ์ฌ ๊ฐ์ฒด๋ฅผ ์ ์ํ๊ณ new๋ฅผ ํตํ์ฌ ๊ฐ์ฒด์ ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ค.
An instance is a specific realization of any object in object-oriented programming.
new ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ์ด๊ธฐํํ ์ ์๋ค. ์ด๋ ์ฌ์ฉ๋๋ ๋ฉ์๋๋ฅผ ์์ฑ์(constructor)๋ผ๊ณ ํ๋ฉฐ,
์ด ๋ฉ์๋๋ ์๋กญ๊ฒ ์์ฑ๋๋ ๊ฐ์ฒด๋ฅผ ์ด๊ธฐํํ๋ ์ญํ ์ ํ๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ ์์ ํ์
์ ์ํ ์์ฑ์๋ฅผ ๋ฏธ๋ฆฌ ์ ์ํ์ฌ ์ ๊ณตํ๋ค.
(์์ ํ์
์ ์ ์, ์ค์, ๋ฌธ์, ๋
ผ๋ฆฌ ๋ฆฌํฐ๋ด ๋ฑ ์ค์ ๋ฐ์ดํฐ ๊ฐ์ ์ ์ฅํ๋ ํ์
์ด๋ค.)
์ฐธ๊ณ : https://developer-talk.tistory.com/281
์์1)
var day = new Date(); // new ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ Date ํ์
์ ๊ฐ์ฒด๋ฅผ ์์ฑํจ.
document.write("์ฌํด๋ " + day.getFullYear() + "๋
์
๋๋ค.");
this๋ ์ฝ๋๋ฅผ ์คํํ๋ ํ์ฌ ๊ฐ์ฒด๋ฅผ ์๋ฏธํ๋ค. ์์ฑ์๋ ์ ๋ฌ๋ ๋งค๊ฐ ๋ณ์๊ฐ์ผ๋ก ํ์ฌ ๊ฐ์ฒด์ ์์ฑ์ ์ค์ ํ๋ค.
this๊ฐ ์๋ค๋ฉด ์์ฑ์ ์ง์ญ ๋ณ์๋ก ํผ๋ํ ์ ์๊ธฐ ๋๋ฌธ์ ๊ฐ์ฒด์ ์์ฑ์๋ ๋ฐ๋์ this๋ฅผ ๋ถ์ธ๋ค.
์์ this๊ฐ ๋ถ์ธ ๋ณ์ = ์์ฑ
์์ this๊ฐ ๋ถ์ ํจ์ = ๋ฉ์๋ (ํจ์๊ฐ ๊ฐ์ฒด ์์ ๋ด์ฅ๋์ด ์์ผ๋ฉด ๋ฉ์๋)
๋ด์ฅ ๊ฐ์ฒด๋ ๋ฏธ๋ฆฌ ์์ฑ์ ํจ์๊ฐ ์์ฑ๋์ด ์์ผ๋ฏ๋ก ์์ฑ์๋ฅผ ์์ฑํ ํ์ ์์ด new ํ์ฌ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ์ฌ์ฉํ๋ฉด ๋๋ค.
์์2)
function Car(model, speed, color){ //Car ์์ฑ์ ์ ์ธ
// ์์ฑ
this.model=model;
this.speed=speed;
this.color=color;
// ํจ์
brake = function(){
this.speed -= 10; // this.speed = this.speed - 10
}
excel = function(){
this.speed += 10; // this.speed = this.speed + 10
}
}
//Car ์์ฑ์ ํธ์ถ
mycar = new Car("520d", 60, "red"); //๊ฐ model, speed, color
//์์ฑ์ ์ด์ฉํด์ ๊ฐ ๋ฐ๊พผ๋ค.
mycar = new Car("520d", 60, "yellow");
document.write("๋ชจ๋ธ: "+mycar.model+" ์๋: "+mycar.speed+"<br>")
์์3) ๊ฐ์ฒด ์ด์ฉ ๊ณ์ฐ๊ธฐ
์ฐธ๊ณ : https://ko.javascript.info/array-methods
2.3 ๊ฐ์ฒด ๋ฉค๋ฒ ์ฌ์ฉํ๊ธฐ
๊ฐ์ฒด ๋ฉค๋ฒ๋ ๊ฐ์ฒด ์์ ์์ฑ๊ณผ ๋ฉ์๋์ด๋ค.
.(dot)์ ์ฌ์ฉํ๋ค.
๋จผ์ ์ด๋ค ๊ฐ์ฒด์ ์ํด ์๋์ง ๋งํ๊ณ ์ด๋ฆ์ ๋งํ๋ค.
ex)
myCar.color = "red";
๊ฐ์ฒด ์ด๋ฆ, ์์ฑ ์ด๋ฆ
myCar.brake();
๊ฐ์ฒด ์ด๋ฆ, ๋ฉ์๋ ์ด๋ฆ
3. ํ๋กํ ํ์ p. 338
์๋ฐ์คํฌ๋ฆฝํธ์ ๋ชจ๋ ๊ฐ์ฒด๋ ํ๋กํ ํ์
(prototype)์ด๋ผ๋ ๊ฐ์ฒด๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
๋ชจ๋ ๊ฐ์ฒด๋ ๊ทธ๋ค์ ํ๋กํ ํ์
์ผ๋ก๋ถํฐ ํ๋กํผํฐ(์์ฑ)์ ๋ฉ์๋๋ฅผ ์์๋ฐ๋๋ค.
์ด์ฒ๋ผ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ชจ๋ ๊ฐ์ฒด๋ ์ต์ํ ํ๋ ์ด์์ ๋ค๋ฅธ ๊ฐ์ฒด๋ก๋ถํฐ ์์์ ๋ฐ์ผ๋ฉฐ, ์ด๋ ์์๋๋ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ๊ฐ์ฒด๋ฅผ ํ๋กํ ํ์
(prototype)์ด๋ผ๊ณ ํ๋ค.
์ฐธ๊ณ : http://www.tcpschool.com/javascript/js_object_prototype
* ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ชจ๋ ๊ฐ์ฒด๋ค์ด ๊ฐ์ง๊ณ ์๋ prototype์ด๋ผ๋ ์จ๊ฒจ์ง ๊ฐ์ฒด๋ฅผ ์ด์ฉํด์ ๊ณต์ ๋๋ ๋ฉ์๋๋ฅผ ์์ฑํ ์ ์๋ค.
ํ๋์ ๊ฐ๋ณ์ ์ธ ๊ฐ์ฒด๊ฐ ๊ฐ์ง๊ณ ์๋
์์ฑ์ด๋ ๋ฉ์๋๋ฅผ ์ฌ๋ฌ ๊ฐ์ฒด๊ฐ ๊ณต์ ํ๋ ๊ฒ์ด ์ด๋ค ๊ฒฝ์ฐ์๋ ํ์ํ๋ค.
์ ์ ๋ํ๋ด๋ ๊ฐ์ฒด๊ฐ ํ์ํ๊ฒ ๋์ด์ ์์ฑ์ ํจ์๋ฅผ ์ ์ํ์๋ค.
์์)
function Point(xpos, ypos){ // ์์ฑ์() ๋๋ฌธ์ Point์ด๋ฏ๋ก ์์ฑ์๋ก ์ธ์ํ๋ค.
// ์๋์ ๋ ๋ณ์์ ์ด๊ธฐํ๋ฅผ ์ํค๋ ๊ธฐ๋ฅ์ด๋ค.
this.x = xpos; // ๋ณ์
this.y = ypos; // ๋ณ์
this.getDistance = function(){ // ํจ์
return Math.sqrt(this.x * this.x + this.y * this.y);
};
}
var p1 = new Point(10, 20);
var d1 = p1.getDistance();
var p2 = new Point(10, 30);
var d2 = p2.getDistance();
document.writeln(d1+"<br>");
document.writeln(d2+"<br>");
๊ฒฐ๊ณผ)
22.360679774997898
31.622776601683793
3.1 ํ๋กํ ํ์
์ฒด์ธ (prototype chain) p.342
์๋ฐ์คํฌ๋ฆฝํธ์์ ์์ฑ์ด๋ ๋ฉ์๋๋ฅผ ์ฐธ๊ณ ํ๊ฒ ๋๋ฉด ๋ค์๊ณผ ๊ฐ์ ์์๋๋ก ์ฐพ๋๋ค.
1. ๊ฐ์ฒด ์์ ์์ฑ์ด๋ ๋ฉ์๋๊ฐ ์ ์๋์ด ์๋์ง ์ฒดํฌํ๋ค. 2. ๊ฐ์ฒด ์์ ์ ์๋์ด ์์ง ์์ผ๋ฉด ๊ฐ์ฒด์ prototype์ด ์์ฑ์ด๋ ๋ฉ์๋๋ฅผ ๊ฐ์ง๊ณ ์๋์ง ์ฒดํฌํ๋ค. 3. ์ํ๋ ์์ฑ/๋ฉ์๋๋ฅผ ์ฐพ์ ๋๊น์ง ํ๋กํ ํ์ ์ฒด์ธ(chain)์ ๋ฐ๋ผ์ ์ฌ๋ผ๊ฐ๋ค. |
์๋ฐ์คํฌ๋ฆฝํธ์์๋ ํ๋กํ ํ์ ์ ์ด์ฉํด ์์์ ์ด๋ ์ ๋ ๊ตฌํํ ์ ์๋ค.
4. ์๋ฐ์คํฌ๋ฆฝํธ ๋ด์ฅ ๊ฐ์ฒด p.343
์๋ฐ์คํฌ๋ฆฝํธ ๋ด์ฅ ๊ฐ์ฒด๋ง ์ฌ์ฉํด๋ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ๊ธฐ์ ์ถฉ๋ถํ๋ค.
4.1 Date ๊ฐ์ฒด
Date ๊ฐ์ฒด๋ ๋ ์ง์ ์๊ฐ ์์
์ ํ๋๋ฐ ์ฌ์ฉ๋๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ, ์๋นํ ๋ง์ด ์ฌ์ฉ๋๋ ๊ฐ์ฒด์ด๋ค.
์๋ก์ด Date ๊ฐ์ฒด๋ ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ๋ค.
var today = new Date(); //ํ์ฌ ๋ ์ง๋ฅผ ๊ฐ์ง ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค.
4.1.1 Date ๊ฐ์ฒด ์์ฑ์
Date ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๊ธฐ๋ณธ์ ์ธ 4๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค. ๋ฌธ์์ด์ ์ธ์๋ก ์ค ์ ์๊ณ , ์ ์๋ฅผ ์ค ์๋ ์๋ค.
์์1)
new Date(); //ํ์ฌ ๋ ์ง์ ์๊ฐ
new Date(milliseconds); //1970/01/01 ์ดํ์ ๋ฐ๋ฆฌ์ด
new Date(dateString); //๋ค์ํ ๋ฌธ์์ด
new Date(year, month, date[, hours[, minutes[, seconds[,ms]]]])
์์2) ์์ 0๋ถํฐ ์์ํ๋ค.
var d1 = new Date(2023, 7, 24); //2023๋
8์ 24์ผ
var d2 = new Date(2023, 7, 24, 18, 30, 0);
var d3 = new Date(2023, 7, 24, 18, 30, 0, 0);
์์3)
var d1 = new Date(2023, 7, 21, 0, 0, 0);
var d2 = new Date("January 20, 2023 11:13:00");
alert(d1);
alert(d2);
๊ฒฐ๊ณผ)
4.1.2 Date์ ๋ฉ์๋
์์)
var date = new Date(2022,10,25,17,30,35);
//alert(today);
document.write(date.getDate()+"<br>"); //getDate()ํจ์๋ฅผ ์ด์ฉํด์ ๋ ์ง ํ์ ์ค์์ ์ผ์ ํด๋น๋๋ ๊ฐ์ ๊ฐ์ ธ์จ๋ค.
//25
document.write(date.getDay()); //getDate()ํจ์๋ฅผ ์ด์ฉํด์ ๋ ์ง ํ์ ์ค์์ ์์ผ์ ํด๋น๋๋ ๊ฐ์ ๊ฐ์ ธ์จ๋ค.
//0~6 0:์ผ์์ผ
๊ฒฐ๊ณผ)
4.1.3 ๋ ๊ฐ์ ๋ ์ง ๋น๊ตํ๊ธฐ p. 347
Date ๊ฐ์ฒด๋ ๋ ๊ฐ์ ๋ ์ง๋ฅผ ๋น๊ตํ๋ ๋ฐ๋ ์ฌ์ฉ๋๋ค. ex) ์ฌ์ฉ์๋ก๋ถํฐ ๋ฐ์ ๋ ์ง๋ฅผ ํน์ ํ ๋ ์ง์ ๋น๊ตํ ์ ์๋ค.
๋จผ์ ๋ชจ๋ ๋ ์ง๋ฅผ 1970๋
1์ 1์ผ ์ดํ๋ก ๋ฐ๋ฆฌ์ด๋ก ๋ณํํ๋ค. getTime()์ด๋ผ๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
๋ ์ง ๊ฐ๊ฒฉ์ ๊ตฌํ ๋๋ ๋ฐ๋ฆฌ์ด์ ์ฐจ์ด๊ฐ์ (1000*60*60*24)๋ก ๋๋์ด์ฃผ๋ฉด ๋๋ค.
(๋ฐ๋ฆฌ์ด(millisecond, ms)๋ ์ฒ ๋ถ์ 1์ด 1 ์ด [s] = 1000 ๋ฐ๋ฆฌ์ด [ms]) 1์ผ์ 1000 * 60 * 60 * 24 = 86,400,000 ๋ฐ๋ฆฌ์ด 1์๊ฐ์ 1000 * 60 * 60 = 3,600,000 ๋ฐ๋ฆฌ์ด 1๋ถ์ 1000 * 60 = 60000๋ฐ๋ฆฌ์ด 1์ด๋ 1000 ๋ฐ๋ฆฌ์ด |
์์)
<script>
function checkDate(){
//id๊ฐ "pdate"์ธ ์์์ value์์ฑ์ ์ฝ์ด์ค๋ค.
var s = document.getElementById("pdate").value; //2023-01-01
//alert(s);
//ํ์์ ๊ฐ๊ฒ ๋ฐ๊พผ๋ค.
var pdate = new Date(s); // Sun Jan 01 2023 09:00:00 GTM+0900 (ํ๊ตญ ํ์ค์)
//alert(pdate);
var today = new Date(); // Tue Jan 17 2023 10:09:28 GMT+0900 (ํ๊ตญ ํ์ค์)
//alert(today.getTime);
//Math.floor: ๋ด๋ฆผ
var diff = Math.floor(diff / (1000*60*60*24));
if (days > 30){
alert("๊ตํ ๊ธฐํ์ด ์ง๋ฌ์ต๋๋ค.");
}
}
</script>
</head>
<body>
๊ตฌ์
๋ ์ง :
<input type="date" id="pdate">
<button onclick="checkDate()">๊ฒ์ฌ</button>
</body>
๊ฒฐ๊ณผ)
4.1.4 ์นด์ดํธ๋ค์ด ํ์ด๋จธ ๋ง๋ค๊ธฐ p. 348
- The innerHTML property sets or returns the HTML content (inner HTML) of an element.
<div id='remaining'> (innerHTML) </div> ์์ ์ฌ์ด์ ๋น์ด ์๋ ๊ณณ์ด innerHTML์ด๋ค.
์ด๊ณ ๋ซ๋ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ค. <input type="text"></input>์ ๊ฒฝ์ฐ ์ฌ์ฉ์ด ์ ๋๋ค.
The Math.floor() static method always rounds down and returns the largest integer less than or equal to a given number.
์์) ํน์ ๋ ์ง๊น์ง ๋จ์ ๋ ์ง๋ฅผ ํ์ํ๋ ์ฝ๋
๋ด๋
1์ 1์ผ๊น์ง ๋จ์ ๋ ์ง๋ฅผ ์น ํ์ด์ง์ ํ์ํ๋ ์์ ์ด๋ค.
<div id='remaining'> </div>
<script>
function datesUntilNewYear(){//starts
var now = new Date(); //์ค๋ ๋ ์ง
var newYear = new Date('January 1,' + (now.getFullYear() + 1));
var diff = newYear - now;
//Math.floor(): ์์์ ๋ฒ๋ฆผ
var milliseconds = Math.floor(diff % 1000);
diff = diff / 1000;
var seconds = Math.floor(diff % 60);
diff = diff / 60;
var minutes = Math.floor(diff % 60);
diff = diff / 60;
var hours = Math.floor(diff % 24);
diff = diff / 24;
var days = Math.floor(diff);
var outStr = '๋ด๋
๋ ์ ์ ๊น์ง ' + days + '์ผ, ' + hours + '์๊ฐ, ' + minutes;
outStr += '๋ถ, ' + seconds + '์ด ' + '๋จ์์ต๋๋ค.';
document.getElementById('remaining').innerHTML = outStr;
//1์ด๊ฐ ์ง๋๋ฉด ๋ค์ ํจ์๋ฅผ ํธ์ถํ๋ค. 1์ด๋ง๋ค datesUntilNewYear ํจ์ ์คํํ๋ค.
setTimeout("datesUntilNewYear()", 1000);
}//ends
//ํ์ด๋จธ๋ฅผ ์์ํ๋ค.
datesUntilNewYear();
๊ฒฐ๊ณผ)
4.1.5 ์๊ณ ๋ง๋ค๊ธฐ p. 350
์๋ก์ด Date ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ์๊ฐ, ๋ถ, ์ด๋ฅผ ๊ณ์ฐํ๋ฉด ๋๋ค.
์์)
<!-- ์ฌ์ด์ inner.HTML์ด ์๋ค. -->
<div id="clock"></div>
<script>
function setClock(){
var now = new Date();
//์๊ฐ, ๋ถ, ์ด๋ง ๋จ๊ฒ ํ๋ค.
var s = now.getHours() + ":" + now.getMinutes() + ":" + now.getSeconds();
//s ๋์ now๋ก ํ๋ฉด ์ ์ฒด๊ฐ ๋์จ๋ค.
document.getElementById("clock").innerHTML = now;
//1000: ๋๋ฒ์งธ ์ธ์์ ์๊ฐ(๋ฐ๋ฆฌ์ด)๋งํผ ์ง๋ ํ์ ์ฒซ ๋ฒ์งธ ์ธ์๋ฅผ ํธ์ถํ๋ค.
//์ฆ ์ฌ๊ธฐ์๋ 1์ด๊ฐ ์ง๋ ํ์ setClock()์ ํธ์ถํ๋ค.
setTimeout("setClock()",1000);
}
setClock();
</script>
๊ฒฐ๊ณผ)
4.2 Number ๊ฐ์ฒด p. 350
Number ๊ฐ์ฒด๋ ์์นํ ๊ฐ์ ๊ฐ์ธ์ ๊ฐ์ฒด๋ก ๋ง๋ค์ด ์ฃผ๋ ๋ฉํผ(wrapper) ๊ฐ์ฒด์ด๋ค.
๋ฉํผ ๊ฐ์ฒด๋ ์์น๊ฐ์ ์ง์ ์ฌ์ฉํ ์๋ ์๊ณ ๋ฐ๋์ ๊ฐ์ฒด๊ฐ ํ์ํ ๊ฒฝ์ฐ์ ์ฌ์ฉ๋๋ค.
Number ๊ฐ์ฒด๋ new Number()๋ก ์์ฑํ ์ ์๋ค.
var num = new Number(7);
๋จ์ํ ์์น๊ฐ์๋ ๋ฉ์๋๋ฅผ ๋ถ์ด๋ฉด ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ์๋์ ์ผ๋ก ์ซ์์ ๋ฉํผ ๊ฐ์ฒด๋ฅผ ๊ฐ์ธ์ ๊ฐ์ฒด๋ก ๋ง๋ ๋ค.
1.234.toString(); // 1.234๋ฅผ ๊ฐ์ธ๋ ๋ฉํผ ๊ฐ์ฒด๊ฐ ํ์ฑ๋๋ค.
Number ๊ฐ์ฒด์ ์์ฑ ์ค ์ผ๋ถ:
ex) MAX VALUE - ํํํ ์ ์๋ ๊ฐ์ฅ ํฐ ๊ฐ
MIN VALUE - ํํํ ์ ์๋ ๊ฐ์ฅ ์์ ๊ฐ
Nan - "Not-a-Number"์ ์ฝ์
์์)
var count1, count2;
count1 = new Number(1.237);
count2 = 1.238;
if(count1.toFixed(2) == count2.toFixed(2)){
alert("์์์ 2์งธ ์๋ฆฌ๊น์ง ๊ฐ์ต๋๋ค.");
}
๊ฒฐ๊ณผ)
4.3 String ๊ฐ์ฒด p.352
์์)
<script>
function checkID(){
var s = document.getElementById("id").value;
//s.length: ๊ธ์ ์ (= ๋ฌธ์์ด ๊ธธ์ด)
if (s.length < 6){
alert("์์ด๋๋ 6๊ธ์ ์ด์์ด์ด์ผ ํฉ๋๋ค.");
}
}
</script>
</head>
<body>
์์ด๋: <input type="text" id="id" size=10>
<button onclick="checkID()">๊ฒ์ฌ</button>
</body>
๊ฒฐ๊ณผ)
4.3.1 ๋์๋ฌธ์ ๋ณํ
toUpperCase()์toLowerCase()๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฌธ์์ด์ ๊ธ์๋ฅผ ๋๋ฌธ์ ํน์ ์๋ฌธ์๋ก ๋ณํํ ์ ์๋ค.
์์)
var s = "aBcDeF";
var result1 = s.toLowerCase();
var result2 = s.toUpperCase();
document.writeln(result1);
document.writeln(result2+"<br>");
๊ฒฐ๊ณผ)
4.3.2 ๋ฌธ์์ด ๋ถ์ด๊ธฐ
concat() ๋ฉ์๋๋ ํ๋์ ๋ฌธ์์ด์ ๋ค๋ฅธ ๋ฌธ์์ด๊ณผ ํฉ์น๋ค.
ex) ์ฃผ์ ์
๋ ฅ์นธ์ด 2๊ฐ์ธ๋ฐ db ๋ฃ์ ๋ ํฉ์น๋ค. (์ฐ๊ฒฐ์ํจ๋ค.)
ex) ์๋
์์ผ์ ๋ฐ๋ก ์
๋ ฅํ๋๋ผ๋ ์๋์ ์ผ๋ก db์ ์ฐ๊ฒฐ๋ ๊ฒ์ ๋ณด๋ธ๋ค.
๊ฒฐ๊ณผ๋ ์๋ก์ด ๋ฌธ์์ด์ด ๋๋ค.
+ ์ฐ์ฐ์๋ฅผ ์ด์ฉํด๋ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์๋ค.
์์)
var s1 = "๋ฌธ์์ด1";
var s2 = "๋ฌธ์์ด2";
//concat: ์์ ๋ฌธ์์ด๊ณผ ๋ค์ ๋ฌธ์์ด์ ์ด์ด์ค๋ค. s1 + s2 ์ ๊ฐ๋ค.
var s3 = s1.concat(s2);
document.write(s3);
๊ฒฐ๊ณผ)
4.3.3 ๋ฌธ์์ด ๊ฒ์
indexOf() ๋ฉ์๋๋ ๋ฌธ์์ด ์์์ ์ฃผ์ด์ง ํ ์คํธ๊ฐ ์ฒ์ ๋ฑ์ฅํ๋ ์์น๋ฅผ ๋ฐํํ๋ค.
์์)
//๋์ด์ฐ๊ธฐ ํ ๊ฒ๋ ํฌํจ๋๋ค.
// 1234567891011121314151617181920
var s = "์๋ฐ์คํฌ๋ฆฝํธ์ ์ค์ ๊ฒ์ ํ์ํฉ๋๋ค.";
var n = s.indexOf("ํ์");
//15
document.write(n);
๊ฒฐ๊ณผ)
15
4.3.4 ๋ฌธ์์ด ๋งค์นญ p. 355
match() ๋ฉ์๋๋ ๋ฌธ์์ด ์์์ ์ผ์นํ๋ ์ฝํ
์ธ ๋ฅผ ํ์ํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.
์ ๊ท์(regular expression)์ ์ฌ์ฉํ ์ ์๋ค. ์ฆ ?, *, ^ ๋ฑ์ ๊ธฐํธ๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
์์)
var str = "Like father, like son.";
//like๋ฅผ ์ฐพ๋๋ค.
//i๋ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์์ ๋ํ๋ด๋ ์ต์
์ด๋ค.
//g๋ ๊ฒ์๋ ๋ชจ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค์ ๋ํ๋ด๋ ์ต์
์ด๋ค.
result = str.match(/like/ig);
document.write(result);
๊ฒฐ๊ณผ)
4.3.5 ๋ฌธ์์ด ๋์ฒด
replace() ๋ฉ์๋๋ ๋ฌธ์์ด ์์์ ์ฃผ์ด์ง ๊ฐ์ ๋ค๋ฅธ ๊ฐ์ผ๋ก ๋์ฒดํ๋ค. ์ ๊ท์์ ์ฌ์ฉํ ์ ์๋ค.
ex) ์ ํ๋ฒํธ ์
๋ ฅ ๋ - ๋ฅผ ๋น์นธ์ผ๋ก ๋์ฒดํ๋ค.
i๋ฅผ ์ฌ์ฉํ๋ฉด ๋์๋ฌธ์์ ๊ด๊ณ์์ด ๋์ฒดํ๋ค.
ex) result = s.replace(/Hong's/i, "Kim's");
์์)
var s = "Hong's number is 123-4567.";
//s ๋ฌธ์์ด ์ค์์ Hong's -> Kim's ๋ณํ
result = s.replace("Hong's","Kim's");
document.write(result);
๊ฒฐ๊ณผ)
4.3.6 split(delimiter[, limit])
split()๋ ์ฒซ ๋ฒ์งธ ์ธ์๋ฅผ ๋ถ๋ฆฌ์๋ก ํ์ฌ์ ๋ฌธ์์ด์ ๋ถ๋ฆฌํ ํ์ ๊ฐ ํญ๋ชฉ์ ๊ฐ์ง๊ณ ์๋ ๋ฐฐ์ด์ ๋ฐํํ๋ค.
split()์ ์ด์ฉํด ๋ฌธ์์ด์ ๋ฐฐ์ด๋ก ๋ณํํ ์ ์๋ค.
์์) ๋ถ๋ฆฌ์ = ","
array.length = 5 (๋ฐฐ์ด์ ๊ธธ์ด)
s = "One, Two, Three, Four, Five";
var array = s.split(",");
for (i = 0; i < array.length; i++){
document.write(i + '-' + array[i] + '<br>');
}
๊ฒฐ๊ณผ)
4.3.7 HTML ๋ฉํผ ๋ฉ์๋
๋ฌธ์์ด์ ์ ์ ํ HTML ํ๊ทธ๋ก ๊ฐ์ผ ํ์ ๋ฐํํ๋ค.
์์)
var s = "This is a test.";
document.write("Big: " + s.big() + "<br>");
document.write("Small: " + s.small() + "<br>");
document.write("Bold: " + s.bold() + "<br>");
document.write("Italic: " + s.italics() + "<br>");
document.write("Fixed: " + s.fixed() + "<br>");
document.write("Strike: " + s.strike() + "<br>");
document.write("Fontcolor: " + s.fontcolor() + "<br>");
document.write("Fontsize: " + s.fontsize() + "<br>");
document.write("Subscript: " + s.sub() + "<br>");
document.write("Superscript: " + s.sup() + "<br>");
document.write("Link " + s.link("http://www.google.com") + "<br>");
๊ฒฐ๊ณผ)
4.3.8 ๋ฌธ์์ด ๋ฆฌํฐ๋ด๊ณผ ๋ฌธ์์ด ๊ฐ์ฒด p. 356
์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ฌธ์์ด(String)์๋ 2๊ฐ์ง ์ข
๋ฅ๊ฐ ์๋ค.
1) ๋ฌธ์์ด ๋ฆฌํฐ๋ด(String Literal): ํฐ๋ฐ์ดํ๋ก ์์ฑ๋๋ค.
๋ฌธ์์ด ๋ฆฌํฐ๋ด๋ ๋ฌธ์์ด ๊ฐ์ฒด์ ๋ชจ๋ ์์ฑ๊ณผ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์๋๋ฐ, ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ์์์ ์ผ๋ก ๋ฌธ์์ด ์์๋ฅผ ๋ฌธ์์ด ๊ฐ์ฒด๋ก ํ๋ณํํ๊ธฐ ๋๋ฌธ์ด๋ค.
var s = "์๋
";
2) ๋ฌธ์์ด ๊ฐ์ฒด(String Object): ํค์๋ new๋ฅผ ์ด์ฉํด ์์ฑ๋๋ค.
๋ฌธ์์ด ๊ฐ์ฒด๊ฐ ํจ์๋ก ์ ๋ฌ๋ ๋๋ ๊ฐ(value)๋ง ์ ๋ฌ๋๋ค. ์ฆ ํจ์ ์์์ ์ ๋ฌ๋ฐ์ ๋ฌธ์์ด์ ๋ณ๊ฒฝํ๋๋ผ๋ ์๋ณธ์ ๋ณ๊ฒฝ๋์ง ์๋๋ค.
var o = new String("์๋
");
4.4 Math ๊ฐ์ฒด p. 358
Math ๊ฐ์ฒด๋ ์ํ์ ์ธ ์์
์ ์ํ ๊ฐ์ฒด์ด๋ค. Math๋ ์์ฑ์๊ฐ ์๋๋ผ ๋ฐ๋ก ๊ฐ์ฒด์ด๋ค.
๋ฐ๋ผ์ new๋ฅผ ํตํ์ฌ ๊ฐ์ฒด๋ฅผ ์์ฑํ ํ์ ์์ด ๋ฐ๋ก ์ด์ฉํ๋ฉด ๋๋ค.
์ํ ๊ณ์ฐ์ ์ฌ์ฉ๋๋ ์์์ ๊ฑฐ์ ๋ชจ๋ ํจ์๋ฅผ ๊ฐ์ง๊ณ ์๋ค๊ณ ๋ด์ผ ํ๋ค.
- ํจ์
์์ฑ | ์ค๋ช |
E | ์ค์ผ๋ฌ์ ์์ (์ฝ 2.718) |
LN2 | ์์ฐ ๋ก๊ทธ (๋ฐ์: 2) (์ฝ 0.693) |
LN10 | ์์ฐ ๋ก๊ทธ (๋ฐ์: 10) (์ฝ 2.302) |
PI | ํ์ด ์์ (์ฝ 3.14) |
SQRT1_2 | 1/2 (์ฝ 0.707) |
SQRT2 | 2์ ์ ๊ณฑ๊ทผ (์ฝ 1.414) |
- ๋ฉ์๋
์์ฑ | ์ค๋ช |
abs(x) | ์ ๋๊ฐ |
aocs(x), asin(x), atan(x) | ์ํฌ ์ผ๊ฐํจ์ |
ceil(x), floor(x) | ์ค์๋ฅผ ์ ์๋ก ์ฌ๋ฆผ, ๋ด๋ฆผ ํจ์ |
cos(x), sin(x), tan(x) | ์ผ๊ฐํจ์ |
exp(x) | ์ง์ํจ์ |
log(x) | ๋ก๊ทธํจ์ |
max(x,y,z,...,n) | ์ต๋๊ฐ |
min(x,y,z,...,n) | ์ต์๊ฐ |
pow(x,y) | ์ง์ํจ์ x^y |
random() | 0๊ณผ 1์ฌ์ด์ ๋์๊ฐ ๋ฐํ |
round(x) | ๋ฐ์ฌ๋ฆผ |
sqrt(x) | ์ ๊ณฑ๊ทผ |
์์) ๊ณตํ์ฉ ๊ณ์ฐ๊ธฐ
ํจ์๋ ์ ์ธํ๊ณ ํธ์ถํ๋ค.
<style>
body{text-align:center;}
</style>
<title>Math</title>
<script>
//ํค๋ณด๋์ ๊ฐ์ ์
๋ ฅํ๋ ์๊ฐ ๊ฐ์ ธ๊ฐ event๋ ๋ฐ๋
//document.getElementById("in").value
//๋ฒํผ์ ํด๋ฆญํ๋ ์๊ฐ ์
๋ ฅํ ๊ฐ์ ๊ฐ์ ธ๊ฐ์ ๊ณ์ฐํจ
function calc(type){//starts
//์
๋ ฅ ์์์ number1 ๊ฐ์ฒด์ value ๊ฐ์ Number์ ์ด์ฉํด ์ ์๋ก ๋ณํํ๋ค.
//Number, ParseInt: ๋ฌธ์์ด -> ์ซ์
//var x = Number(document.getElementById("in").value);
//document: form ํ๊ทธ ์ ์ฒด, name = calculator, name = number1
var x = Number(document.calculator.number1.value);
//๋ง์ฝ์ type์ด 1์ด๋ฉด, sin์ ๊ตฌํ๋ผ.
if (type == 1)
//Math ๊ฐ์ฒด์ ์๋ sinํจ์๋ฅผ ์ด์ฉํด์
y = Math.sin((x * Math.PI) / 180);
//๋ง์ฝ์ type์ด 2์ด๋ฉด, log์ ๊ตฌํ๋ผ.
else if (type == 2)
y = Math.log(x);
//๋ง์ฝ์ type์ด 3์ด๋ฉด, sqrt์ ๊ตฌํ๋ผ.
else if (type == 3)
y = Math.sqrt(x);
//๊ทธ๋ ์ง ์์ผ๋ฉด abs์ ๊ตฌํ๋ผ.
else if (type == 4)
y = Math.abs(x);
//์
๋ ฅ ์์์ total ๊ฐ์ฒด์ value ๊ฐ์ ๊ณ์ฐ ๊ฒฐ๊ณผ๋ก ์ค์ ํ๋ค.
document.calculator.total.value = y;
}//ends
</script>
</head>
<body>
<form name="calculator">
์
๋ ฅ: <input type="text" name="number1"><br>
๊ณ์ฐ ๊ฒฐ๊ณผ: <input type="text" name="total"><br>
<!-- cal(1): ํจ์ ์ด๋ฆ์ผ๋ก ๋์ด์์ผ๋ฉด ํจ์ ํธ์ถ์ด๋ค. */ -->
<input type="button" value="SIN" onclick="calc(1);">
<input type="button" value="LOG" onclick="calc(2);">
<input type="button" value="SQRT" onclick="calc(3);">
<input type="button" value="ABS" onclick="calc(4);">
</form>
</body>
๊ฒฐ๊ณผ)
5. Array ๊ฐ์ฒด p. 360
์๋ฐ์คํฌ๋ฆฝํธ์์๋ ๋ฐฐ์ด๋ Array๋ผ๋ ๊ฐ์ฒด๋ก ํํ๋๋ค.
Array ๊ฐ์ฒด๋ฅผ ์ด์ฉํด ๋ฐฐ์ด ์์ฑ, ๋ฐฐ์ด์ ๋ํ์ฌ ์ ๋ ฌ๊ณผ ๊ฐ์ ์ฐ์ฐ์ ์ ์ฉํ ์ ์๋ค.
๋ฐฐ์ด์ ์์ฑํ๋ ๊ณผ์ ์ Array ๊ฐ์ฒด๋ฅผ new ์ฐ์ฐ์๋ก ์์ฑํ๊ณ ๋ฐฐ์ด ์์์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ๋ ๊ฒ์ด๋ค.
//Array ๊ฐ์ฒด๋ก ๋ฐฐ์ด ์์ฑ 1
var myArray1 = new Array();
myArray1[0] = "apple";
myArray1[1] = "banana";
myArray1[2] = "orange";
//Array ๊ฐ์ฒด๋ก ๋ฐฐ์ด ์์ฑ 2
var myArray2 = new Array("apple","banana","orange");
//๋ฆฌํฐ๋ด๋ก ๋ฐฐ์ด ์์ฑ
var myArray3 = ["apple", "banana", "orange"];
์ฐธ๊ณ : 2023.01.13 - [1. Revision 2023/Javascript] - [13] 230113 Ch8 ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ์ด(5)
๋ค๋ฅธ ์ธ์ด์๋ ๋ค๋ฅธ ์ฌํญ
1) ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ๋ฐฐ์ด์ ํฌ๊ธฐ๊ฐ ์๋์ผ๋ก ์กฐ์ ๋๋ค.
ํ์ฌ ๋ฐฐ์ด์ ํฌ๊ธฐ๋ณด๋ค ํฐ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ฉด ์๋์ผ๋ก ์ฆ๊ฐํ๋ค.
2) ํ๋์ ๋ฐฐ์ด์ ์ฌ๋ฌ ๊ฐ์ง ์๋ฃํ์ ํผํฉํด์ ์ ์ฅํ ์ ์๋ค. ex) ํ๋์ ๋ฐฐ์ด์ ์ ์์ ๋ฌธ์์ด์ ๋์์ ์ ์ฅํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.
var comp = new Array();
comp[0] = "Apple"; //๋ฌธ์์ด
comp[1] = new Date(); //๊ฐ์ฒด (2023-01-03 12:03 ํํ๋ก ๋ฌ๋ค)
comp[2] = 3.14; //์ ์
3) ๋ฐฐ์ด์ ํฌ๊ธฐ๋ณด๋ค ํฐ ์ธ๋ฑ์ค ๊ฐ์ผ๋ก ๋ฐฐ์ด ์์์ ์ ๊ทผํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์๊ณ undefined ๊ฐ์ด ๋ฐํ๋๋ค. (ํ๋ก๊ทธ๋จ์ด ์ค์ง๋์ง ์๋๋ค.)
5.1 Array์ ์์ฑ๊ณผ ๋ฉ์๋
length๋ ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ๋ํ๋ด๋ ์์ฑ์ผ๋ก ๋ฐฐ์ด ์์๋ฅผ ๋ฐ๋ณตํ๋ฉด์ ์ฒ๋ฆฌํ ๋ ์ฌ์ฉํ๋ค.
์์1)
for(var i = 0; i<myArray1.length; i++){
document.write(myArray1[i]+" ");
}
for(var i = 0; i<myArray2.length; i++){
document.write(myArray2[i]+" ");
}
for(var i = 0; i<myArray3.length; i++){
document.write(myArray3[i]+" ");
}
๊ฒฐ๊ณผ)
์์2)
function printArray(a){
document.write("[");
for(var i = 0; i<a.length; i++){
document.write(a[i]+" ");
}
document.write("]");
}
printArray(myArray1);
printArray(myArray2);
printArray(myArray3);
๊ฒฐ๊ณผ)
5.2 concat(value1[value2[value...]])
concat() ๋ฉ์๋๋ ์ ๋ฌ๋ ์ธ์๋ฅผ ๋ฐฐ์ด์ ๋์ ์ถ๊ฐํ๋ค. ์ธ์๋ ๋ฐฐ์ด์ผ ์๋ ์๋ค.
์์)
var x = [1, 2, 3];
var y = [4, 5, 6];
var joined = x.concat(y);
document.write(joined);
๊ฒฐ๊ณผ)
5.3 indexOf(searchStr[, startIndex])
indexOf() ๋ฉ์๋๋ ์์์ ๊ฐ์ ๊ฐ์ง๊ณ ์์์ ์ธ๋ฑ์ค๋ฅผ ์ฐพ์ ๋ ์ฌ์ฉํ๋ค.
์์(element): ์์ ํ๊ทธ + ์ฝํ
์ธ + ์ข
๋ฃ ํ๊ทธ
์์)
var fruits = ["apple", "banana", "grape"];
document.write(fruits.indexOf("banana"));
๊ฒฐ๊ณผ)
1
5.4 push(value), pop()
push()๋ ์คํ(stack)์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์
ํ๋ ๋ฉ์๋์ด๋ค.
pop()์ ์คํ์์ ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ด๋ ๋ฉ์๋์ด๋ค.
์คํ์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์๋ค๊ฐ ๊บผ๋ด๋ฉด ์์๊ฐ ๋ฐ๋๋ก ๋๋ค. (ํ์์ ์ถ)
(๋ฐ์ ๋งํ์๊ณ ์๋ ๋ซํ์๋ค.)
์์)
var numbers = [1,2,3,4,5];
document.write(numbers+"<br>");
numbers.push(6);
document.write(numbers+"<br>");
numbers.pop();
document.write(numbers+"<br>");
๊ฒฐ๊ณผ)
1,2,3,4,5 1,2,3,4,5,6 1,2,3,4,5 |
5.5 shift(), unshift()
shift() ๋ฉ์๋๋ ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์์๋ฅผ ๋ฐํํ๊ณ ์ด ์ฒซ๋ฒ์งธ ์์๋ฅผ ๋ฐฐ์ด์์ ์ ๊ฑฐํ๋ค.
์์)
var numbers = [1,2,3,4,5,6,7,8,9,10];
var item = numbers.shift();
document.write(item+"<br>");
document.write(numbers+"<br>");
๊ฒฐ๊ณผ)
1 2,3,4,5,6,7,8,9,10 |
unshift() ๋ฉ์๋๋ ์๋ก์ด ์์๋ฅผ ๋ฐฐ์ด์ ๋งจ ์์ชฝ์ ์ถ๊ฐํ๊ณ , ์๋ก์ด ๊ธธ์ด๋ฅผ ๋ฐํํ๋ค.
์ ํจ๊ป ์ฌ์ฉํ๋ฉด ์๋ฃ๊ตฌ์กฐ ์ค์ ํ๋์ธ ํ๋ฅผ ๊ตฌํํ ์ ์๋ค.
(์ ์
์ ์ถ)
5.6 sort()
sort() ๋ฉ์๋๋ ๋ฐฐ์ด์ ์ํ๋ฒณ์์ผ๋ก ์ ๋ ฌํ๋ค.
์์) ์ซ์์ ๊ฒฝ์ฐ ์์๋ฆฌ ์ซ์๋ฅผ ์ฐ์ ์ผ๋ก ๋ฐ์ง๋ค.
var myArray1=['z','a','x','b','c','y'];
var myArray2=[10,7,23,99,169,19,11,1];
myArray1.sort();
document.write(myArray1+"<br>");
myArray2.sort();
document.write(myArray2);
๊ฒฐ๊ณผ)
a,b,c,x,y,z 1,10,11,169,19,23,7,99 |
์์น๊ฐ์ผ๋ก ์ ๋ ฌํ๋ ค๋ฉด function (a,b) { return a-b}๋ผ๋ ์ ๋ ฌ ๊ธฐ์ค ํจ์๋ฅผ ์ธ์๋ก ์ ๊ณตํ๋ฉด ๋๋ค.
์์)
myArray2.sort(function (a,b){return a-b});
document.write(myArray2);
๊ฒฐ๊ณผ)
1,7,10,11,19,23,99,169 |
5.7 Array.slice([begin[, end]])
slice() ๋ฉ์๋๋ ๋ฐฐ์ด์ ์ผ๋ถ๋ฅผ ๋ณต์ฌํ์ฌ ์๋ก์ด ๋ฐฐ์ด๋ก ๋ฐํํ๋ค. ex) numbers.slice(5, 10)
๋๋ฒ์งธ ์ธ์๋ฅผ ๋๊ธฐ์ง ์์ผ๋ฉด, ์์ ์ธ๋ฑ์ค๊ฐ ๊ฐ๋ฆฌํค๋ ๊ฐ๋ถํฐ ๋ฐฐ์ด์ ๋ง์ง๋ง ๊ฐ๊น์ง ๋ชจ๋ ๋ณต์ฌํด์ค๋๋ค.
์์ ์ธ๋ฑ์ค๊ฐ ์์ผ๋ฉด 0์ผ๋ก ๊ฐ์ ํ๋ค.
์ข
๋ฃ ์ธ๋ฑ์ค๊ฐ ์์ผ๋ฉด ๋ฐฐ์ด์ ๋๊น์ง ๋ณต์ฌํ๋ค.
์์)
var numbers = [1,2,3,4,5,6,7,8,9,10];
var newArray = numbers.slice(5);
document.writeln(newArray+"<br>");
๊ฒฐ๊ณผ)
6,7,8,9,10 |
5.8 join(delimeter)
join()์ ๋ฐฐ์ด์ ์์๋ค์ ํ๋์ ๋ฌธ์์ด๋ก ์ถ๋ ฅํ๋ค.
์ด ๊ธฐ๋ฅ์ ๋ฐฐ์ด์ ์๋ฒ๋ก ๋ณด๋ผ ๋ ์์ฃผ ์ ์ฉํ๋ค.
์ด๋ ๋ถ๋ฆฌ์๊ฐ ๊ฐ ์์๋ฅผ ๋ถ๋ฆฌํ๊ฒ ํ๋ค.
์์) ๋ถ๋ฆฌ์๊ฐ + ์ด๋ค.
var fruits = ["apple","banana","peach"];
var s = fruits.join("+");
document.write(s);
๊ฒฐ๊ณผ)
apple+banana+peach |
5.9 filter()
filter() ๋ฉ์๋๋ ์ด๋ค ์กฐ๊ฑด์ ๋ถํฉํ๋ ์์๋ง์ ์ ํํ์ฌ ์๋ก์ด ๋ฐฐ์ด๋ก ๋ง๋ค์ด์ ๋ฐํํ๋ค.
์์๋ฅผ ์ ํํ๋ ํจ์๋ฅผ ์์ฑํ์ฌ ์ธ์๋ก ์ ๋ฌํ๋ค.
์์)
var numbers = [10,20,30,40,50];
function isBigEnough(element, index, array){
// filter๋ฉ์๋ ์กฐ๊ฑด
return (element >= 30);
}
var filtered = numbers.filter(isBigEnough);
document.write("ํํฐ๋ง ๋ ๋ฐฐ์ด: "+filtered);
๊ฒฐ๋ก )
ํํฐ๋ง ๋ ๋ฐฐ์ด: 30,40,50 |
5.10 2์ฐจ์ ๋ฐฐ์ด p.366
Array ๊ฐ์ฒด๋ ๋ค๋ฅธ Array ๊ฐ์ฒด๋ฅผ ํฌํจํ ์ ์๊ธฐ ๋๋ฌธ์ ์๋ฐ์คํฌ๋ฆฝํธ์์ 2์ฐจ์ ๋ฐฐ์ด์ด ๊ฐ๋ฅํ๋ค.
matrix[row(ํ)][column(์ด)]์ด๋ค.
1 | 2 | 3 |
matrix[0][0] | matrix[0][1] | matrix[0][2] |
4 | 5 | 6 |
matrix[1][0] | matrix[1][1] | matrix[1][2] |
7 | 8 | 9 |
matrix[2][0] | matrix[2][1] | matrix[2][2] |
์์)
for(let i = 0; i < matrix.length; i++){
for(let j = 0; j < matrix.length; j++){
document.write(matrix[i][j]);
if (j<2){
document.write(",");
}
}
document.write("<br>");
}
๊ฒฐ๊ณผ)
6. ์๋ฐ์คํฌ๋ฆฝํธ์์์ ์ค๋ฅ ์ฒ๋ฆฌ p. 367
์๋ฐ์คํฌ๋ฆฝํธ์์๋ ๋ณ์์ ์๋ฃํ์ ์ ์ฅํ์ง ์๊ธฐ ๋๋ฌธ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ ํ๋ฅ ๋ ๋์์ง๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์์๋ ์ค๋ฅ๋ฅผ ์์ธ(exception)๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ถ๋ฅธ๋ค.
(exception: (exceptional event) ํ๋ก๊ทธ๋จ์ ์คํ ์ค์ ๋ฐ์ํ๋ ์ด๋ฒคํธ)
์์ธ๊ฐ ๋ฐ์ํ๋ ์์ธ
- ๊ฐ๋ฐ์์ ํ์ดํ ์ค๋ฅ ๋๋ฌธ์ ๋ฌธ๋ฒ์ ์ธ ์ค๋ฅ
- ๋ธ๋ผ์ฐ์ ๋ง๋ค ์ง์ํ๋ ํน์ง์ด ๋ค๋ฅด๋ฏ๋ก ๋ฐ์ํ ์ ์๋ค.
- ์ฌ์ฉ์๋ก๋ถํฐ ์๋ชป๋ ์
๋ ฅ
- ์ธํฐ๋ท ์๋ฒ ์ค๋ฅ
์ค๋ฅ๊ฐ ๋ฐ์ํ์ ๋ ํ๋ก๊ทธ๋จ์ ๋ฌด์กฐ๊ฑด ์ข
๋ฃํ๋ ๊ฒ๋ณด๋ค ํ๋ก๊ทธ๋จ์์ ์ค๋ฅ๋ฅผ ๊ฐ์งํ์ฌ ์ฐ์ํ๊ฒ ํ๋ก๊ทธ๋จ์ ์ข
๋ฃํ๊ฑฐ๋ ์ค๋ฅ๋ฅผ ์ฒ๋ฆฌํ ํ์ ๊ณ์ ์คํํ ์ ์๋ค๋ฉด ๋ ๋์ ํ๋ก๊ทธ๋จ์ด ๋ ์ ์๋ค.
์ด๊ฒ์ ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ์์ธ ์ฒ๋ฆฌ(exception handling)๋ผ๊ณ ํ๋ค.
์๋ฐ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋์ผํ ์์ธ ์ฒ๋ฆฌ ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ค.
6.1 try-Catch ๊ตฌ์กฐ p. 368
์์ธ ์ฒ๋ฆฌ๊ธฐ๋ try ๋ธ๋ก๊ณผ catch ๋ธ๋ก์ผ๋ก ์ด๋ฃจ์ด์ง๋ค.
try ๋ธ๋ก์์๋ ์์ธ๊ฐ ๋ฐ์ํ ์ ์๋ค. ๋ฐ์๋ ์์ธ๋ catch ๋ธ๋ก์์ ์ฒ๋ฆฌํ๋ค.
๊ธฐ๋ณธ ํ์)
try { // ์์ธ๊ฐ ๋ฐ์ํ ์ ์๋ ์ฝ๋ } catch (๋ณ์) { // ์์ธ๋ฅผ ์ฒ๋ฆฌํ๋ ์ฝ๋ } |
์์)
<script>
var msg = ""
function test(){
try{
allert("Hello");
}catch(error){
msg="๋ค์๊ณผ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์์. " + error.message;
alert(msg);
}
}
</script>
</head>
<body>
<input type = "button" value ="try-catch ์ํ" onclick="test()">
</body>
๊ฒฐ๊ณผ)
6.2 throw ๋ฌธ์ฅ p. 369
๊ฐ๋ฐ์๋ ์์ ์ด ์ด๋ค ๊ธฐ์ค์ ์ ํ๊ณ ์ด ๊ธฐ์ค์ ๋ง์ง ์์ผ๋ฉด ์ฌ์ฉ์์๊ฒ ์ด๋ค ๊ฒฝ๊ณ ๋ฉ์์ง๋ฅผ ์ค ์ ์๋ค.
throw ๋ฌธ์ฅ์ด try-catch ๋ฌธ์ฅ๊ณผ ํจ๊ป ์ฌ์ฉ๋๋ค.
๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ฅ์ผ๋ก ์์ธ ๊ฐ์ฒด๋ฅผ ๋ฐ์์ํฌ ์ ์๋ค.
throw "์์ธ ๋ฉ์์ง";
์์) 1๋ถํฐ 100 ์ฌ์ด์ ์๋ ํน์ ์ซ์๋ฅผ ์ถ์ถํ๋ ๊ฒ์
์
๋ ฅ์ด ์์ ๋, ์ซ์๊ฐ ์๋ ๋, ์ซ์๊ฐ ํฌ๊ฑฐ๋ ์๊ฑฐ๋ ์ฑ๊ณต์ ์ผ ๋ ์์ธ๊ฐ ์์ฑ๋์ด ์ฆ์ catch ๋ฌธ์ฅ์ ์ํ์ฌ ์กํ๊ณ ์์ธ์ ํฌํจ๋ ๋ฉ์์ง๊ฐ ํ๋ฉด์ ๋ํ๋๋ค.
- undefined์ ๋ณ์๋ฅผ ์ ์ธํ๊ณ ๊ฐ์ ํ ๋นํ์ง ์์ ์ํ, null์ ๋ณ์๋ฅผ ์ ์ธํ๊ณ ๋น ๊ฐ์ ํ ๋นํ ์ํ(๋น ๊ฐ์ฒด)์ด๋ค. ์ฆ, undefined๋ ์๋ฃํ์ด ์๋ ์ํ์ด๋ค.
var solution = 53;
function test(){
try{
var x = parseInt(document.getElementById("number").value);
/* try catch throw ์ฌ์ฉํ๊ธฐ ์
if (x>solution){
document.getElementById("message").innerHTML="๋๋ฌด ํผ";
}*/
if (x == "") throw "์
๋ ฅ์ด ์์ต๋๋ค."
if (isNaN(x)) throw "์ซ์๊ฐ ์๋๋๋ค."
if (x > solution) throw "๋๋ฌด ํฝ๋๋ค."
if (x < solution) throw "๋๋ฌด ์์ต๋๋ค."
if (x == solution) throw "์ฑ๊ณต์ ์
๋๋ค." }
catch(error){
var y = document.getElementById("message");
y.innerHTML = "ํํธ: " + error;
}
}
</script>
</head>
<body>
<h1>Number Guess</h1>
<p>1๋ถํฐ 100์ฌ์ด์ ์ซ์๋ฅผ ์
๋ ฅํ์์ค</p>
<input type = "text" id = "number">
<button type = "button" onclick = "test()">์ซ์ ์ถ์ธก</button>
<p id = "message"></p>
</body>
</html>
๊ฒฐ๊ณผ)
๊ธฐํ
๋ชจ๋ ๊ฑธ ์ ํ์๋ ์๊ณ ์์ฃผ ์ฐ๋ ๊ฑธ ์๋ฉฐ ๋ชจ๋ฅด๋ ๊ฒ์ ๊ฒ์ํ๊ธฐ by ๊ฐ์ฌ๋