반응형
자바스크립트란 무엇일까?
- 객체 기반의 스크립트 프로그래밍 언어
- ECMAScript 사양을 준수하는 범용 스크립트 언어
- 자바와 직접적인 연관은 없으며, 웹의 동적 동작을 구현하기 위해 제작
- Mocha에서 LiveScript 그리고 JavaScript로 명칭 변경
코드 동작 흐름
개발자는 코딩하여 스크립트를 만들고 컴파일러 혹은 인터프리터로 컴퓨터가 이해할 수 있는 언어로 바꿔 컴퓨터에 전달한다. 그 결과값을 개발자에게 보여주고 디버깅하는 순환 흐름을 가지고 있다.
기본 입출력
입출력은 사용자가 프로그램과 상호작용하기 위한 방법, Input/Output, I/O로 표기한다. 예를 들어 사용자가 키보드를 통한 입력하면 모니터를 통한 출력하는 것이 되겠다.
input.txt에는 'hello, world!'를 작성한 뒤에 아래처럼 자바스크립트를 작성하면 출력값으로 'hello, world!'가 출력되는 걸 확인할 수 있다.
const fs = require("fs"_;
const input = fs.readFileSync("./input.txt", "utf8");
console.log(input);
코드 구성
자바스크립트는 문법의 대부분을 C, C++, Java로부터 차용하여 제작된 스크립트 기반 언어이다. 다수의 표현식으로 하나의 명령문이 만들어지며, 명령문으로 프로그램이 수행된다. 하나의 명령문 끝에는 개행 문자 혹은 세미콜론으로 표시한다.
식별자
- 스크립트에 변수나 함수에 이름을 붙일 때 사용하는 단어
- 대소문자를 구별하며 유니코드 문자셋을 이용
- 자바스크립트 내 식별자 규칙
- 키워드(예약어) 사용 불가
- 숫자로 시작 불가
- 특수문자는 _ 와 $만 허용
- 공백 문자 포함 불가
변수
- 변경 가능한 값을 저장하기 위한 기억 공간, 메모리
- 사용하기 전 반드시 선언이 필요하다.
- 중복 선언이 불가능하다. 중복 선언 시 SyntaxError가 나타난다.
- 키워드 : let
상수
- 변경 불가능한 값을 저장하기 위한 기억 공간. 재할당 시 TypeError가 나타난다.
- 사용하기 전 반드시 선언과 초기화가 필요하다. 선언만 하면 SyntaxError가 나타난다.
- 중복 선언이 불가능하다. 중복 선언 시 SyntaxError가 나타난다.
- 키워드 : const
- 상수는 보통 대문자로 표기
호이스팅
- 코드에 선언된 변수 및 함수를 유효한 범위의 코드 상단으로 끌어 올리는 작업
- var의 변수/함수의 선언만 위로 올려지고, 할당은 올려지지 않음
- let/const 변수 선언과 함수 표현식에서는 호이스팅이 발생하지 않음.
공부하면서
자바스크립트에 대한 기초가 부족하다고 생각하여 강의를 수강하게 됐다. 기본 개념에 대해서 생각보다 몰랐다는 생각이 들었다. 단순하게 용도에 대해서만 고려했던 것 같다. 왜 let과 const가 생겼는지를 알게 되니까 쓰임새를 더 명확하게 알 수 있었던 시간이었다. 호이스팅은 let과 const도 발생하며 TDZ로 이동하여 에러가 발생된다고 알고 있는데 확인이 필요해 보인다.
반응형
댓글