Position
은 2차원과 3차원을 결정짓는 요소이다.
1차원은 선, 2차원은 평면, 3차원은 공간인데 CSS에는 부모-자식 간에 발생하는 마진 병합 현상유무가 2차원에 존재하고 3차원에는 존재하지 않는다.
top, left, right, bottom을 3차원 영역에서 존재하고 2차원 영역에서 자식의 높이 값이 부모의 높이 값에 영향을 준다.
기본적으로 position의 속성에는 static / relative / absolute / fixed / sticky 가 있다.
대부분의 경우 this 값은 함수를 호출한 방법에 의해 결정된다. 실행중에는 할당으로 설정할 수 없고 함수를 호출할 때마다 다를 수 있다.
화살표 함수에는 this의 바인딩이 제공되지 않는다.
const test = {
prop: 42,
func: function() {
return this.prop;
},
};
console.log(test.func());
// 42 출력
실행 컨텍스트의 프로퍼티는 비엄격 모드에서 항상 객체를 참조하며 엄격모드에서는 어떠한 값이든 될 수 있다.
// 웹 브라우저에서는 window 객체가 전역 객체
console.log(this === window); // true
a = 37;
console.log(window.a); // 37
this.b = "MDN";
console.log(window.b); // MDN
console.log(b); // MDN
비엄격 모드에서는 this 값이 호출에 의해 설정되지 않으므로 기본값으로 브라우저에서 window인 전역 객체를 참조한다.
function f1() {
return this;
}
// 브라우저
f1() === window; // true
// node.js
f1() === global; // true
엄격 모드에서 this 값은 실행 문맥에 진입하며 설정되는 값을 유지하므로 this는 undefined로 남아있다.
function f2() {
"use strict" // 엄격 모드
return this;
}
f2() === undefined; // true