๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿฆ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‹œ์ž‘ํ•˜๊ธฐ



JavaScript30 Challenge๋Š” ์‹ค์ œ ์›นํŽ˜์ด์ง€์˜ ์ธํ„ฐ๋ž™์…˜์„ Day ๋‹น ํ•œ ํŽ˜์ด์ง€์”ฉ ๊ตฌํ˜„ํ•ด๋ณด๋„๋ก ๊ตฌ์„ฑ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌด์ž‘์ • ์ฝ”๋“œ๋ฅผ ๋”ฐ๋ผ์น˜๊ธฐ๋ณด๋‹ค๋Š” ๊ธฐ์ดˆ๋ฌธ๋ฒ•์„ ์ •๋ฆฌํ•˜๊ณ  ์‹œ์ž‘ํ•˜๋Š” ํŽธ์ด ํšจ์œจ์  ์ผ ๊ฒƒ ๊ฐ™์•„, ๊ณต๋ถ€ํ•  ๊ฒธ ๋ณธ ํฌ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„ MDN web documentation์— ์žˆ๋Š” ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๊ฒƒ ์ž…๋‹ˆ๋‹ค. ๋” ์ž์„ธํ•œ ๋‚ด์šฉ์„ ํ™•์ธํ•˜๋ ค๋ฉด ๋งํฌ๋ฅผ ๋”ฐ๋ผ๋“ค์–ด๊ฐ€ docs๋ฅผ ์ง์ ‘ ํ™•์ธํ•˜๋Š” ๊ฒƒ๋„ ์ข‹์Šต๋‹ˆ๋‹ค.


1. JavaScript๋Š” ์ฃผ๋กœ ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ์—์„œ ์›น ํŽ˜์ด์ง€์˜ ๋™์  ์ธํ„ฐ๋ž™์…˜์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” *๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. 

*๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋Š” ์ปดํŒŒ์ผ ํƒ€์ž„์— ์ˆ˜ํ–‰๋˜๋Š” ์ž‘์—…์„ ๋Ÿฐํƒ€์ž„์— ์ˆ˜ํ–‰ ํ•  ์ˆ˜์žˆ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด JavaScript์—์„œ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ๋ณ€์ˆ˜์˜ ์œ ํ˜•์„ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ์ƒˆ ์†์„ฑ์ด๋‚˜ ๋ฉ”์†Œ๋“œ๋ฅผ ๊ฐ์ฒด์— ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋‹ค.


2. JavaScript๋Š” Java๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

์ด๋ฆ„์ด ๋น„์Šทํ•˜๋‹ค๋Š” ์ด์œ ๋กœ Java์™€ ํ˜ผ๋™ํ•˜๊ธฐ๋„ ํ•˜์ง€๋งŒ, ์ด ๋‘˜์˜ ๋ฌธ๋ฒ•, ์˜๋ฏธ๋ก , ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉ ๋ชฉ์ ์€ ๋งค์šฐ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. JavaScript๊ฐ€ ๋ณธ๋ž˜์˜ ์ด๋ฆ„์ธ LiveScript๋ฅผ ๊ณ ์ˆ˜ํ–ˆ๋‹ค๋ฉด, ๋ณด๋‹ค ์ง๊ด€์ ์œผ๋กœ ์–ธ์–ด์˜ ๋ชฉ์ ์„ ์ „๋‹ฌ ํ•  ์ˆ˜ ์žˆ์—ˆ์„ ๊ฒƒ ์ž…๋‹ˆ๋‹ค.


3. ์ž…์ถœ๋ ฅ ๊ฐœ๋…์ด ์—†์Šต๋‹ˆ๋‹ค.

์ฝ”๋“œ๊ฐ€ ์œ„์—์„œ ์•„๋ž˜๋กœ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰๋˜๊ณ  ๊ทธ ์ฆ‰์‹œ ๊ฒฐ๊ณผ๊ฐ€ ๋ฐ˜ํ™˜๋˜๋Š” ์ธํ„ฐํ”„๋ฆฌํ„ฐํ˜• ์–ธ์–ด์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋Œ€๋ถ€๋ถ„์˜ (์ปดํŒŒ์ผ๋Ÿฌํ˜•) ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ๋‹ฌ๋ฆฌ ์ž…์ถœ๋ ฅ ๊ฐœ๋…์ด ์—†์Šต๋‹ˆ๋‹ค. ์™ธ๋ถ€ ์„ธ๊ณ„์™€ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•ด ํ˜ธ์ŠคํŠธ ํ™˜๊ฒฝ์ด ์ œ๊ณตํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค. 


4. ๋‹ค์–‘ํ•œ ํ˜ธ์ŠคํŠธ ํ™˜๊ฒฝ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ ํ˜ธ์ŠคํŠธ ํ™˜๊ฒฝ์€ ๋ธŒ๋ผ์šฐ์ €(์˜ˆ๋ฅผ ๋“ค์–ด Firefox, Chrome.) ์ด๊ณ , Adobe Acrobat, Photoshop, SVG images, Yahoo! ์œ„์ ฏ ์—”์ง„ ๋“ฑ์˜ ์ œํ’ˆ, Node.js ์™€ ๊ฐ™์€ ์„œ๋ฒ„ ์ธก ํ™˜๊ฒฝ์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, Apache CouchDB, ์ž„๋ฒ ๋””๋“œ ์ปดํ“จํ„ฐ, GNU/Linux OS์˜ ๊ฐ€์žฅ ์œ ๋ช…ํ•œ GUI ์ธ GNOME ๊ณผ ๊ฐ™์€ ๋ฐ์Šคํฌํ†ฑ ํ™˜๊ฒฝ๊นŒ์ง€ JavaScript๊ฐ€ ์‚ฌ์šฉ๋˜๋Š” ๋ถ„์•ผ๋Š” ๊ณ„์† ๋„“ํ˜€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.




Basic Syntax for JavaScript.


- ์›น ์ฝ˜์†”์„ ํ‚ค๋ฉด ๋ธŒ๋ผ์šฐ์ € ๋‚ด์—์„œ ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ๋ฅผ ํ…Œ์ŠคํŠธํ•ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

- Firefox์™€ Chrome์˜ ๊ฒฝ์šฐ ๋‹จ์ถ•ํ‚ค ` Shift+Ctr+I `๋ฅผ ํ†ตํ•ด ๋ฐ”๋กœ ์›น์ฝ˜์†” ์ฐฝ์„ ์ผค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

- ํ•œ ์ค„ ๋์— ์žˆ๋Š” ; (์„ธ๋ฏธ์ฝœ๋ก )์ด statement์˜ ๋์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. 

 (์ž์„ธํ•œ ์„ธ๋ฏธ์ฝœ๋ก  ๊ทœ์น™ ์•ˆ๋‚ด๋Š” ์—ฌ๊ธฐ๋กœ)

- ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

- built-in Error Type๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค.



- ๋ฐ์ดํ„ฐ ํƒ€์ž… (Data Types):

Type

์„ค๋ช…

์˜ˆ์ œ

String

๋ฌธ์ž์—ด, ์ผ๋ จ์˜ ํ…์ŠคํŠธ. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ๋ฌธ์ž์—ด๋„ ๊ฐ์ฒด์ด๋‹ค.

var Name = 'hon';

Number

์ˆซ์ž. 

var Age = 300;

Boolean

true / false ๊ฐ’.

var Flag = true;

Array

 ์—ฌ๋Ÿฌ ๊ฐ’์„ ํ•˜๋‚˜์˜ ๋‹จ์ผํ•œ reference์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ๊ตฌ์กฐ.

var myArray = [1, 2, 3, 4];

Object

data์™€ instructions๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๊ฐ์ฒด. ์•„๋ž˜์˜ ํƒ€์ž…๋“ค์ด ํฌํ•จ๋œ๋‹ค.

ํ•จ์ˆ˜ (Function)๋ฐฐ์—ด (Array)๋‚ ์งœ (Date)์ •๊ทœ์‹ (RegExp)

var SelctQuery = document.querySelector('h1')

 null

๊ฐ’์ด ์—†์Œ์„ ๋‚˜ํƒ€๋‚ด๋Š” object ํƒ€์ž….

 var empty = ""

 undefined

์•„์ง ์–ด๋– ํ•œ ๊ฐ’(data)๋„ ์ฃผ์–ด์ง€์ง€์•Š์€ ์ •์˜๋˜์ง€ ์•Š์€ object ํƒ€์ž….

 


- ๋ณ€์ˆ˜์˜ ์ข…๋ฅ˜ (Variables)

keyword

 

let

๋ธ”๋ก ์œ ํšจ ๋ฒ”์œ„ ๋ณ€์ˆ˜. ์„ ์–ธ๋œ ๋ณ€์ˆ˜๊ฐ€ ํฌํ•จ ๋œ ํ•จ์ˆ˜ ๋ธ”๋ก์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 

const

๊ฐ’์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ๋ณ€์ˆ˜ ์„ ์–ธ.

var

์œ„์˜ ๋ณ€์ˆ˜๋“ค๊ณผ ๊ฐ™์€ ์ œํ•œ์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์€ ์ผ๋ฐ˜์ ์ธ ๋ณ€์ˆ˜์„ ์–ธ. 



- ์—ฐ์‚ฐ์ž์˜ ์ข…๋ฅ˜ (Operators)

keyword

 

+

๋‘ ์ˆ˜๋ฅผ ๋”ํ•˜๊ธฐ, ๋ฌธ์ž์—ด ํ•ฉ์น˜๊ธฐ.

-

๋นผ๊ธฐ

*

๊ณฑํ•˜๊ธฐ

/

๋‚˜๋ˆ„๊ธฐ

%

๋‚˜๋จธ์ง€

=

ํ• ๋‹น: ์šฐ๋ณ€์˜ ๊ฐ’(data)์„ ์ขŒ๋ณ€์˜ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•จ.

===

์ผ์น˜์—ฐ์‚ฐ์ž: ๋‘ ๊ฐ’์ด ๋™๋“ฑํ•œ์ง€ ์•„๋‹Œ์ง€์— ๋”ฐ๋ผ true/false ๊ฐ’์„ ๋ฐ˜ํ™˜.

==

 ์ผ์น˜์—ฐ์‚ฐ์ž์ธ๋ฐ, ===์™€ ๋‹ค๋ฅธ ์ ์ด ์žˆ๋‹ค. ๋น„๊ตํ•˜๋Š” ๋‘ ๊ฐ’์ด ์„œ๋กœ ํƒ€์ž…์ด ๋‹ค๋ฅผ ๋•Œ ๊ฐ•์ œ๋กœ ํƒ€์ž…์„ ๋งž์ถฐ์ค€๋‹ค.

 ! , !==

๋‘ ๊ฐ’์ด ๋™๋“ฑํ•œ์ง€ ํ™•์ธํ•˜๊ณ , ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋ฐ˜๋Œ€์ธ ๊ฐ’์„ ๋ฐ˜ํ™˜; true๋ฉด false๋กœ, false๋ฉด true๋กœ.