프로퍼티 플래그 객체 프로퍼티는 값(value)과 함께 플래그(flag)라 불리는 특별한 속성 세 가지를 가지고 있다. No 속성 기준 값이 "true"인 경우 값이 "false"인 경우 1 writable 값(value) 수정 가능 읽기만 가능 2 enumerable 반복문을 사용해서 나열 가능 불가능 3 configurable 프로퍼티 삭제나 플래그 수정 가능 불가능 "평범한 방식"으로 프로퍼티를 만들면 프로퍼티의 플래그는 모두 "true"가 된다. writable 플래그 "평벙한 방식"으로 값을 변경하지 못하게 할 때 writable의 값을 "false"로 한다. [예제] "평범한 방식"은 값을 변경하지 못한다. let user = { name : 'mill' }; Object.definePrope..
# mouseenter vs mouseover [공통점] 해당 영역에 마우스가 올라가는 것을 감지 [mouseenter] 자식 영역에 들어가면 감지하지 않는다. [mouseover] 해당 영역의 자식영역까지 들어가도 감지된다. mouseenter 이벤트를 사용해 선택 영역에서만 사운드가 들린다. mouseover 이벤트를 사용함으로써 자식까지 선택 영역에 포함돼 사운드가 겹쳐지고 있다. # mouseout vs mouseleave [공통점] 해당 영역에 마우스가 올라가 있는 상태에서 벗어난 것을 감지 [mouseleave] 자식 영역에 들어가 요소를 빠져나가도 감지하지 않는다. [mouseout] 요소 안에 다른 요소를 빠져나가도 감지하게 된다. # hover hover는 mouseover와 mouseo..
var list = {0: 'a', 1: 'b', 2: 'c', length: 3 }; // 유사배열객체 console.log(slice.call(list,1)); // Array.prototype.slice는 아래와 같은 형태의 함수를 가진다고 한다. function slice($start, $end) { var i, j, result; result = []; j = $end === undefined ? this.length : $end; for (i = $start; i < j; i++) { result[result.length] = this[i]; } return result; } 배열 메서드인 Array.prototype.slice()는 유사배열객체는 사용할 수 없다. 하지만 call()의 thi..