๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Web/Node.JS

[HTUN] Chapter 2. JavaScript ๊ธฐ์ดˆ (1)

by Yubin Heo 2020. 6. 24.

 

๐ŸŽ JavaScript์˜ ์ฝ”๋”ฉ ๋ฐฉ๋ฒ•

Javascript๋Š” html ๋ฌธ์„œ ์•ˆ์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์šฐ์„  htun1.html ์ด๋ผ๋Š” ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด ์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.

 

htun1.html

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>How To Use JavaScript? 1</title>
</head>
<body>
    <script>
        
    </script>
</body>
</html>

 

๋„ค ์ด๋ ‡๊ฒŒ html ๊ธฐ๋ณธ ๋ฌธ์„œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ , javascript ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€,

์œ„ ์ฝ”๋“œ์ฒ˜๋Ÿผ script ํƒœ๊ทธ ์•ˆ์— ์ž‘์„ฑํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ด์ œ๋ถ€ํ„ฐ ๋ชจ๋“  javascript ๋ฌธ๋ฒ•์€ ์œ„ ์ฝ”๋“œ์˜ <script> ... </script> ์•ˆ์— ์ž‘์„ฑํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

(html ํƒœ๊ทธ๋Š” <script> ๋กœ ์—ด๋ฉด </script> ๋กœ ๋‹ซ์•„์•ผ ํ•จ)


๐ŸŽ Step 1. ์ถœ๋ ฅ๋ฌธ

Javascript์—๋Š” ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ์„  ์•„๋ž˜์˜ ์ฝ”๋“œ๋ฅผ script ํƒœ๊ทธ ์•ˆ์— ์ž‘์„ฑํ•ด ๋ด…์‹œ๋‹ค.

 

alert("Hello JavaScript World!");
console.log("Hello JavaScript Wolrd?");
document.write("Hello JavaScript World.");

 

์œ„์™€ ๊ฐ™์ด ์ž‘์„ฑํ•œ ํ›„, htun1.html ํŒŒ์ผ์„ ์‹คํ–‰ํ•ด ๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค.

 

 

๋„ค ์œ„ ์‚ฌ์ง„์ฒ˜๋Ÿผ, ๋ ํŠน์ˆ˜๋ฌธ์ž๊ฐ€ '!' ์ธ๊ฒƒ๊ณผ '.' ์ธ๊ฒŒ ๋‘๊ฐœ ๋‚˜์˜ต๋‹ˆ๋‹ค.

๊ทผ๋ฐ ๋น ์ง„๊ฒŒ ์žˆ๋Š”๊ฑฐ ๊ฐ™์ฃ ? '?' ๋ฌธ์ž๊ฐ€ ์žˆ๋Š” ๋ฌธ์žฅ์€ ์–ด๋””๋ฅผ ๋ด๋„ ์ถœ๋ ฅ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

 

console.log() ํ•จ์ˆ˜๋Š” ์ฝ˜์†”์— ๋ฌธ์ž๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ•จ์ˆ˜๋กœ์„œ,

f12 (๊ฐœ๋ฐœ์ž๋„๊ตฌ)์— ๋“ค์–ด๊ฐ€์…”์„œ, console ํƒญ์— ๋“ค์–ด๊ฐ€์‹œ๋ฉด ์˜ˆ์ƒํ–ˆ๋˜ ๊ฒƒ ์ฒ˜๋Ÿผ ๋ฌธ์žฅ์ด ์ถœ๋ ฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

* alert() : ์•ˆ๋‚ด์ฐฝ์„ ๋„์šฐ๋Š” ํ•จ์ˆ˜

* console.log() : ์ฝ˜์†”์— ๋ฌธ์ž๋ฅผ ์ถœ๋ ฅํ•ด์ฃผ๋Š” ํ•จ์ˆ˜ (f12, ๊ฐœ๋ฐœ์ž๋„๊ตฌ)

* document.write() : HTML์˜ body ํƒœ๊ทธ ๋‚ด์— ๋ฌธ์ž๋ฅผ ์ถœ๋ ฅํ•ด์ฃผ๋Š” ํ•จ์ˆ˜,

 

๐ŸŽญ Step One Quiz ๐ŸŽญ

 - html์˜ body ํƒœ๊ทธ ์•ˆ์— 'A' ๋ฅผ ์ถœ๋ ฅํ•˜๊ณ , ์•ˆ๋‚ด์ฐฝ์— 'b'๋ฅผ ์ถœ๋ ฅํ•˜๊ณ , ์ฝ˜์†”์— 'cdefg' ๋ฅผ ์ถœ๋ ฅํ•˜์„ธ์š”

 


๐ŸŽ Step 2. ์ž…๋ ฅ๋ฌธ, ๋ณ€์ˆ˜

์ž…๋ ฅ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด, ์•ˆ๋‚ด์ฐฝ์—์„œ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๊ฐ’์„ ์ž…๋ ฅ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ์ง€์šฐ๊ณ , ์•„๋ž˜์˜ ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅ ํ•ด ๋ด…๋‹ˆ๋‹ค.

 

var num = prompt("์ˆซ์ž ํ•˜๋‚˜ ์ž…๋ ฅ");
document.write(num);

 

์œ„ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค.

 

๊ฐ์ด ์˜ค์‹  ๋ถ„๋“ค์ด ๊ณ„์‹œ๊ฒ ์ง€๋งŒ, ์„ค๋ช…ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

prompt()๋Š” ์ž…๋ ฅ์ฐฝ์ด ํŒ์—…๋˜๊ณ , ๊ฐ’์„ ์ž…๋ ฅ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ฐฝ์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

์•ž์— ๋ถ™๋Š” var num = ๋ถ€๋ถ„์€ num ์ด๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜์—ฌ ์ž…๋ ฅ๋ฐ›์€ ๊ฐ’์„ ๋„ฃ์–ด๋‘๋„๋ก ํ•œ ๊ฒƒ ์ž…๋‹ˆ๋‹ค.

 

document.write๋ฅผ ํ•  ๋•Œ์—, ๋ฌธ์ž์™€ ๋ณ€์ˆ˜๊ฐ’์„ ํ•จ๊ป˜ ์ถœ๋ ฅํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ด…์‹œ๋‹ค.

๋งค์šฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.

var num = prompt("์ˆซ์ž ํ•˜๋‚˜ ์ž…๋ ฅ");
document.write(`๊ทธ๊ฐ€ ์ž…๋ ฅํ•œ ์ˆซ์ž๋Š” ${num}`);

์œ„์ฒ˜๋Ÿผ ์ถœ๋ ฅ์— ` ` ๋ฅผ ๊ฐ์‹ธ์ฃผ์‹œ๊ณ , ์ถœ๋ ฅํ•  ๋ณ€์ˆ˜๋ฅผ ${ } ์— ๊ฐ์‹ธ์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

๋ณ€์ˆ˜์˜ ์ข…๋ฅ˜๋Š” const, let, var ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋“ค์˜ ์ฐจ์ด๋ฅผ ๊ฐ„๋‹จํ•œ ์‹ค์Šต์œผ๋กœ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

var name = 'Hello ';
alert(name);

var name = 'javascript ';
alert(name);

var name = 'World ';
alert(name);

 

์œ„์ฒ˜๋Ÿผ var๋กœ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค๊ณ , ๊ทธ ์•ˆ์— ๊ฐ๊ฐ์˜ ๊ฐ’์„ ๋„ฃ์—ˆ์„ ๋•Œ,

์ •์ƒ์ ์œผ๋กœ ๊ฐ’์ด ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„์ง๊นŒ์ง€๋Š” ์ฐจ์ด๋ฅผ ์ž˜ ๋ชจ๋ฅด๊ฒ ์ฃ ? let์„ ํ†ตํ•œ ์‹ค์Šต์„ ํ•ด๋ด…์‹œ๋‹ค.

 

// Uncaught SyntaxError: Identifier 'name' has already been declared
let name = 'Hello ';
alert(name);

let name = 'javascript ';
alert(name);

 

์ฃผ์„์€ ๊ตฌ์ง€ ์ž‘์„ฑํ•˜์ง€ ์•Š์œผ์…”๋„ ๋ฉ๋‹ˆ๋‹ค๋งŒ,

์–ด์จ‹๋“  ์ €๋Ÿฐ ์‹์œผ๋กœ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋ฌด์Šจ ์ฐจ์ด์ธ์ง€ ๊ฐ์ด ์˜ค์‹œ๋‚˜์š”? ์˜ค๋ฅ˜ ๋ฉ”์„ธ์ง€๋ฅผ ํ•ด์„ํ•˜๋ฉด "name์€ ์ด๋ฏธ ์„ ์–ธ๋˜์—ˆ๋‹ค" ์ž…๋‹ˆ๋‹ค.

 

๋„ค. var์€ ์žฌ์„ ์–ธ์ด ๊ฐ€๋Šฅํ•œ ๋ณ€์ˆ˜์˜ ํ˜•์‹์ด๊ณ ,

let์€ ์žฌ์„ ์–ธ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ํ˜•์‹์ด๊ธฐ ๋•Œ๋ฌธ์— let a = 2; let a = 3; ์˜ ํ˜•์‹์œผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ๋งž๋Š” ์ถœ๋ ฅ์ผ๊นŒ์š”?

 

let name = 'Hello ';
alert(name);

name = 'javascript ';
alert(name);

 

๋„ค. let ์ด๋ผ๋Š” ํƒ€์ž…์„ ์“ฐ์ง€ ์•Š์œผ๋ฉด ์ด๋ฏธ ์„ ์–ธ๋œ ๋ณ€์ˆ˜์˜ ๊ฐ’๋งŒ ๋ฐ”๊พผ๋‹ค๋Š” ์˜๋ฏธ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

(์ฐธ๊ณ ๋กœ var ํƒ€์ž…๋„ ์œ„์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค)

 

๊ทธ๋Ÿฌ๋ฉด... const๋Š” ๋„๋Œ€์ฒด ๋ญ˜๊นŒ์š”?

์šฐ์„  ๋˜ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ๋ด…์‹œ๋‹ค.

 

const name = 'hello';
console.log(name);

// Uncaught SyntaxError: Identifier 'name' has already been declared
const name = 'javascript';
console.log(name);

//Uncaught TypeError: Assignment to constant variable.
name = 'wolrd';
console.log(name);

 

๋„ค. ๊ฐ์ด ์˜ค์‹ ๋ถ„๋„ ๊ณ„์‹œ๊ฒ ์ง€๋งŒ, const ํƒ€์ž…์€ let ํƒ€์ž…๊ณผ ๋‹ค๋ฅด๊ฒŒ

์žฌ์„ ์–ธ (๊ฐ™์€ ๋ณ€์ˆ˜๋ฅผ ๋‹ค์‹œ ์„ ์–ธํ•˜๋Š” ๊ฒƒ)๊ณผ ์žฌํ• ๋‹น (๋ณ€์ˆ˜์— ๊ฐ’์„ ๋‹ค์‹œ ๋„ฃ๋Š” ๊ฒƒ)์„ ๋ชจ๋‘ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๊ทธ๋ƒฅ ํ•˜๋‚˜์˜ ๊ณ ์ •๋œ ์ƒ์ˆ˜์˜ ๊ฐœ๋…์ด๋ผ ๋ณด์‹œ๋ฉด ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์–ด์จ‹๋“  ๋‹ค์‹œ ๋ณธ๋ก ์œผ๋กœ ๋Œ์•„์™€์„œ, var num = prompt(); ๋ผ๋Š” ๊ฒƒ์€,

์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๊ฐ’์„ ์ž…๋ ฅ๋ฐ›์•„์„œ num ์ด๋ผ๋Š” ๋ณ€์ˆ˜์— ์ €์žฅํ•˜๊ฒ ๋‹ค๋Š” ์˜๋ฏธ ์ž…๋‹ˆ๋‹ค.

 

 

์ด์ œ prompt์™€ ๋น„์Šทํ•˜๋ฉด์„œ๋„ ์•„์˜ˆ ๋‹ค๋ฅธ confirm ์ด๋ผ๋Š” ๊ฒƒ์„ ๋ฐฐ์›Œ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์‹ค์Šตํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

var yesorno = confirm('Are You Ready?');
alert(yesorno);

 

์œ„ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ–ˆ์„ ๋•Œ, Are You Ready? ๋ผ๊ณ  ๋œจ๋ฉฐ, ์˜ˆ / ์•„๋‹ˆ์˜ค๋ฅผ ๋ˆ„๋ฅผ ๊ฒƒ์„ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค.

๋„ค. confirm ํ•จ์ˆ˜๋Š” ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์˜ˆ / ์•„๋‹ˆ์˜ค ๋ฅผ ์š”๊ตฌํ•˜์—ฌ

์˜ˆ ๋Š” true, ์•„๋‹ˆ์˜ค๋Š” false ๋กœ ์ฒ˜๋ฆฌํ•˜์—ฌ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.

 

์„ ํƒ์ง€๋ฅผ ์š”๊ตฌํ•  ๋•Œ ์ข‹์€ ํ•จ์ˆ˜๊ฐ€ ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 


 

๐ŸŽ Step 3. ์˜ค๋Š˜์˜ ์ตœ์ข… ํ€ด์ฆˆ!

1. name ๋ณ€์ˆ˜๋ฅผ let ํƒ€์ž…์œผ๋กœ ์„ ์–ธํ•˜์—ฌ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ด๋ฆ„์„ ์ž…๋ ฅ๋ฐ›์•„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

2. age ๋ณ€์ˆ˜๋ฅผ var ํƒ€์ž…์œผ๋กœ ์„ ์–ธํ•˜์—ฌ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๋‚˜์ด๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

3. isstd ๋ณ€์ˆ˜๋ฅผ const ํƒ€์ž…์œผ๋กœ ์„ ์–ธํ•˜์—ฌ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ํ•™์ƒ์ž…๋‹ˆ๊นŒ? ๋ฅผ ์˜ˆ/์•„๋‹ˆ์˜ค ๋กœ ์ž…๋ ฅ๋ฐ›์•„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

4. ์ตœ์ข…์ ์œผ๋กœ ์ž…๋ ฅ๋œ ๊ฐ’์„ html์˜ bodyํƒœ๊ทธ ์•ˆ์— ๋ชจ๋‘ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

 --> ๊ฐ๊ฐ์˜ ํ•ญ๋ชฉ ๋งˆ์ง€๋ง‰์— <br /> ์„ ๋„ฃ์„ ๊ฒƒ.

 

๋”๋ณด๊ธฐ
let name = prompt("๋‹น์‹ ์˜ ๋‚˜์ด๋Š”?");
var age = prompt("๋‹น์‹ ์˜ ๋‚˜์ด๋Š”?");
const isstd = confirm("ํ•™์ƒ์ž…๋‹ˆ๊นŒ?");

document.write(`๊ทธ์˜ ์ด๋ฆ„์€ ${name} ์ด๋‹ค. <br />`);
document.write(`๊ทธ์˜ ๋‚˜์ด๋Š” ${age} ์ด๋‹ค. <br />`);
document.write(`๊ทธ๊ฐ€ ํ•™์ƒ์ธ๊ฐ€? : ${isstd} <br />`);

 

์ด๋ฒˆ ๊ฐ•์ขŒ ์‹ค์Šตํ•˜๋Š๋ผ๊ณ  ์ˆ˜๊ณ ํ•˜์…จ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๊ฐ•์˜์—์„  ๋ฐ˜๋ณต๋ฌธ๊ณผ ์กฐ๊ฑด๋ฌธ, ๋ฐฐ์—ด์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

์ข‹์€ ํ˜ธ์ŠคํŒ…์ด ์žˆ์–ด์„œ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

 

์ฑ„ํŒ…์œผ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ๋งž์ถคํ˜• ์„œ๋ฒ„ ํ˜ธ์ŠคํŒ…์„

์ด์šฉ ํ•˜์‹ค์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


ํƒ€ ์—…์ฒด ๋ณด๋‹ค ๋”์šฑ ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅ ๊ณผ ๊ฐ€์„ฑ๋น„ ์™€

ํ•ฉ๋ฆฌ์ ์ธ ๊ฐ€๊ฒฉ์œผ๋กœ RTGROUP ๋””๋„์Šค ์ด์šฉ ํ•˜์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

rtg.kr

'Web > Node.JS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[HTUN] Chapter 2. JavaScript ๊ธฐ์ดˆ (2)  (2) 2020.06.25
[HTUN] Chapter 1. ๊ธฐ์กด ๊ฐ•์ขŒ๋ฅผ ๊ฐœํŽธํ•ฉ๋‹ˆ๋‹ค.  (0) 2020.06.24

๋Œ“๊ธ€