ECMA
자바스크립트의 표준이다.
Symbol
기본형데이터중 하나이다. 심볼은 코드내에서 유일한 값을 가진 변수 이름을 만들때 사용한다.
const user = Symbol("this is a user");
BigInt
더 큰 숫자를 사용 할 수 있다.
console.log(9007199254740993n);
console.log(BigInt("9007199254740993"));
truthy vs falsy
빈배열 빈객체는 truthy 값이다.
falsy: false,null,undefined,0,Nan,""
and 연산자가 or 연산자보다 우선순위가 높다.
변수와 스코프
var변수의 함수 스코프는 전역변수 단위이다. 지역변수로 쪼개서 사용 할수 없다.var변수는 재선언되고, 업데이트 될 수 있다.그리고 호이스팅된다.(호이스팅이란 변수 선언부가 맨 위로 올라가는 것을 말한다.)
let 과 cosnt 변수는 블록 스코프이며 블록 단위로 쪼개서 사용 할 수 있다.
함수를 만드는 방법
함수 선언식 function 키워드를 사용하는 방법은 호이스팅(hoisting)이라는 매커니즘을 따른다.이는 함수 선언이 스코프 내의 최상단으로 끌어 오르는 것을 말한다.따라서 함수를 선언하기 전에 호출할 수 있다.
고차함수
함수를 리턴하는 함수는 고차함수라고 부른다.
자바스크립트는 일급 함수를 가진 프로그래밍 언어이다.
파라미터와 아규먼트
아규먼트:파라미터에 전달하는 값
파라미터에 기본값을 설정 할 수 있다.
function myGreeting(name = "codeit", interest) {
console.log(`my name is ${name}`);
console.log(`I Like ${interest}`);
}
arguments 키워드
아규먼트의 값들을 모두 불러온다.
function printArguments(a, b, c) {
for (const arg of arguments) {
console.log(arg);
}
}
restParameter
배열이 아니다. 배열 함수를 사용 할수없다. 접근은 가능
function restArguments(a, b, ...c) {
console.log("---------------------------------");
for (const iterator of c) {
console.log(iterator);
}
}
this 익히기
함수안에서 this는 조금 다른 값을 가진다. 바로 메소드를 호출한 객체를 가르킨다.#### 화살표 함수는 윈도우 객체를 품는다. arrow function에서 this는 일반함수와 다르게 함수를 호출 될때 호출한 객체를 가르키지 않는다.윈도우 객체를 가르킨다.
표현식인 문장 VS 표현식이 아닌 문장
표현식:하나의 값을 의미한다.
표현식인 문장: 함수 호출 , 변수할당 등
표현식이 아닌 문장:for문 while문 if문 등