아래와 같은 문법들이 추가되었다.
- 변수선언
- 템플릿 리터럴
- 화살표 함수
- this
- 모듈
- 클래스
let과 const 키워드를 사용하는 것을 권장한다!
${value}
를 사용하여 백틱 내부에 문자열과 함께 표현식을 넣을 수 있다.// 기본 함수 선언식
let sum = function(a, b) {
return a + b;
};
// 화살표 함수 형식
let sum = (a, b) => a + b;
this
는 자신을 둘러싸고 있는 this
를 바라보기 때문에 따로 바인딩이나 변수에 담을 필요 없다.this
는 인스턴스를 가리킨다.import / export
로 모듈을 관리할 수 있다.named export : 한 파일에서 여러개를 export, 중괄호({}) 이용
// named export 기본 형식
export { 모듈명1, 모듈명2 };
import { 모듈명1, 모듈명2 } from 'js 파일 경로';
default export : 한 파일에서 단 한개의 변수/클래스 등을 export
// default export 기본 형식
export default 모듈명;
import 모듈명 from 'js 파일 경로';
class Add {
constructor(v1, v2) {
this.v1 = v1;
this.v2 = v2;
}
calc() {
return this.v1 + this.v2;
}
}
const number = new Add(2, 3);
console.log(number.calc()); //5
BOM(Browser Object Model) | DOM(Document Object Model) |
---|---|
웹 브라우저와 관련된 객체를 다루는 모델 | HTML 문서의 요소들을 다루는 모델 |
window 객체를 중심으로 다양한 객체 포함 ex) navigator, location, history, screen .. | documenet 객체를 중심으로 HTML 문서의 요소와 관련된 객체들을 포함 ex) element, attribute, text … |
브라우저 창 조작, 페이지 이동, 쿠키 설정 등 브라우저와의 상호작용 | HTML 문서의 요소를 조작하고 변경 ⇒ 웹페이지와의 상호작용 |
브라우저마다 구현이 다를 수 있음 | 대부분 브라우저에서 동일하게 동작 |
쿠키 | 캐시 |
---|---|
클라이언트(브라우저)에 저장되는 작은 데이터 조각, 정보를 저장하기 위해 사용(사용자에게 맡겨도 되는 정보만 저장) | 웹페이지, 이미지, 동영상, 스크립트 등의 리소스를 저장하는 임시 저장소 |
서버→클라이언트로 전송되어 브라우저에 저장된 후 같은 서버에 다시 요청할때마다 클라이언트→서버로 전송 | 웹페이지 요청시 브라우저는 해당 페이지의 리소스를 서버에서 다운로드하여 캐시에 저장 => 같은 페이지 다시 접근하면 캐시된 리소스를 통해 서버에 다시 요청하지 않을 수 있음(빠른 페이지 로드) |
사용자 인증, 세션 관리, 개인화 등을 위해 사용됨 | 웹페이지 로딩 속도 향상, 네트워크 트래픽 감소하는데 도움을 줌 |
유효 기간을 설정할 수 있어 일정 기간동안 유지 | 일정 시간이 지나면 자동으로 만료되어 새로운 버전의 리소스를 가져옴 |
클라이언트에서 수정이 가능하며, js를 사용하여 조작할 수 있다. | 클라이언트에서는 캐시의 내용을 직접 수정할 수 없다. |