
== 값이 같다
=== 같은 타입이다
ex)
console.log(0 == false); 0(empty string)은 false값이므로 true
console.log(0 === false); 0은 number type, false는 boolen type이므로 false
empty string: 0, null, undefined, NaN, ' '
premitive parameters: passed by value 메모리에 벨류가 그대로 저장되어 전달이 되고
object parameters: passed by reference 메모리에 레퍼런스가 저장이되어 전달됨
${message} by ${from});function printAll(...args) 배열형태로 전달되게 됨
(for _of, forEach를 사용하여 배열을 나타낼 수 있음)
밖에서는 안이 안보이고 안에서만 밖이 보인다.
{ } 블록 scope = 지역 변수
그 밖 = 글로벌 scope
클로저: 중첩된 함수에서 자식 함수가 부모의 함수에 정의된 변수들에 접근이 가능한것
함수에서는 파라미터의 값을 전달 받아서 계산된 값을 리턴받을 수 있음
Early Return: 조건이 맞지 않는 경우, 값이 undefined인 경우, 값이 -1인 경우 빨리 리턴하고 필요한 로직들은 그 뒤에 작성
→ 한 줄 사용이 가능하지만, 블록 scope 사용해야 할 경우엔 return 넣어주기
→ (function ~ {})(); JS에서 함수를 바로 실행하고 싶을때 사용
class: template
object: instance of a class
get을 이용하여 값을 리턴, set을 이용하여 값을 설정(value을 받아와야함)
getter와 setter에서 쓰이는 이름은 다르게 만들어주기
publicField
privateFiele :#
class자체에 붙어있음
object에 상관없이 공통적으로 class에서 사용할 수 있는것이라면 사용
공통적으로 쓰이는 속성 값을 재사용
유지보수가 쉽고 에러가 났을때 고치기 쉬움
extends
ex)
class Shape
class Rectangle extends Shape
ex)
console.log(rectangle instanceof Rectangle);
왼쪽에 있는 object가 오른쪽에 있는 class의 instance인지 아닌지
즉, object가 class를 이용해서 만들어진 것인지 아닌지 확인하는것