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