본문 바로가기
모던 자바스크립트 deep dive

2022.07.10

by 치우치지않는 2022. 7. 11.

p1~49

결국 프로그래밍은 요구사항의 집합을 분석해서 적절한 자료구조와 함수의 집합으로 변환한 후, 그 흐름을 제어하는 것이다.

 

비동기 방식으로 데이터를 교환할 수 있는 통신 기능인 Ajax (Asynchronous JavaScript and XML) 의 등장 ->웹페이지에서 변경할 필요가 없는 부분은 다시 렌더링하지 않고, 서버로부터 필요한 데이터만 전송받아 변경해야 하는 부분만 한정적으로 렌더링 

 

자바 스크립트는 크로스 플랫폼을 위한 가장 중요한 언어이다. 웹 브라우저에서 동작하는 유일한 프로그래밍 언어이다. 개발자가 별도의 컴파일 작업을 수행하지 않는 인터프리터 언어. 인터프리터 언어는 컴파일러 언어에 비해 실행 속도가 비교적 느림.

 

자바 스크립트는 명령형, 함수형, 프로토타입 기반 객제지향 프로그래밍(클래스 기반보다 효율적이면서 강력)을 지원하는 멀티 패러다임 프로그래밍 언어임 

 

자바스크립트를 브라우저 이외의 환경에서 동작시킬 수 있는 실행 환경 = node.js 

npm 은 자바스크립트 패키지 매니저로 Node.js 에서 사용할 수 있는 모듈을 패키지화해서 모아둔 저장소 역할과 패키지 설치 및 관리를 위한 CLI 제공 

 

파싱 -> 표현식의 의미를 해석하는 것 (10+20)

 

메모리 셀 하나의 크기는 1바이트 (8비트) 메모리는 메모리 셀의 집합체로 데이터 저장 가능. 각 셀은 고유의 메모리 주소 가짐.

 

자바스크립트는 개발자의 직접적인 메모리 제어를 허용하지 않음. 치명적 오류를 발생시킬 가능성이 높은 매우 위험한 일이므로.

 

변수는 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름을 말한다. 간단히 말해 값의 위치를 가리키는 상징적인 이름 

 

메모리 공간에 저장된 값을 식별할 수 있는 고유한 이름 = 변수명, 변수에 저장된 값을 변수값 이라 한다. 

 

변수에 값을 저장하는 것을 할당 이라 하고 저장된 값을 읽어 들이는 것을 참조라 한다. 

 

변수 이름을 사용해 참조를 요청하면 자바스크립트 엔진은 변수 이름과 매핑된 메모리 주소를 통해 메모리 공간에 접근해서 저장된 값을 반환

 

식별자는 어떤 값을 구별해서 식별할 수 있는 고유한 이름을 말함. 값은 메모리에 저장되어 있음. 이를 위해 식별자는 어떤 값이 저장되어 있는 메모리 주소를 기억해야 함.즉 식별자는 값이 저장되어 있는 메모리 주소와 매핑 관계를 맺으며 이 매핑 정보도 메모리에 저장되어야 함. 즉 식별자는 값이 아니라 메모리 주소를 기억함. 

 

변수를 사용하려면 반드시 선언이 필요. 변수를 선언할 때는 var, let, const 키워드를 사용. 일반적으로 초기화란 변수가 선언된 이후 최초로 값을 할당하는 것을 말함. var 로 선언한 변수는 undefined 로 암묵적인 초기화가 진행됨. 초기화 진행하지 않으면 쓰레기값이 남아 있음

 

변수 선언은 소스코드가 한 줄씩 순차적으로 실행되는 시점, 즉 런타임이 아니라 그 이전 단계에서 먼저 실행됨. 즉 자바 스크립트 엔진은 변수 선언이 소스코드의 어디 있든 상관없이 다른 코드보다 먼저 실행됨. 이처럼 변수 선언문이 코드의 선두로 끌어 올려진 것처럼 동작하는 자바스크립트 고유의 특징을 변수 호이스팅이라 함. 

 

변수 선언은 소스코드가 순차적으로 실행되는 시점인 런타임 이전에 먼저 실행되지만 값의 할당은 소스코드가 순차적으로 실행되는 시점인 런타임에서 실행됨 

 

값을 재할당할 수 없어서 변수에 저장된 값을 변경할 수 없다면 변수가 아니라 상수라 한다. 

 

변수 이름은 변수의 존재 목적을 쉽게 이해할 수 있도록 의미를 명확히 표현해야 한다. 

 

일반적으로 변수 함수명에는 카멜 케이스를 생성자 함수, 클래스의 이름에는 파스칼 케이스를 사용한다. 

'모던 자바스크립트 deep dive' 카테고리의 다른 글

2022.08.31  (0) 2022.08.31
2022.07.21  (0) 2022.07.22
2022.07.14  (0) 2022.07.15
2022.07.12  (0) 2022.07.13

댓글