JavaScript Basics
JavaScript์ ๊ธฐ๋ฅ
HTML & CSS
Web ๋ฌธ์์ ๊ตฌ์กฐ์ ์ธํ์ ์ ์
JavaScript
๋ฌธ์์ ๊ธฐ๋ฅ์ ์ ์
ES2015 (ES6)
JavaScript์ ๊ณ ์ง์ ์ธ ๋ฌธ์ ๋ค์ ๋ง์ด ํด๊ฒฐํ ES2015๋ฅผ ์ง๋ ํ์ฌ ES2019๊น์ง ๋ฐํ
Vanilla JS (์์ํ JavaScript)
Cross browsing, ๊ฐํธํ ํ์ฉ ๋ฑ์ ์ํด ๋ง์ library๋ค์ด ๋ฑ์ฅ (๋ํ์ ์ผ๋ก jQuery)
์ต๊ทผ ํ์คํ๋ browser, ES6 ์ดํ์ ๋ค์ํ ๋๊ตฌ์ ๋ฑ์ฅ์ผ๋ก ์์ JavaScript ํ์ฉ์ ์ฆ๋
Browser์์ ํ ์ ์๋ ์ผ
์ ์ญ ๊ฐ์ฒด window
DOM ์กฐ์
BOM ์กฐ์
V8 engine์ ๊ธฐ๋ฐ์ผ๋ก ํ Node.js
JavaScript์ ํน์ง
Script ์ธ์ด์ด๋ค
Interpreter๋ฅผ ํตํด ๋ฐ๋ก ์คํ๋๋ค
Data type, type casting ์์
์๋๊ฐ ๋๋ฆผ
์คํ ํ๊ฒฝ์ ์ ํ์ ๋ฐ์
JavaScript Interpreter ๊ฐ ์ค์น๋์ด์๋ ํ๋ก๊ทธ๋จ์์๋ง ์๋ํจ
ํจ์ํ ์ธ์ด์ด๋ค
ํจ์๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ํ๋ ๋ฐฉ์
์ ์ธ์ ํ๋ก๊ทธ๋๋ฐ
HTML ์์๋ฅผ ๋์ ์ผ๋ก ์ฒ๋ฆฌ ๊ฐ๋ฅ
1๊ธ ํจ์
ํจ์ ์์ฒด๋ฅผ data ์ฒ๋ผ ์ฌ์ฉ ๊ฐ๋ฅ
๋ณ์์ ์ ํจ ๋ฒ์ == ํจ์์ ์ ํจ ๋ฒ์
Java์๋ ์ ํ ๋ค๋ฅธ programming ์ธ์ด์ด๋ค
Netscape ์ฌ์์ ๋ง์ผํ ์ ๋ชฉ์ ์ผ๋ก Java ๋ผ์ด์ผ์ค๋ฅผ ๋ฐ์ ์ฌ์ฉ
JavaScript == ECMA-262
์ด๋ณด์ ์ธ ์ธ์ด๊ฐ ์๋๋ค
ํ์ต ์์ ์ด๊ธฐ์๋ ์ฝ์ง๋ง ๋ณต์กํ ์๋น์ค ๊ตฌ์ถ์ ์ฌ์ฉ๋ ๋งํผ ๊ฐ๋ ฅํจ
Web ํ์ค์ด๋ค
HTML5: HTML5 + CSS3 + JavaScript
HTML5์ JavaScript์ ๋ํ ์์กด๋๊ฐ ๋์
JavaScript๋ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ์ ํฉํ๋ค!!!
Pros of JavaScript
Text editor์ web browser๋ง ์์ผ๋ฉด programming ๊ฐ๋ฅ
Data type ๋ฐ type-casting์ด ์ฌ์ ์ฝ๊ฒ ํ์ตํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅ
Compile ๊ณผ์ ์ ๊ฑฐ์น์ง ์๊ธฐ ๋๋ฌธ์ ์์ฑํ ์ฝ๋ ํ ์คํธ๊ฐ ์์
Data Types & Variables
JavaScript ๊ตฌ๋ฌธ
JavaScript ๊ธฐ๋ณธ ๊ตฌ๋ฌธ
ํด์ ์์
Interpreter์ ์ํด ์์์ ์๋๋ก ํด์ & ์คํ๋จ
Interpreter
: ํ๋ก๊ทธ๋จ ์ธ์ด๋ก ์ ํ์ง ํ๋ก๊ทธ๋จ์ ๊ธฐ๊ณ์ด๋ก ๋ณํํ๋ ํ๋ก๊ทธ๋จ
๋/์๋ฌธ์ ๊ตฌ๋ถ
variable, method, keyword๋ฑ ์ ํํ ๋์๋ฌธ์ ๊ตฌ๋ถํ์ฌ ์ ๋ ฅ
HTML์ ๊ฒฝ์ฐ ๋์๋ฌธ์ ๊ตฌ๋ถํ์ง ์์
๊ตฌ๋ฌธ ๋
๊ณต๋ฐฑ๊ณผ ๋ค์ฌ์ฐ๊ธฐ
์ฃผ์
Data Type ๋ถ๋ฅ (typeof)
1. ์์ ํ์
(primitive)
๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ๊ฐ (immutable)
boolean
null
undefined
number (NAN๋ number type)
string
symbol (ES6)
2. ๊ฐ์ฒด ํ์
(object)
object: ์ผ๋ฐ ๊ฐ์ฒด, function, array
Data Type
Number
Integer Type์ด ๋ณ๋๋ก ์๋ ๊ฒ์ด์ง ์ ์๋ผ๋ ์ ์ฒด๊ณ๊ฐ ์กด์ฌํ์ง ์๋ ๊ฒ์ ์๋๋ค
String
Template ๋ฌธ์์ด
null vs undefined
null
์ ์ธ ํ๋๋ฐ ๊ฐ์ด ํ ๋น๋์ง ์์ ๊ฒฝ์ฐ
typeof null => object ๋ผ๊ณ ๋์ด
Object
JavaScript๋ ์์ ํ์ (primitive type)์ ์ ์ธํ๊ณ ๋ ๋ชจ๋ ๊ฐ์ฒด์ด๋ค
JavaScript์ ๊ฐ์ฒด๋ key์ value๋ก ๊ตฌ์ฑ๋ ์์ฑ (property)์ ์งํฉ์ด๋ค
๊ฐ == ํจ์?
method๋ก ๋ถ๋ฆฌ์
๋ณ์ ์ ํจ ๋ฒ์ (scope)
ํจ์ level scope๋ฅผ ๊ฐ์ง๋ค
ํจ์ ๋ด์์ ์ ์ธ๋ ๋ณ์๋ ์ง์ญ๋ณ์์ด๋ฉฐ, ๋๋จธ์ง๋ ์ ์ญ๋ณ์๋ก ํ์ฉ
๋ณ์ ์ ์ธ ์ ํค์๋(var)๋ฅผ ์ฐ์ง ์์ผ๋ฉด, ์๋ฌต์ ์ ์ญ์ผ๋ก ์ค์ ๋๋ค
์ฃผ์: ๋ณ์๊ฐ ์๋ ์ ์ญ ๊ฐ์ฒด (window)์ property๋ก ์์ฑ
๋ณ์์ ํ ๋น๋ ๊ฒ์ด ์๋๋ผ window.global ์ด ๋ ๊ฒ!
keyword๋ฅผ ๊ผญ ์ฌ์ฉํด๋ผ!
ํธ์ด์คํ
๊ณผ let, const(ES6)
JavaScript์์๋ ๋ชจ๋ ์ ์ธ์ ํธ์ด์คํ ํ๋ค
ES6์์ ์๋กญ๊ฒ ๋ฑ์ฅํ
let
๊ณผconst
keyword๋ ์ด๋ฌํ ๋ด์ฉ์ ๋ฐฉ์งํ ์ ์๋คํธ์ด์คํ ์์ฒด๊ฐ ์ด๋ฃจ์ด ์ง๋ ๊ฒ์ ์๋๊ณ , var๋ ์ ์ธ๊ณผ ๋์์ ์ด๊ธฐํ (undefined)๋ฅผ ํ๊ณ ,
let, const๋ ์ ์ธ๊ณผ ์ด๊ธฐํ ๋จ๊ณ๊ฐ ๋ถ๋ฆฌ๋์ด ์งํ๋๋ค
Block level scope๋ฅผ ๊ฐ์ง๊ณ ์๋ค
JavaScript ๋ฌธ๋ฒ
==
vs ===
==
vs ===
๋๋ฑ ์ฐ์ฐ์ (==)
๊ฐ ๋น๊ต ๋ฐ ์์์น ์์ ๋ณํ
์ผ์น ์ฐ์ฐ์ (===)
์๊ฒฉํ ๊ฐ์
ํ๋น๊ต
python ์ == ๊ณผ ๋์ผ!
์กฐ๊ฑด๋ฌธ
else if
{}
๋ฐ๋ณต๋ฌธ
{}
JavaScript ๊ฐ์ฒด (object)
๊ฐ์ฒด๋ key์ value๋ก ๊ตฌ์ฑ๋ ์์ฑ (property)๋ค์ ๋ชจ์
๊ธฐ๋ณธ ๊ฐ์ฒด ์์ฑ๋ฒ
๊ฐ์ฒด ๋ฆฌํฐ๋ด
var cat1 = {} var cat2 = {name:'nero', age:3}
Object ์์ฑ์ ํจ์
var dog1 = new Object() dog1.name = 'cherry' dog1.name = 5
๊ฐ์ฒด (Object) ์์ฑ ๋ฐฉ๋ฒ
๊ฐ์ฒด literal๋ก ์์ฑ์ ํ๋ ๊ฒฝ์ฐ key๊ฐ string์ผ๋ก ํ๊ธฐ๋ ์ ์๋ค๋ฉด, ์๋ฌต์ ํ๋ณํ์ด ๋ฐ์ํ๋ค
๊ทธ๊ฒ ์๋ ๊ฒฝ์ฐ๋ ๋ฐ๋์ ๋ฐ์ดํ๋ฅผ ํตํด์ ๋ฌธ์์ด๋ก ๋ง๋ค์ด ์ค์ผํจ!
var OBJ = { name: 'chloe', 'e-mail': 'chloe@test.com' }
์ฌ๊ธฐ์ name ์ string์ผ๋ก ์๋ฌต์ ํ๋ณํ์ด ์ผ์ด๋๋ค!
๋ง์ฝ, ์์ฑ์ ํจ์๋ฅผ ๋ง๋ค์ด ์ฌ์ฉํ๋ฉด ๋ง์น class์ฒ๋ผ ์์ฑ์ด ๋์ผํ ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ ์๋ค
function Person(name, age){ this.name = name; this.age = age } var p1 = new Person('chloe', 25)
๊ฐ์ฒด (Object) ์์ฑ ์ ๊ทผ
์์ฑ ์ ๊ทผ์ . or [] ๋ก ๊ฐ๋ฅํ๋ค
๋จ, ๋ฐ๋์ [] ๋ก ์ ๊ทผ์ ํด์ผํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค
ex) key ๊ฐ string์ผ๋ก ์ด๋ฃจ์ด์ง์ง ์์ ๊ฒฝ์ฐ
var OBJ = { name: 'chloe', 'e-mail': 'chloe@test.com' } OBJ['e-mail']
Last updated
Was this helpful?