undefined : 변수를 생성한 후 값을 할당하지 않은 경우null : 변수를 재설정하거나 정리하고 싶을 때 사용, 값이 없어야 한다는 명시NaN : 숫자가 아니라는 의미, 숫자가 아닌 값을 계산에 이용하면 NaN를 리턴
Body의 맨 아래 스크립트를 import하는 경우브라우저가 html을 로드하고 구문분석을 차례대로 마친 후에 스크립트를 로드하고 실행한다.이떄 로드하는 동안 아무 일도 하지 않으므로 비효율적이다.Head 부분에 스크립트를 넣을 경우head부분에 스크립트를 넣으면 ht
== 연산자두 값을 비교해서 값의 동등성을 비교 (거의 쓰이지 않음)=== 연산자값과 자료형이 일치하는지 확인 자바스크립트는 0, ''(빈문자열), null, undefined, NaN 를 false로 판단한다
다음과 같은 상황에서 age는 2번 출력된다. var 을 사용해 변수를 생성하면 마치 전역변수인 것 처럼 사용할 수 있기 때문에 코드가 길어지고 복잡해지면 예상치 못한 에러가 발생할 수 있다.
크롬의 v8, firefox의 스파이더몽키 처럼 브라우저는 각각 JS엔진을 가지고 있다. JS엔진에선 자바스크립트 구문분석, 실행의 역할을 하는데 크게 인터프리터와 컴파일러로 구성된다.인터프리터가 스크립트를 로드 후 컴파일러로 전달한다. 인터프리터가 스크립트를 실행하는
자바스크립트에는 2가지 타입이 있다. 원시타입 : number, string, undefined, boolean, Symbol참조타입 : Object
위 코드는 btn2가 클릭되면 btn1에 클릭 이벤트가 추가되는 로직이다. btn2를 여러번 눌러도 btn1에는 printMessage의 로직이 한 번만 추가된다.왜 그럴까?함수를 정의하면 브라우저의 힙 메모리 에 저장되어 하나만 존재하게 된다.
위 코드에서 name을 property, greet를 method라 칭한다.btn.addEventListener('click',person.greet)addEventListner처럼 객체에 저장되는 함수는 메서드라는 이름을 갖는다. 함수표현식함수는 객체이다.
docuemnt : 로드된 html를 사용하데에 있어 중요한 전역 객체브라우저가 노출시키는 루트 DOM 노드렌더링 된 모든 HTML에 접근하기 위한 최고점 엔트리 포인트
텍스트 노드와 요소 노드 item1 itme2 itme3 children 는 자식 노드중 요소 노드만 가져온다. childNodes는 자식 노드 모두를 가져온다. (텍스트 노드 포함)
새로운 요소 노드를 추가했지만 listItem에는 보이지 않는다.그 이유는 querySelecorAll()메서드는 DOM의 스냅샷에서 가져오기 때문이다. 이러한 이유로 배열을 업데이트하지 않는다.하지만 getElementByTagName()으로 가져온 배열은 최근에 추
유사객체는 객체가 아니다.length property를 가지고 있고, 인덱스와 인덱스로 접근할 item을 가지고 있다. ex) NodeList, String