함수 매개변수에 기본값을 설정할 때
함수를 호출할 때 인수를 전달하지 않으면 매개변수에는 undefined가 할당된다.
이때 단축 평가를 사용해 매개변수의 기본값을 설정하면 undefined로 인해 발생할 수 있는 에러를 방지할 수 있다.
자바스크립트를 구성하는 거의 모든 것이 객체.
객체는 0개 이상의 프로퍼티로 구성된 집합, 프로퍼티는 키(key)와 값(value)으로 구성된다.
프로퍼티 : 객체의 상태를 나타내는 값(data)
메서드 : 프로퍼티(상태 데이터)를 참조하고 조작할 수 있는 동작
객체를 생성하기 위한 표기법이다.
인스턴스란?
클래스에 의해 생성되어 메모리에 저장된 실체를 말한다.
클래스는 인스턴스를 생성하기 위한 템플릿의 역할을 한다. 인스턴스는 객체가 메모리에 저장되어 실제로 존재하는 것에 초점을 맞춘 용어다.
객체는 프로퍼티의 집합이며, 키와 값으로 구성된다.
ver person = { ... }
프로퍼티 값이 함수일 경우 일반 함수와 구분하기 위해 메서드(method)라 부른다.
즉, 메서드는 객체에 묶여 있는 함수를 의미한다.
var func = {
width : 5 // ⬅️ 프로퍼티
getWidth : function() { // ⬅️ 메서드
return 2* this.width; // this는 func를 가리킨다.
}
func.getWidth() // 10
접근하는 방법은 두 가지
person.name; // 점 표기법
person['name']; // 대괄호 표기법
원시타입과 객체타입은 크게 세 가지 측면에서 다르다.
원시 값을 할당한 변수에 새로운 원시 값을 재할당하면 메모리 공간에 저장되어 있는 재할당 이전의 원시 값을 변경하는 것이 아니라 새로운 메모리 공간을 확보하고 재할당한 원시 값을 저장한 후, 변수는 새롭게 재할당한 원시 값을 가리킨다. 이때 변수가 참조하던 메모리 공간의 주소가 바뀐다.
변수가 참조하던 메모리 공간의 주소가 변경된 이유는 변수에 할당된 원시 값이 변경 불가능한 값이기 때문이다.