FrontendMaster의 Getting Started with JavaScript, v2에서 배운 핵심만 정리
변수 타입:
- Primitive: numbers, strings, booleans, null, undefined
- Object: Array, Object, String, Date, Number, Boolean
연산:
- +, -, ==, ||, <, >
변수:
- 만들 때 var
- initialization과 assignment는 따로 해도 됨
웬만한 스타일은 Java와 비슷하기 때문에 알고 있으면 굳이 공부할 필요 없음
let, const = block-scoped
var = function-scoped
두 개의 for-loop 스타일:
- for (let i =0;i<a.length;i++)
- for (let i of a) ← for each loop
파이썬 f-string처럼 ``을 사용하면 안에서도 계산을 하거나 변수를 넣을 수 있음
자바스크립트에서는 변수가 타입을 가지고 있는 게 아니라 값이 타입을 가지고 있다
NaN = invalid numerical operation
new= Java에서 처럼 새로운 Object를 만드는 데 사용하지만 String(), Number(), Booolean()에서는 사용하지 않음 (함수처럼 사용)
coercion = 타입을 바꿀 때 (implicit coercion으로 의도하지 않아도 가능)
True로 변환 = 밑에 있는 것 빼고 다
False로 변환 = "", 0, NaN, null, false, undefined
Boolean() = !!
==: coercion 허용
===: coercion 허용하지 않음
scope: where to look for things
- 함수 안에서 initialization of variable을 해주지 않는다면 밖에서 global variable을 찾거나 global variable을 만듦
undefined: 변수는 있으나 값이 없음
undeclared: 변수가 없음
함수도 변수에 할당될 수 있다
named function expression: there is name to the funciton that has been assigned
anonymous function expression: there is no name to the function that has been assigned
- named function이 이 함수가 무엇을 하는지 보여주기에 때문에 쓰는 걸 권장함
IIFE(Immediately Invoked Function Expressions): 함수를 만들자마자 바로 실행, 변수를 함수 안에서만 사용하고 싶을 때 사용
IIFE를 사용하기보다 let을 사용하면 block-scoped로 놔둘 수 있음
Closure: when a function "remembers" the varible outside of it, even if you pass that function elsewhere
- 나중에 그 함수를 실행할 때 그 변수를 기억함으로써 그것을 실행할 수 있게 해 줌
this: 현재 함수를 실행하고 있는 객체를 참조함
prototypes: 생성된 객체는 prototype을 참조한다 (init() 함수 느낌인 듯)
class: prototype의 발전된 버전 읽기가 다른 언어랑 비슷해서 더 쉬운 듯
'Web > JavaScript' 카테고리의 다른 글
리액트 공부 정리 (1) | 2023.01.25 |
---|---|
자바스크립트 공부 정리 (0) | 2023.01.22 |