JavaScript Basic Syntax
JavaScript ๋?
Browser๋ฅผ ์กฐ์ํ๊ธฐ ์ํ ์ธ์ด
๋ธ๋ผ์ฐ์ ์
๋ธ๋ผ์ฐ์ ์ ์ํ
๋ธ๋ผ์ฐ์ ๋ฅผ ์ํ
JavaScript๋ ํ์ค๊ณผ์ ์ ์์ด๋ค!
JQuery
JQuery๋ฅผ ์ฌ์ฉํ๋ฉด ์๋๋ ์ฝ๊ฐ ๋๋ ค์ง ์ ์์ง๋ง
cross-browsing
issue๋ฅผ ์์ ์ค๋ค
Vanilla JS
: ์ฐํ์ฃฝ์ ์๊ฒจ๋๋ JavaScript Library ๊ทธ๋ง์ฐ์! ๋ ์บ ํ์ธ
Vanilla == '์์ '
์๋ฌด๋ฐ library๋ ์ค์นํ์ง ์๊ณ JavaScript๋ฅผ ์ฐ๋ ๊ฒ!
JavaScript
์ต์๋จ์
window
๊ฐ ์์
window.document
write ํ๊ธฐ
window.document.write()
์ต์๋จ์ ํญ์
window
์ด๊ธฐ ๋๋ฌธ์ ์๋ต ๊ฐ๋ฅํ๋ค
ASI (Automatic Semicolon Insertion)
: The principle of the feature is to provide a little leniency when evaluating the syntax of a JavaScript program by conceptually inserting missing semicolons
3๋ ๊ตฌ์ฑ์์
BOM (Browser Object Model)
DOM (Documenet Object Model)
DOM ์กฐ์
JavaScript์ ์กด์ฌ ์ด์
ES (EcmaScript)
ES (EcmaScript)
let vs const
let
: ์ฌ ํ ๋น์ด ๊ฐ๋ฅํ๋ค
const
: ์ฌ ํ ๋น์ด ๋ถ๊ฐ๋ฅํ๋ค !== ๊ฐ์ด ๋ฐ๋์ง ์๋๋ค
Naming Convention
lower cammel case ์ฌ์ฉํ๊ธฐ!
snake case ์๋๋ค!
์ ๋ ๋์จํ ์ผ์น ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค
==
,!=
=> X===
,!==
=> O
Function => 1๊ธ ๊ฐ์ฒด
1๊ธ ๊ฐ์ฒด
๋ณ์์ ์ ์ฅํ ์ ์๋ค.
ํจ์์ ๋ฆฌํด๊ฐ์ด ๋ ์ ์๋ค.
ํจ์์ ์ธ์๊ฐ ๋ ์ ์๋ค.
DOM (Document Object Model) ์กฐ์
String ์ธ HTML์ Object๋ก ๋ฐ๊พธ๊ณ
์ดํดํ๊ณ ํด์ํด์
DOM Tree๋ฅผ ๋ง๋ค๊ณ
ํ๋ฉด์ rendering (๊ทธ๋ฆผ ๊ทธ๋ฆฌ๊ธฐ)
์ ๋ฆฌ:
์ธ์์ data๋ ์ ๋ถ String (HTML)
์ด๊ฒ์ ํด์ํ๋ parse/pasing ๊ณผ์ ์ ๊ฑฐ์ณ์ผ ํ๋ค (DOM์ด ํด์)
Selecting
: querySelector
, querySelectorAll
querySelector
, querySelectorAll
Create
: .classList.add()
.classList.add()
I. Scope
์ค2๋ณ ํํค์ฝ๋ชจ๋ฆฌ ๋ง๋ด๋์ ๋ฒ์น
์ค๊ดํธ๊ฐ ์์ ๊ฒฝ์ฐ, Scope๋ฅผ ๋ง๋ ๋ค!!
function์ผ ๊ฒฝ์ฐ
์ ์ด๋ฌธ (if / while / switch (control)) ๋ฑ5 ์ผ ๊ฒฝ์ฐ
var
function์์๋ง scope๋ก ๋ฌถ์์let
์ ์ค๊ดํธ๊ฐ ์์ ๊ฒฝ์ฐ (scope) ๋์ผํ๊ฒ ์๋
II. var
, let
, const
var
, let
, const
var
ํ ๋น ์์
์ ์ธ ์์
ํจ์ ์ค์ฝํ (์ ๋ ์ฐ์ง ์๋๋ค.)
let
ํ ๋น ์์
์ ์ธ์ ํ๋ฒ
๋ธ๋ก ์ค์ฝํ
const
ํ ๋น ํ๋ฒ
์ ์ธ ํ๋ฒ
๋ธ๋ก ์ค์ฝํ
Identifier (์๋ณ์) Convention
๋ณ์, ํจ์, ๊ฐ์ฒด: ์บ๋ฉ ์ผ์ด์ค (
camelCase
)class, ์์ฑ์: ํ์ค์นผ ์ผ์ด์ค (
PascalCase
)์์: ๋๋ถ์ ์ค์ผ์ดํฌ ์ผ์ด์ค (
SNAKE_CASE
)
III. Hoisting (ํธ์ด์คํ
)
var๋ฅผ ์ฐ์ง ์๋๋ค
function ์ ์ธํ์ผ๋ก ์ฐ์ง ์๋๋ค
์ ์ธํ์ผ๋ก ์ฐ๋ฉด ์๊ฐ๋๋ก ์ฝ๋๊ฐ ์์ง์ด์ง ์์
why?
์คํ ์ ์ ํ ๋ฒ ํ์ด์, ์ ์ธ ์ด์ ์ ์ฐธ์กฐ๊ฐ ๊ฐ๋ฅํ๊ฒ ํจ
V. ์๋ฃํ
(1) ์ซ์
(2) ๊ธ์
ํฉ์ฒด (concatenation)
+
์์ (interpolation)
template literal ${}
(3) Boolean
๋ญ๊ฐ ์ฐธ์ ๊ฐ๊น๊ณ , ๋ญ๊ฐ ๊ฑฐ์ง์ ๊ฐ๊น๋
true
,false
(์๋ฌธ์)
1. Truthy
Falsy ๊ฐ ์๋ ๋ชจ๋ ๊ฐ๋ค
[]
- emptyArray{}
- emptyObject
2. Falsy
์๊ฑฐ๋, ์ ์๋์ง ์์ ๊ฒ
null
undefined
""
0
[] == true
![]
VI. ์๋ฃ๊ตฌ์กฐ
์ด๋ป๊ฒ ์ ์ฅํ๊ณ , ์กฐ์ํ๋์ง (CRUD) => method๋ฅผ ๋ณด์
Array (
list
)array helper method
Object (
dict
)
VII. ํจ์
์ ์ธ์ (statement)
ํํ์ (expression)
Arrow Function
(Class) Method(OOP) ํจ์๊ฐ ์๋ ๊ณณ์์๋ง ์ฌ์ฉ
Class ์ ์์์๋ arrow ํจ์ ์ฌ์ฉํ์ง ๋ง์!
why?
this
,arguments
,super
,new.target
๋ฑ์ binding ํ์ง ์๊ธฐ ๋๋ฌธ
์์ฑ์๋ก ์ฌ์ฉ X
Event Listener Callback function์ผ๋ก ์ฌ์ฉ X
ex)
VIII. OOP
๋งค์ฐ ์ ์ฐํ ๊ฐ์ฒด๋ฅผ ํตํ OOP
Class๋ฅผ ์ ์ ์์ด๋ผ!
Prototypal Inheritance
ES6+ ๋ถํฐ
class
๋์
ex)
Last updated
Was this helpful?