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