<지난 수업 추가 내용 & 외우면 좋을 것들>
객체를 변경하는 코드(delete 연산자, Object.key = value ...)가 console.log()보다 우선적으로 실행되는 상황 : 객체 로딩 시에 객체의 내용 변경사항이 실시간으로 업데이트 되기 때문!
-> 객체의 상태를 줄마다 확인하기 위해서는 JSON을 사용하여 parsing하는 방법을 사용해야 한다!! (JSON.stringify(Object); JSON.parse(Object); // JSON을 사용하면 객체를 문자열로 변환한 뒤에 다시 Object로 변환하도록 parsing 해줘야 함.)
인스턴스 : 생성된 객체
document.querySelector()의 매개변수 종류 : class일 경우에는 ".class", id일 경우에는 "#id"
바인딩 : 구체적인 값을 할당하는 각각의 과정.
코딩 기본 규칙 : 변수 명명에 있어서 필수적인 규칙이 몇가지 있다. 꼭 지키는 걸로 하자.
(출처 : 링크텍스트 )
html에 event 넣기 : element.addEventListener("event", callBackFunc);
toggle 사용법 : element.classList.toggle("className");
필기 내용
<this 키워드>
객체는 자신이 속한 Property를 접근할때 객체 자신을 가리킬 것이 필요함. -> this는 해당 객체를 나타냄.
임의로 생성자 함수를 선언할 때 this를 사용하게 되면 아무것도 가리키지 못하지만 new를 사용하여 생성자 함수를 변수에 넣어 구현할 때 this는 해당 인스턴스를 가리키게 된다.
일반함수에서 호출하는 this : 전역 객체인 Window를 가리키게 된다.
Object 내부의 메소드는 functionName(){} 이런 식으로 function을 생략하여 만들 수 있다.
Object의 메소드를 또다른 변수에 할당하려 하면 this가 가리킬 Object가 사라지므로 Window를 가리키게 된다.
this가 전역 객체를 가리킬때, var로 선언한 값들은 모두 할당이 되어 들어간다. 이때, 미리 할당되어버린 변수가 의도하지 않게 할당될 경우가 있으므로 let을 사용하도록 하자.
<스코프>
식별자 접근 규칙에 따른 유효 범위! -> 전역(gobal), 지역(local) 변수의 차이와 같음.
for나 if는 지역 스코프가 생성되지 않음. -> let을 사용해야 중복 선언을 피할 수 있음,
렉시컬(정적) 스코프 : 함수를 어디서 정의했는지에 따라 상위 스코프를 결정 -> 대부분의 언어에서 사용하는 스코프
렉시컬(lexical)이란? : '어휘적'이라는 사전적 의미를 가지고 있으며, 코드의 문맥을 보고 판단한다는 의미를 가지고 있다. (코드가 읽히는 순서를 보고 코드의 문맥을 보고 판단한다는 것 같다.)
여담
오늘은 오후에 일정이 있어 짧게 수업이 끝났다.
스코프라는 단어를 처음 들었을 때 겁먹었는데 알고보니 보통의 코딩 방식을 설명한 것이라 금방 이해가 갔다. 별거 아닌 것 같지만 JS의 특성상 var같은 불완전한 친구들 때문에 따로 정의하고 설명해준 것 같다. 맘에 디게 안드네