Number(null) = 0Number(undefined) = NaN할당 연산자를 중간에 쓸 수 있음할당 연산자에 값이 있음체이닝 가능모든 표현식이 사용된다.마지막 표현식의 결과만 값이 반환(?)된다.해답서로 다른 형을 비교할 때 자바스크립트는 숫자형으로 바꿔서 비교
꼬리를 물면서 계속 범위를 밖으로 넓혀나가며 변수를 찾는 관계범위를 지정하는 과정에서 변수가 소스코드 내에 어디에서 선언되었는지를 고려한다는 의미처음 코드를 실행할 때 모든 것을 포함하는 전역 컨텍스트가 생긴다.함수를 호출할 때마다 함수 컨텍스트가 생긴다.context
{...}를 사용해서 객체를 선언하는 것을 객체 리터럴 이라고 한다.delete 연산자를 사용하면 프로퍼티를 삭제할 수 있다.여러 단어를 조합해 프로퍼티를 만든 경우에는 따옴표로 묶어줘야한다.끝에 쉼표를 붙이면 모든 프로퍼티가 유사한 형태를 보이므로 프로퍼티의 연산이
자바스크립트에서 원시값을 객체처럼 다룰 수 있게 한다.원시값을 원시값 그대로 둔다.원시값의 메서드와 프로퍼티에 접근할 수 있도록 언어차원에서 허용한다.원시값이 메서드나 프로퍼티에 접근하려 하면 추가 기능을 제공해주는 특수한 객체를 만들어 사용하고 이후에 삭제한다.예를들
함수 내부에 중첩 호출이 있을 때는 다음과 같은 절차가 수행된다.현재 함수의 실행이 일시중지된다.중지된 함수의 실행 컨텍스트는 실행 컨텍스트 스택에 저장이 된다.중첩 호출이 실행된다.중첩 호출이 끝난 이후 실행 컨텍스트 스택에서 중단된 함수의 실행컨텍스트를 꺼내와서 실
객체에는 프로퍼티가 저장되는데 사실 값을 제외하고 특별한 세가지 속성이 저장된다.writableenumeralbeconfigurablewritable 값이 false이면 프로퍼티에 값을 쓰지 못한다.enumerable이 false이면 열거가 불가능하다. 이것이 true
자바스크립트 객체는 \*\*\[\[prototype]]\*\*이라는 숨김 프로퍼티를 갖는다. 이 값은 null이거나 다른 객체를 참조하는데, 다른 객체를 참조하는 경우 참조 대상을 \*\*프로토타입\*\*이라 부른다.객체에서 프로퍼티를 읽으려고 하는데 해당 프로퍼티가
클래스는 constructor와 메소드가 들어간다. new 연산자를 사용해서 객체를 생성하면 constructor가 자동으로 호출되고 메소드는 prototype에 들어간다.정확히 말하면 밑의 예제에서 class 문법이 하는 일은 다음과 같다.MyClass라는 이름을 가
프로미스는 아래와 같은 문법으로 만든다.new Promise에 전달되는 함수를 executer라고 부른다.executor는 resolve와 reject인수를 가지고 있다.executor는 인수로 넘겨준 콜백 중 하나를 반드시 호출해야한다.resolve(value) —
제너레이터는 하나의 값만을 반환하는 함수와 다르게 여러개의 값을 필요에 따라 하나씩 반환할 수 있다.제너레이터 함수를 만드려면 특별한 문법 구조, function\*이 필요하다.제너레이터는 일반 함수와 다르게 코드가 실행되지 않고 실행을 처리하는 특별한 객체가 반환된다
어플리케이션의 크기가 커져 파일을 분리했을 때 분리된 각각의 파일을 모듈이라고 부른다.모듈은 대개 클래스 하나 또는 같은 목적을 가진 여러개의 함수로 구성된다.스크립트의 크기가 점차 커지자 자바스크립트 커뮤니티는 다음과 같은 모듈을 만들었다.AMD – 가장 오래된 모듈