Language/JavaScript5 자바스크립트(JavaScript) 자바스크립트는 동적이고, 약타입의 프로그래밍 언어입니다. 또한, 작성된 코드를 기계어로 변환하지 않고, 한 줄 단위로 해석해서 직접 실행하는 인터프리트 언어입니다. 크롬, 사파리와 같은 웹 브라우저에 띄우는 웹페이지에서 실행되거나, Node.js나 Apache와 같이 브라우저가 아닌 환경에서도 실행됩니다. 동적 언어(Dynamic programming language) 형(Type)과 값(Value) 모두 런타임에 변경될 수 있는 언어를 동적 언어라 합니다. 예를 들어, 이전에 정수형이 할당된 변수가 문장졀로 재할당될 수 있습니다. 언어를 읽고, 해석하는 인터프리터가 값을 통해 자료의 형을 추정합니다. 즉, 어떠한 변수의 타입을 결정하는 타입 체크(Type Check)가 런타임으로 이루어지는 것입니다. .. Language/JavaScript 2023. 3. 12. 호이스팅(Hoisting) 호이스팅(hoisting)은 보통 '변수의 선언과 초기화를 분리하고, 선언만 코드의 최상단으로 올리는 것'으로 설명합니다. 그런데 JavaScript의 공식문서에 따르면 원래 JS의 호이스팅은 '인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당해두는 것'을 의미합니다. 그래서 변수가 아직 정의 되지도 않았는데 사용하는 코드가 있어도 문제 없이 실행 됩니다. var 키워드로 선언된 변수가 호이스팅에 의해 undefined로 초기화되어 참조가 가능한 것입니다. 호이스팅은 ES6 이전 기술 명세에는 따로 설명된 개념이 아니었습니다. ES6가 나오면서 var 키워드를 지양하고, const와 let 키워드를 사용하게 되었는데, 그러면서 JS의 달라진 동작 방식을 구분할 필요가 있었던 것이죠. var .. Language/JavaScript 2023. 3. 6. Node & Element (작성중) 노드 DOM을 구성하는 객체로, HTML 문서의 모든 것은 노드이다. 모든 노드는 서로 계층적 관계를 갖는다. 대표적인 노드의 종류 문서 노드(document node): HTML 문서 전체를 나타내는 노드 요소 노드(element node): 모든 HTML 요소는 요소 노드이고, 유일하게 속성 노드를 갖는다. 속성 노드(attribute node): 모든 HTML 요소의 속성은 속성 노드이고, 요소 노드에 대한 정보를 갖는다. 요소 노드의 자식 노드에는 포함되지 않는다. 텍스트 노드(text node): 텍스트를 갖는 노드이다. 주석 노드(comment node): 주석을 갖는 노드이다. 요소 (Elements/ 요소노드)` 노드의 일종 요소와 상호작용하는 특별한 프라퍼티나 메서드를 포함함 자바스크립트.. Language/JavaScript 2023. 2. 15. 전역 객체 Window & Document (작성중) 자바스크립트 = 호스트된 언어 브라우저가 자바스크립트 엔진을 제공해서 실행 환경을 제공함. 즉, 자바스크립트 파일을 분석하고 실행하게 해줌 브라우저는 Web API를 통해서 자바스크립트가 파싱된 문서와 상호작용할 수 있도록 함 전역 객체 document & window document Root DOM Node window: 브라우저 최상위 전역 객체 활성화된 브라우저 창이나 탭 전역 엔트리 포인트/ 저장소 브라우저가 제공하는 모든 기능에 접근 가능 Language/JavaScript 2023. 2. 15. Falsy / Truthy 다음 세 조건문은 동작할까요? // 1 if ('') {...} // 2 if (' ') {...} // 3 if ('anything') {...} 1번은 동작하지 않고, 2, 3번은 동작합니다. 왜 그럴까요? JavaScript가 빈 문자열 ''은 false로, 공백이 포함된 문자열 ' '과 문자열 'anything'을 true로 판별하였기 때문입니다. JavaScript에는 Falsy(거짓 같은 값)와 Truthy(참 같은 값)라는 문법 개념이 있습니다. Falsy와 Truthy는 JavaScript가 특정 값의 참/거짓을 판단할 때, 주어진 값이 Boolean 자료형이 아니거나, Boolean 비교가 불가능한 경우 true 또는 false로 변환되는 값을 뜻합니다. True 가 아닌데 JavaScr.. Language/JavaScript 2023. 1. 2. 이전 1 다음