์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- 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๐ณ๐
[9] 230109 Ch. 8 ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ์ด: 1. ์๋ฐ์คํฌ๋ฆฝํธ์ ์๊ฐ · 2. ์ฉ๋ · 3. ์์น, 4. ๋ฌธ์ฅ, 5. ๋ณ์, 6. ์๋ฃํ, 7. ์ฐ์ฐ์ [K-๋์งํธ ํธ๋ ์ด๋ 9์ผ] ๋ณธ๋ฌธ
[9] 230109 Ch. 8 ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ์ด: 1. ์๋ฐ์คํฌ๋ฆฝํธ์ ์๊ฐ · 2. ์ฉ๋ · 3. ์์น, 4. ๋ฌธ์ฅ, 5. ๋ณ์, 6. ์๋ฃํ, 7. ์ฐ์ฐ์ [K-๋์งํธ ํธ๋ ์ด๋ 9์ผ]
yjyuwisely 2023. 1. 9. 12:50230109 Mon 9th class
Ch. 8 ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ์ด
Ch. 9 ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด (์ฃผ์ ๋ณ๋ก ๋ฌถ๊ธฐ ์ํด ์๊ธ๋ก ๊ธ ๋ด์ฉ ์ฎ๊น)
์ง๋: p. 268 ~ (๊ต์ฌ: HTML5 + CSS3 + JavaScript๋ก ๋ฐฐ์ฐ๋ ์นํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ด, ์ ์: ์ฒ์ธ๊ตญ)
์ค๋ ๋ฐฐ์ด ๊ฒ ์ค ๊ธฐ์ตํ ๊ฒ์ ์ ๋ฆฌํ๋ค.
Ch. 8 ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ์ด
์ฑ ์ ๋ชฉ์ฐจ
-์๋ฐ์คํฌ๋ฆฝํธ์ ์๊ฐ
-์๋ฐ์คํฌ๋ฆฝํธ์ ์ฉ๋
-์๋ฐ์คํฌ๋ฆฝํธ์ ์์น
-๋ฌธ์ฅ
-๋ณ์
-์๋ฃํ
-์ฐ์ฐ์
-์ซ์์ ๋ฌธ์์ด ์ฌ์ด์ ๋ณํ
-์กฐ๊ฑด๋ฌธ
-๋ฐ๋ณต๋ฌธ
-๋ฐฐ์ด
-ํจ์
-์๋ฐ์คํฌ๋ฆฝํธ์ ์ ์ถ๋ ฅ
1. ์๋ฐ์คํฌ๋ฆฝํธ (Javascipt) p.268
๋์ ์ธ ์น ํ์ด์ง๋ฅผ ์์ฑํ๊ธฐ ์ํ์ฌ ์ฌ์ฉ๋๋ ์ธ์ด
์น์ ํ์ค ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ค.
๋ชจ๋ ์น๋ธ๋ผ์ฐ์ ๋ค์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ง์ํ๋ค.
ํน์ง
- ์ธํฐํ๋ฆฌํธ ์ธ์ด: ์ปดํ์ผ ๊ณผ์ ์ ๊ฐ์น์ง ์๊ณ ๋ฐ๋ก ์คํ์ํฌ ์ ์๋ค.
Compile refers to the act of converting programs written in high level programming language, which is understandable and written by humans, into a low level binary language understood only by the computer. To compile, you need a compiler, which is a software program that converts high level programming language code into machine code. |
- ๋์ ํ์ดํ(dynamic typing): ๋ณ์์ ์๋ฃํ์ ์ ์ธํ์ง ์๊ณ ๋ ๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์๋ค. ๋จ์ํ ๋ชจ๋ ๋ณ์๋ var x;์ ๊ฐ์ด ์ ์ธํ ์ ์๋ค.
- ๊ตฌ์กฐ์ ํ๋ก๊ทธ๋๋ฐ ์ง์: C์ธ์ด์ ๊ตฌ์กฐ์ ํ๋ก๊ทธ๋๋ฐ์ ์ง์ํ๋ค. ์ฆ if-else, while, for ๋ฑ์ ์ ์ด ๊ตฌ์กฐ๋ฅผ ์๋ฒฝํ๊ฒ ์ง์ํ๋ค.
- ๊ฐ์ฒด ๊ธฐ๋ฐ: ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ฐ์ฒด๋ ์ฐ๊ด ๋ฐฐ์ด(associate arrays)์ด๋ค.
(์ฐ๊ด ๋ฐฐ์ด = ํค ํ๋์ ๊ฐ ํ๋๊ฐ ์ฐ๊ด๋์ด ์์ผ๋ฉฐ ํค๋ฅผ ํตํด ์ฐ๊ด๋๋ ๊ฐ์ ์ป์ ์ ์๋ค.)
์์) p. 271
<body>
<script>
var now = new Date(); /* ์ค๋ ๋ ์ง์ ํ์ฌ ์๊ฐ์ now ๋ณ์์ ์ ์ฅํ๋ค. */
document.write(now);
</script>
</body>
-์๋ฐ์คํฌ๋ฆฝํธ๋ <script> ... </script> ์ฌ์ด์ ๊ธฐ์ ๋๋ค.
- var: ๋ณ์(variable): ํ๋์ ๊ฐ์ ์ ์ฅํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ์ ๊ณต๊ฐ. ํ๋์ ๋ณ์์๋ ์ค๋ก์ง ํ๋์ ๊ฐ๋ง ์ ์ฅํ ์ ์๋ค.
- now: ๋ณ์ ์ด๋ฆ, ๋ค๋ฅธ ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ ์ ์๋ค.
- new Date(): ๊ฐ์ฒด (Java์์ ๊ฐ์ ธ์ฎ)
- =: ์ค๋ฅธ์ชฝ์ ๊ฐ์ ์ผ์ชฝ์ ์ ์ฅ์ํจ๋ค. ๋ฐ๋ฉด ==: ์ฐ์ ์ ์ธ ๊ฐ์์ ์๋ฏธ
- document ๊ฐ์ฒด: ๋ด์ฅ ๊ฐ์ฒด: ์๋ฐ์คํฌ๋ฆฝํธ ์์ฒด์ ์ผ๋ก ๋ง๋ ๊ฐ์ฒด
- write() ๋ฉ์๋: ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ํจ์, ์๋ฐ์์๋ ๋ฉ์๋(Method)๋ผ๊ณ ํ๋ค. ํจ์๋ ๊ธฐ๋ฅ์ ๋ด๋นํ๋ค. ๋ณ์๋ ๋จ์ํ ๊ฐ์ ๋ด๋นํ๋ค.
- ๊ฐ์ฒด: ์์ฑ๊ณผ ๋์์ ํ๋ฐ ๋ชจ์๋ ๊ฒ
- ๋ฉ์๋: ๋์์ ํด๋น๋๋ค.
๊ฒฐ๊ณผ)
2. ์๋ฐ์คํฌ๋ฆฝํธ์ ์ฉ๋ p. 271
- ์ด๋ฒคํธ(ex. ํด๋ฆญ, ๋๋ธํด๋ฆญ)์ ๋ฐ์ํ๋ ๋์์ ๊ตฌํํ ์ ์๋ค.
ex) ๋ค์ด๋ฒ ํ์ ๊ฐ์ ๋ ํฌ์ปค์ฑ ์์: ์ปค์๋ฅผ ๋ค๋ฅธ ๊ณณ์ ๋ , ํค๋ณด๋์๋ ์ด๋ฒคํธ๊ฐ ์๋ค. - Ajax๋ฅผ ํตํ์ฌ ์ ์ฒด ํ์ด์ง๋ฅผ ๋ค์ ๋ก๋ํ์ง ์๊ณ ์๋ ์๋ฒ๋ก๋ถํฐ ์๋ก์ด ํ์ด์ง ์ฝํ
์ธ ๋ฅผ ๋ฐ๊ฑฐ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ถํ ๋ ์ฌ์ฉํ๋ค.
- HTML์์์ ํฌ๊ธฐ๋ ์์์ ๋์ ์ผ๋ก ๋ณ๊ฒฝํ ์ ์๋ค.
ex) ๋ค์ด๋ฒ ํ์ ๊ฐ์ ๋ ์ ๋ ฅ ์ ํ์ ๋ ๋จ๋ ๋นจ๊ฐ ๋ฌธ๊ตฌ: ํ์ ์ ๋ณด์ ๋๋ค. (CSS ์ ์ฉ์ํด) - ๊ฒ์, ์ ๋๋ฉ์ด์
๊ณผ ๊ฐ์ ์ํธ ๋ํ์ ์ธ ์ฝํ
์ธ ๋ฅผ ๊ตฌํํ ์ ์๋ค.
- ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๊ฐ์ ๊ฒ์ฆํ๋ ์์
ex) ๋ค์ด๋ฒ ํ์ ๊ฐ์ ๋ 1,3,5๋ฅผ ์ฒดํฌํ ์ ์๋ค.
3. ์๋ฐ์คํฌ๋ฆฝํธ์ ์์น p. 273
๋์์น: ์๋ฐ์คํฌ๋ฆฝํธ๋ ์ฝํ๋ฉด์ ๋ฐ๋ก ์คํ๋๋ค.
<head>๋ ๋ฉํ ์ ๋ณด๋ง ์์ผ๋ฏ๋ก ์ฌ๊ธฐ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๋ฃ์ผ๋ฉด ๋ฐ๋์ <body>์ ์์นํ ์ฝํ ์ธ ๋ณด๋ค ๋จผ์ ์คํ๋๋ ๊ฒ์ด ๋ณด์ฅ๋๋ค.
๋ฉํ ์ ๋ณด: ๋ฉํ๋ฐ์ดํฐ(Metadata)๋ ์ผ๋ฐ์ ์ผ๋ก ๋ฐ์ดํฐ์ ๊ดํ ๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ๋ก, ๋๋์ ์ ๋ณด ๊ฐ์ด๋ฐ์์ ํ์ธํ๊ณ ์ ํ๋ ์ ๋ณด๋ฅผ ํจ์จ์ ์ผ๋ก ๊ฒ์ํ๊ธฐ ์ํด ์์๋ฐ์ดํฐ(Raw data)๋ฅผ ์ผ์ ํ ๊ท์น์ ๋ฐ๋ผ ๊ตฌ์กฐํ ํน์ ํ์คํํ ์ ๋ณด์ด๋ค.
๋ง์ฝ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์ฝํ ์ธ ๋ฅผ ์ฒ๋ฆฌํ๋ค๋ฉด <body>์์ ์ฝํ ์ธ ๋ค์์ ์์น์์ผ์ผ ํ๋ค. ์์ ํ๊ฒ ํ๋ ค๋ฉด <body>์ ๋งจ ๋์ ๋๋ ๊ฒ์ด ์ข๋ค.
3.1 ๋ด๋ถ ์๋ฐ์คํฌ๋ฆฝํธ
- <head> ์น์
์ด๋ <body> ์น์
์์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๋ฃ๋๋ค. <script> ... </script>
- <head> ์น์
์ ๋ฃ๋ ๊ฒ์ด ์ข ๋ ๋ฐ๋์งํ๋ค.
3.2 ์ธ๋ถ ์๋ฐ์คํฌ๋ฆฝํธ
<script src="C:\230109_new\js\myscript.js"></script>
document.write("Hello World!");
์ค๋ฅ๊ฐ ๋ฌ์๋๋ฐ property ๋๋ฌ์ ์ ์ฒด ์์น ๋ณต์ฌํด์ ๋ฃ์ผ๋ ์คํ์ด ๋๋ค.
3.3 ์ธ๋ผ์ธ ์๋ฐ์คํฌ๋ฆฝํธ
์์)
<button type="button" onclick="alert('๋ฐ๊ฐ์ต๋๋ค')">๋ฒํผ์ ๋๋ฅด์ธ์!</button>
- onclick ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด alert()๋ฅผ ํธ์ถ(ํจ์๋ฅผ ๋ถ๋ฌ์ ์คํํ๋ค.)ํ๋ค.
- ํจ์ alert(์๋ฆฌ๋ค)๋ ์ด ํ์ด์ง์ ๋ด์ฉ์ด๋ผ๋ ํ์
์ฐฝ ๋ฐ์ ๋์ค๋ ๋ฌธ์ฅ์ ๋งํ๋ค.
๊ฒฐ๊ณผ)
4. ๋ฌธ์ฅ (Statement) p. 277
์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ์ฅ(Statement)์ ์น๋ธ๋ผ์ฐ์ ์๊ฒ ๋ด๋ฆฌ๋ ๋ช
๋ น์ด๋ค. ๊ฐ๊ฐ์ ๋ฌธ์ฅ์ ์น ๋ธ๋ผ์ฐ์ ๊ฐ ๋ฌด์์ ํด์ผ ํ๋์ง ์ง์ํ๋ค.
๊ฐ ๋ฌธ์ฅ์ ๋์๋ ;(์ธ๋ฏธ์ฝ๋ก )์ ๋ถ์ธ๋ค. ์ธ๋ฏธ์ฝ๋ก ์ ์๋ตํด๋ ๋์ง๋ง ๊ฐ๊ธ์ ์ธ๋ฏธ์ฝ๋ก ์ ๋ถ์ด๋๋ก ํ๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์์๋ ์ค์ด ๋ฐ๋๋ฉด ํ๋์ ๋ฌธ์ฅ์ด ๋๋ ๊ฒ์ผ๋ก ํ๋จํ๋ค.
์ธ๋ฏธ์ฝ๋ก ์ ์ฌ์ฉํด ํ ์ค์ ์ฌ๋ฌ ๊ฐ์ ๋ฌธ์ฅ์ ์์ฑํ ์๋ ์๋ค.
๊ฐ ๋ฌธ์ฅ์ ๋ธ๋ผ์ฐ์ ์ ์ํ์ฌ ์์ฑ๋ ์์๋๋ก ์คํ๋๋ค. (๋ฌธ์ฅ์ด ๋ชจ์ด๋ฉด ์ฝ๋๊ฐ ๋๋ค.)
4.1 ๋ธ๋ก
์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ์ฅ์ ๋ธ๋ก(block)์ด๋ผ๋ ๋จ์๋ก ๋ฌถ์ผ ์ ์๋ค. ๋ธ๋ก์ {๋ก ์์ํ๊ณ }๋ก ๋๋๋ค.
๋ชฉ์ : ์ฌ๋ฌ ๊ฐ์ ๋ฌธ์ฅ์ ๋ฌถ์ด์ ํจ๊ป ์คํํ๋ค.
์์)
{
document.write("Hello World!");
document.write("How are you?");
}
4.2 ๋ฌธ์ ์งํฉ๊ณผ ๋์๋ฌธ์ ๊ตฌ๋ณ p.278
- ์๋ฐ์คํฌ๋ฆฝํธ๋ ์ ๋์ฝ๋(unicode) ๋ฌธ์ ์งํฉ ๋ฒ์ 3์ ์ง์ํ๋ค. ์ ๋์ฝ๋๋ ์์คํค์ฝ๋์ ์ํผ ์งํฉ์ผ๋ก ์ ์ธ๊ณ์ ๋ชจ๋ ๋ฌธ์๋ฅผ ๋ํ๋ผ ์ ์๋ค.
- ์ ๋์ฝ๋: ์ ๋์ฝ๋(์์ด: Unicode)๋ ์ ์ธ๊ณ์ ๋ชจ๋ ๋ฌธ์๋ฅผ ์ปดํจํฐ์์ ์ผ๊ด๋๊ฒ ํํํ๊ณ ๋ค๋ฃฐ ์ ์๋๋ก ์ค๊ณ๋ ์ฐ์ ํ์ค์ด๋ค.
- ์์คํค์ฝ๋: ๋ฏธ๊ตญ์ ๋ณด๊ตํํ์ค๋ถํธ(์์ด: American Standard Code for Information Interchange), ๋๋ ์ค์ฌ์ ASCII( /หæski/, ์์คํค)๋ ์๋ฌธ ์ํ๋ฒณ์ ์ฌ์ฉํ๋ ๋ํ์ ์ธ ๋ฌธ์ ์ธ์ฝ๋ฉ์ด๋ค. - ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ณํ๋ค. ์ฃผ์ํ ์ ์ HTML์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ณํ์ง ์๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์์ HTML์ ํ๊ทธ์ ์์ฑ ์ด๋ฆ์ ์๋ฌธ์๋ก ์ ์ด์ผ ํ๋ค.
ex) onclick ์์ฑ์ HTML์์ onClick์ด๋ผ๊ณ ํด๋ ๋์ง๋ง ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ๋ฐ๋์ ์๋ฌธ์ onclick์ผ๋ก๋ง ์ ์ด์ผํ๋ค. - ์๋ฐ์คํฌ๋ฆฝํธ๋ ๊ณต๋ฐฑ๋ฌธ์๋ฅผ ๋ชจ๋ ๋ฌด์ํ๋ค. ๋ค๋ง ๋ถ์ฌ ์จ์ผ ํ๋ ๋ถ๋ถ์ ๊ณต๋ฐฑ์ ๋๋ฉด ์ปดํ์ผ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
ex) document์ write() ์ฌ์ด์ ๊ณต๋ฐฑ์ ๋๋ฉด ์ปดํ์ผ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
Compile refers to the act of converting programs written in high level programming language, which is understandable and written by humans, into a low level binary language understood only by the computer.
์ปดํ์ผ: ์ปดํ์ผ๋ฌ(compiler, ์ํ ์ฉ์ด: ํด์๊ธฐ, ๋ฒ์ญ๊ธฐ)๋ ํน์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์ฐ์ฌ ์๋ ๋ฌธ์๋ฅผ ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์ฎ๊ธฐ๋ ์ธ์ด ๋ฒ์ญ ํ๋ก๊ทธ๋จ์ ๋งํ๋ค.
4.3 ์ฃผ์๋ฌธ
์ฃผ์(Comment)์ ์ด์ฉํด ์์ค๋ฅผ ๋ณด๋ค ์ฝ๊ธฐ ์ฝ๋๋ก ๋ง๋ค ์ ์๋ค.
๋จ์ผ ๋ฌธ์ฅ ์ฃผ์: // ๋ฌธ์ฅ
๋ค์ค ๋ฌธ์ฅ ์ฃผ์: /* ๋ฌธ์ฅ */
5. ๋ณ์(Variable) p.280
๋ณ์(Variable)๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์์์ด๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ณ์๋ var ํค์๋๋ฅผ ์ฌ์ฉํด ์ ์ธ(declare)ํ๋ค.
In computer programming, a declaration determines the name and data type of a variable or other element.
var x ;
var ํค์๋๋ ๋ณ์๊ฐ ์ ์ธ๋๋ค๋ ๊ฒ์ ๋ํ๋ธ๋ค.
x: ๋ณ์ ์ด๋ฆ์ด๋ค. ์คํฌ๋ฆฝํธ ์์์ ์ ์ผํด์ผ ํ๋ค.
;: ํ๋์ ๋ฌธ์ฅ์ด ๋๋ฌ์์ ๋ํ๋ธ๋ค.
x = 10;
=์ ๋ณ์์ ์ด๊ธฐ๊ฐ์ ์ ์ฅํ๋ค.
์์)
var x; //๋ณ์ x ์ ์ธ
s=100;
document.write(s+"<br>");
s="ํ๊ธธ๋";
document.write(s+"<br>");
var x = 123.00;
var y = 123;
var z1 = 123e3; //10^3
var z2 = 123e-3; //10^-3
document.write(x+"<br>");
document.write(y+"<br>");
document.write(z1+"<br>");
document.write(z2+"<br>");
var a = (20>10); //true
var b = (10>10); //false
document.write(a+"<br>");
document.write(b+"<br>");
var c; // undefined
document.write(c+"<br>");
var d = "abc";
var e = 'abc';
var f = "๊ทธ๋ '์ํผ๋งจ'์ด๋ผ๊ณ ๋ถ๋ฆฐ๋ค.";
document.write(d+"<br>");
document.write(e+"<br>");
document.write(f+"<br>");
document.write(d.length+"<br>"); //๋ฌธ์์ด์ ๊ธธ์ด
๊ฒฐ๊ณผ)
100
ํ๊ธธ๋
123
123
123000
0.123
true
false
undefined
abc
abc
๊ทธ๋ '์ํผ๋งจ'์ด๋ผ๊ณ ๋ถ๋ฆฐ๋ค.
3
6. ์๋ฃํ (data type) p. 283
์๋ฃํ์ ๋ณ์๊ฐ ๊ฐ์ง ์ ์๋ ๊ฐ์ ์ข
๋ฅ์ด๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ณ์๋ฅผ ์ ์ธํ ๋๋ ์๋ฃํ์ด ํ์ ์๋ค. ํ์ง๋ง ํน์ ํ ๊ฐ์ด ๋ณ์์ ์ ์ฅ๋๋ ์๊ฐ, ์๋ฃํ์ ๋ด๋ถ์ ์ผ๋ก ๊ฒฐ์ ๋๋ค. ์๋ฃํ์ ํํํ์ง ์์ง๋ง ๋ณ์์ ๋ด๋ถ ์์ฑ์ผ๋ก ์๋ฃํ์ ๊ฐ์ง๊ณ ์๋ค.
์์)
<script>
var x; // x์ ๊ฐ์ undefined๊ฐ ๋๋ค. ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํ ๋ณ์ x๋ฅผ ์ ์ธํ๋ค. ์๋ฃํ์ ์ ์ ํ์๋ ์๋ค.
x = 100; // x๋ ์ซ์๋ฅผ ๊ฐ์ง๋ค. ๋ณ์ x์ ์ ์ 100์ ์ ์ฅํ๋ค.
document.write(x+"<br>");
x = "ํ๊ธธ๋"; // x๋ ๋ฌธ์์ด์ ๊ฐ์ง๋ค. ๋ณ์ x์ ๋ฌธ์์ด "ํ๊ธธ๋"์ ์ ์ฅํ๋ค.
document.write(x+"<br>");
</script>
๊ฒฐ๊ณผ)
100
ํ๊ธธ๋
์์นํ, ๋ฌธ์์ด, ๋ถ์ธํ์ ๊ธฐ๋ณธ ์๋ฃํ์ด๋ค.
1) ์์นํ(number): ์ ์๋ ์ค์๊ฐ ๋ ์ ์๋ค. ์ค์๋ e๋ฅผ ์ฌ์ฉํด ์ง์ํ์ผ๋ก ํ์ํ ์ ์๋ค.
var x = 123.00; // ์ค์
var y = 123; // ์ ์
var z1 = 123e3; // 123000
var z2 = 123e-3 // 0.123
2) ๋ฌธ์์ด(string): ๋ฌธ์๊ฐ ์ฐ๊ฒฐ๋ ๊ฒ์ ์๋ฏธํ๋ค. ํ
์คํธ๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
์ฐ์๋ ๋ฌธ์๋ค๋ก์ "abc", ๋๋ 'abc'์ ๊ฐ์ด ๋ํ๋ธ๋ค. ๋ฌธ์์ด ๋ด์ ๋ฌธ์๋ ์ ๋์ฝ๋๋ก ํํ๋๋ค.
๋ฌธ์์ด์ ๊ธธ์ด๋ ๋ด๋ถ์ ๋ค์ด ์๋ ๋ฌธ์์ ๊ฐ์์ด๋ค. ๋ฌธ์์ ์์น๋ 0๋ถํฐ ์์ํ๋ค.
๋ฌธ์์ด์ ๊ธธ์ด๋ ๋ฌธ์์ด length ์์ฑ์ผ๋ก ์ ์ ์๋ค.
์์) length ์์ฑ
var s = "abc"; // s๋ ๋ฌธ์์ด "abc"๋ฅผ ์ ์ฅํ๋ค.
alert(s.length); // 3์ด ์ถ๋ ฅ๋๋ค.
์์) ๋ฌธ์์ด์ ์ค์ํ ๋ฉ์๋
var s = "Hello World";
s.charAt(0); // => "H": ์ฒซ๋ฒ ์งธ ๋ฌธ์
s.replace("e", "E"); // => "HEllo World": E๋ฅผ e๋ก ๋ณ๊ฒฝํ๋ค.
s.toUpperCase(); // => "HELLO WORLD": ๋๋ฌธ์๋ก ๋ณ๊ฒฝํ๋ค.
๋ฌธ์์ด ์ฒ๋ฆฌ์์ ์ฃผ์ํ ์ : ๋ฌธ์์ด์ ๋ณ๊ฒฝํ๋ ๋ฉ์๋๋ ์๋ก์ด ๋ฌธ์์ด์ ์์ฑํ์ฌ ๋ฐํํ๋ค. ๊ธฐ์กด์ ๋ฌธ์์ด์ ์์ ํ์ฌ ๋ฐํํ๋ ๊ฒ์ด ์๋๋ค.
3) ๋ถ์ธํ(boolean): true(์ฐธ) ๋๋ false(๊ฑฐ์ง) ๊ฐ๋ง์ ๊ฐ์ง ์ ์๋ค. ๋ ์ค ํ๋๋ฅผ ํํํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ์กฐ๊ฑด๋ฌธ์์ ์คํ ์กฐ๊ฑด์ ๊ฒ์ฌํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.
var x = (20 > 10); // x๋ true๊ฐ ๋๋ค.
var y = (10 > 20); // y๋ false๊ฐ ๋๋ค.
4) ๊ฐ์ฒดํ(object): ๊ฐ์ฒด๋ฅผ ๋ํ๋ด๋ ํ์
์ด๋ค. ๊ธฐ๋ณธ ์๋ฃํ(์์นํ, ๋ฌธ์์ด, ๋ถ์ธํ)์ ์ ์ธํ๋ฉด ๋ชจ๋ ๊ฐ์ฒดํ์ด๋ผ๊ณ ํ ์ ์๋ค.
๊ฐ์ฒด๋ ์ฌ๋ฌผ์ ์์ฑ๊ณผ ๋์์ ๋ฌถ์ด์ ํํํ๋ ๊ธฐ๋ฒ ์ค์ ํ๋์ด๋ค.
ex) ์๋์ฐจ์ ์์ฑ: ๋ฉ์ด์ปค, ๋ชจ๋ธ, ์์, ๋ง๋ ฅ
์๋์ฐจ์ ๋์: ์ถ๋ฐํ๊ธฐ, ์ ์งํ๊ธฐ
๊ฐ์ฒด๋ ์ด๊ฒ์ ๋ฌถ์ด์ ๋ค์๊ณผ ๊ฐ์ด ํํํ๋ค.
var myCar = {model: "bmz", color: "red", hp: 100}
//์์ ๊ฐ์ฒด์ ๋์์ ๋ํ๋ด๋ ๋ฉ์๋๋ฅผ ์ถ๊ฐํ๋ฉด ์์ ํ ๊ฐ์ฒด๊ฐ ๋๋ค.
//๊ฐ์ฒด์ ์์ฑ์ ์ฌ์ฉํ ๋๋ ๋ํธ(.) ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ค.
document.write("myCar.model + "<br>");
5) undefined: ๊ฐ์ด ์ ํด์ง์ง ์์ ์ํ๋ฅผ ๋ํ๋ธ๋ค. ๋ณ์๊ฐ ์ ์ธ๋์์ง๋ง ์์ง ๊ฐ์ด ๋์
๋์ง ์์์ผ๋ฉด undefined ์ํ๊ฐ ๋๋ค.
7. ์ฐ์ฐ์ p. 287
7.1 ์ฐ์ ์ฐ์ฐ์ (arithmetic operator)
: +, -, *, /, %(๋๋จธ์ง), ++(์ฆ๊ฐ), --(๊ฐ์)
int x=1;
y=x+1;
y=x++; post increment /*ํ์ํ: ์ ์ ์ฅ ํ ์ฆ๊ฐ*/
y=x; x=x+1; // y๋ 1, x๋ 2์ด๋ค
y=++x; pre increment /*์ ์ํ: ์ ์ฆ๊ฐ ํ ์ ์ฅ*/
x=x+1; y=x; // x๋ 2, y๋ 2์ด๋ค
์ฆ๊ฐ ์ฐ์ฐ์(increment and decrement operator)
- ํ์ํ(post increment): ์ ์ ์ฅ ํ ์ฆ๊ฐ p=x; x=x+1;
x++ value is incremented after value assign or printed.
- ์ ์ํ(pre increment): ์ ์ฆ๊ฐ ํ ์ ์ฅ x=x+1; p=x;
++x value incremented before the value is printing.
++x: x์ ๊ฐ 3->4
--x: x์ ๊ฐ 4->3
์์)
var x;
x=10;
y=++x; /*์ ์ํ: ์ ์ฆ๊ฐ ํ ์ ์ฅ x=x+1, y=x*/
document.write("x๊ฐ: "+x+"<br>");
document.write("y๊ฐ: "+y+"<br>");
x=10;
y=x++; /*ํ์ํ: ์ ์ ์ฅ ํ ์ฆ๊ฐ y=x, x=x+1*/
document.write("x๊ฐ: "+x+"<br>");
document.write("y๊ฐ: "+y+"<br>");
๊ฒฐ๊ณผ)
x๊ฐ: 11
y๊ฐ: 11
x๊ฐ: 11
y๊ฐ: 10
7.2 ๋์
์ฐ์ฐ์ (assignment operator)
+=, -=, *=, /=, %=
์ฐ์ ์์๊ฐ ์ ์ผ ๋ฎ๋ค.
x+=y : x=x+y
x-=y : x=x-y
x*=y : x=x*y
x/=y : x=x/y
x%=y: x=x%y
๋ฌธ์์ด์์์ + ์ฐ์ฐ์
์์)
// ๋ฌธ์ + ๋ฌธ์ (์ฐ๊ฒฐ์)
t1 = "Hello "+"World"; // + = ์ฐ๊ฒฐ์ ์ญํ
// ์ซ์ + ์ซ์ (์ฐ๊ฒฐ์)
t2 = 3 + 4;
// ์ซ์ + ๋ฌธ์ (์ฐ๊ฒฐ์)
t3 = 2 + " Things";
// ๋ฌธ์ + ์ซ์ (๋ง์
)
t4 = "Good " + 2;
document.write(t1+"<br>");
document.write(t2+"<br>");
document.write(t3+"<br>");
document.write(t4+"<br>");
๊ฒฐ๊ณผ)
Hello World
7
2 Things
Good 2
7.3 ๋น๊ต ์ฐ์ฐ์ (comparison operator)
- ==: ๊ฐ์ด ๊ฐ์ผ๋ฉด ์ฐธ
- !=: ๊ฐ์ด ๋ค๋ฅด๋ฉด ์ฐธ
- >: ํฌ๋ฉด ์ฐธ
- <: ์์ผ๋ฉด ์ฐธ
- >=: ํฌ๊ฑฐ๋ ๊ฐ์ผ๋ฉด ์ฐธ
- <=: ์๊ฑฐ๋ ๊ฐ์ผ๋ฉด ์ฐธ
๊ฒฐ๊ด๊ฐ์ true, false๋ก ๋์จ๋ค.
- ===: ๊ฐ๊ณผ ํ์ ์ด ๋ชจ๋ ๊ฐ์ผ๋ฉด ์ฐธ
- !==: ๊ฐ์ด๋ ํ์ ์ด ๋ค๋ฅด๋ฉด ์ฐธ
์์)
document.write((1==1)+"<br>") //T ์๋ฃํ(Type)์ ๊ณ ๋ คํ์ง ์๊ณ ๊ฐ๋ง ๋น๊ตํ๋ค.
document.write((1=="1")+"<br>") //T
document.write((1===1)+"<br>") //T ์๋ฃํ(Type)๋ ๊ฐ์์ง ๊ณ ๋ คํ๋ค.
document.write((1==="1")+"<br>") //F
๊ฒฐ๊ณผ)
true
true
true
false
7.4 ๋ ผ๋ฆฌ ์ฐ์ฐ์ (logical operator)
- &&: AND ์ฐ์ฐ, x์ y๊ฐ ๋ชจ๋ ์ฐธ์ด๋ฉด ์ฐธ, ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ฑฐ์ง
ex) ๋ก๊ทธ์ธ - ||: OR ์ฐ์ฐ, x๋ y ์ค์์ ํ๋๋ฉด ์ฐธ์ด๋ฉด ์ฐธ, ๋ชจ๋ ๊ฑฐ์ง์ด๋ฉด ๊ฑฐ์ง
- !: NOT ์ฐ์ฐ, x๊ฐ ์ฐธ์ด๋ฉด ๊ฑฐ์ง, x๊ฐ ๊ฑฐ์ง์ด๋ฉด ์ฐธ
7.5 ์กฐ๊ฑด ์ฐ์ฐ์
max_value = (x>y) ? x: y:
x>y๊ฐ ์ฐธ์ด๋ฉด x๊ฐ ์์์ ๊ฐ์ด ๋๋ค.
x>y๊ฐ ๊ฑฐ์ง์ด๋ฉด y๊ฐ ์์์ ๊ฐ์ด ๋๋ค. ex) ๊ฒฐ๊ณผ = ์๋ฅ์ ์ > 60 && ๋ฉด์ ์ ์ > 60 ? "ํฉ๊ฒฉ" : "๋ถํฉ๊ฒฉ"
๊ธฐํ)
ํ๋กํ ํ์ ๊ธฐ๋ฐ ์ธ์ด
Prototype-based programming is a style of object-oriented programming in which behaviour reuse (known as inheritance) is performed via a process of reusing existing objects that serve as prototypes. This model can also be known as prototypal, prototype-oriented, classless, or instance-based programming.
ํ๋กํ ํ์
๊ธฐ๋ฐ ์ธ์ด๋ ํด๋์ค ๊ธฐ๋ฐ ์ธ์ด์์ ์์์ ์ฌ์ฉํ๋ ๊ฒ๊ณผ๋ ๋ค๋ฅด๊ฒ,
๊ฐ์ฒด๋ฅผ ์ํ(๊ฐ๊ฑฐ๋ ๋น์ทํ ์ฌ๋ฌ ๊ฐ๊ฐ ๋ง๋ค์ด์ ธ ๋์จ ๋ณธ๋ฐํ. ํ๋กํ ํ์
)์ผ๋ก ํ๋ ๋ณต์ ๊ณผ์ ์ ํตํด ๊ฐ์ฒด์ ๋์ ๋ฐฉ์์ ์ฌ์ฌ์ฉํ ์ ์๊ฒ ํ๋ค.
์ฐธ๊ณ : https://ui.toast.com/weekly-pick/ko_20160603
ํด๋์ค: ๊ฐ์ฒด์ ๋ํ ์ค๊ณ๋(ํ ํ๋ฆฟ). ๊ฐ์ฒด๊ฐ ์๋์ฐจ๋ผ๋ฉด ํด๋์ค๋ ์๋์ฐจ์ ์ค๊ณ๋์ด๋ค. p.339
์์ฑ์ ํจ์
https://developer-talk.tistory.com/281