- 프로그래밍이란 특정 목적을 위해 설계된 알고리즘을 프로그래밍 언어를 통해 구체적인 프로그램으로 작성하는 과정이다.
- 컴파일러: 특정 프로그래밍 언어를 다른 프로그래밍 언어로 옮기는 언어 번역 프로그램을 말한다.
- 인터프리터: 프로그래밍 언어의 소스 코드를 바로 실행하는 컴퓨터 프로그램 또는 환경을 말한다.
- 즉 컴파일러는 한번에 모든 내용을 번역, 인터프리터는 한줄씩 차근차근 번역한다는 차이점이 있다. 이로인해 속도, 실시간 디버깅 가능 여부 등의 차이가 발생한다.
- 동적이며 타입을 명시할 필요가 없는 인터프리터 언어
- 객체지향, 함수형 프로그래밍을 모두 표현할 수 있다.
- HTML의 내용, 속성, 스타일을 변경할 수 있다.
- 이벤트를 처리하고 사용자와의 상호작용을 가능하게 한다.
- 서버와 실시간 통신 기능을 제공한다.
- 데이터를 저장할 수 있는 프로그램에 의해 이름을 할당받은 메모리 공간이다.
- 어떤 대상을 유일하게 식별할 수 있는 이름을 말한다.
- 변수를 사용하겠다고 이름을 지어주고 데이터를 저장할 수 있는 메모리 공간을 사용하겠다고 컴퓨터에게 미리 말해놓는 행위.
- 자바스크립트에서 변수를 선언하는 방법중 하나이다.
- 전역변수 선언 방법이며 함수레벨 스코프에서 작동한다.
- 자바스크립트에서 변수나 함수를 선언했을때 변수 선언과 함수 선언이 스코프 내의 최상단에 위치되는 현상이다.
- 변수 선언이 호이스팅으로 최상단으로 올라갈때 var를 사용하게되면 초기화도 동시에 이루어지기 때문에 참조가 가능하며 오류가 발생하지 않고 Undefined 라는 값을 가지게 된다.
- let을 사용하게되면 var를 사용했을 때와 달리 오류가 발생하고 좀더 쉽게 오류를 찾아낼 수 있다.
- temporal dead zone, var나 let으로 변수를 선언했을 때 호이스팅된 위치와 선언 위치 사이에 존재하는 코드 영역을 뜻한다. let으로 선언하게되면 TDZ에서 let으로 선언한 값을 참조하게되면 오류가 발생하는것에 반해 var로 선언한 변수는 Undefined라고 표시된다.
- const로 선언된 변수는 상수의 역할을 해서 이후에 변경할 수 없게된다.
- 첫 글자는 숫자로 시작할 수 없다.
- 예약어 키워드를 식별자로 사용할 수 없다.
- 함수나 변수 이름의 경우 첫 단어는 소문자로 시작하고 그 후의 각 단어는 첫글자가 대문자인 형태이다.
- 클래스 이름의 경우 각 단어의 첫글자도 대문자를 사용한다.
- 상수의 경우 모든 글자는 대문자이며 단어 사이는 밑줄로 구분된다.
- 소스 코드의 고정된 값을 나타내는 표기법이다.
- 고정된 데이터값이고 입력의 경우 리터럴이 아니다.