모던 자바스크립트 1~6

해적왕·2023년 9월 19일
post-thumbnail

2회독 시작

1장 프로그래밍

컴퓨터에게 실행을 요구하는 일종의 커뮤니케이션

1-1 언어

프로그래밍 언어는 구문과 의미의 조합으로 표현

2장 자바스크립트

2-1 표준화

크로스 브라우징 이슈로 표준화된 자바스크립트 필요성 대두
1996년, 비영리 표준화 기구인 ECMA 인터내셔널에 자바스크립트 표준화 요청
1997년, 표준화된 자바스크립트 초판 사양 완성 / 상표권 문제로 ECMAScript로 명명

크로스 브라우징 이슈
브라우저에 따라 웹페이지가 정상적으로 동작하지 않는 것

2-2 성장 & 역사

초창기에는 서버로부터 전달받은 HTML, CSS 단순히 렌더링하는 수준

렌더링
HTML, CSS , 자바스크립트로 작성된 문서를 해석해서 브라우저에 시각적으로 출력하는 것

- Ajax (XMLHttpRequest)

1999년, 자바스크립트 이용해 서버와 브라우저가 비동기 방식으로 데이터를 교환할 수 있는 통신 기능

- JQuery

2006년, DOM을 더욱 쉽게 제어할 수 있게 되었고 크로스 브라우징 이슈도 어느정도 해결

DOM
문서 객체 모델(DOM, Document Object Model)
XML이나 HTML 문서에 접근하기 위한 일종의 인터페이스

- Node.js

2009년, 구글 V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임 환경
서버 사이드 애플리케이션 개발에 주로 사용

- SPA 프레임워크

SPA를 작성하기위한 프레임워크 등장

2-3 특징

º 웹 브라우저에서 동작하는 유일한 프로그래밍 언어
º 인터프리터 언어
º 프로토타입 기반의 객체지향 언어

객체지향
객체라는 작은 단위로서 모든 처리를 기술하는 프로그래밍 언어

3장 자바스크립트 개발 환경

모든 브라우저는 자바스크립트를 해석하고 실행할 수 있는 자바스크립트 엔진을 내장

4장 변수

4-1 변수란?

하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름

4-2 식별자

변수 이름을 식별자라고도 부름
식별자는 값이 아닌 메모리 주소를 기억

4-3 선언 실행 시점

자바스크립트 엔진은 변수 선언이 어디에 있든 다른 코드보다 먼저 실행

호이스팅
변수 선언문이 코드의 선두로 끌어 올려진 것처럼 동작하는 자바스크립트 고유의 특징

4-4 값의 할당

var score = 80; // 변수 선언과 값의 할당 
score = 90; // 값의 재할당


var 키워드로 선언한 변수는 값을 재할당 가능
이전 값이 메모리에서 지워지는 것 x
새로운 메모리 공간 확보하고 그 메모리 공간에 90 할당

4-5 식별자 네이밍 규칙

특수 문자 제외 문자, 숫자, 언더스코어(_), 달러 기호($) 포함

var firstNAme // 카멜 케이스
var first_name // 스네이크 케이스
var FirstName // 파스칼 케이스

5장 표현식과 문

5-1 값

식(표현식)이 평가 되어 생성된 결과

var sum 10 + 20; 
// 변수에는 10+20이 평가되어 생성된 숫자 값 30이 할당

5-2 리터럴

사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법

5-3 표현식

값으로 평가될 수 있는 문

5-4 문

프로그램을 구성하는 기본 단위이자 최소 실행 단위
문은 여러 토큰으로 구성

토큰
문법적인 의미를 가지며 문법적으로 더 이상 나눌 수 없는 코드의 기본 요소

5-5 세미콜론

세미콜론은 문의 종료를 나타냄
즉, js엔진은 세미콜론으로 문의 종료된 위치 파악, 세미콜론 자동 삽입 기능 o
if문, for문, 함수 등의 코드 블록 뒤에는 세미콜론 옵션
(자체 종결성)

6장 데이터 타입

자바스크립트의 모든 값은 데이터 타입 ( 원시타입 / 객체타입 )

2020년부터 새로운 원시 값 BigInt 추가

BigInt
Number 원시 값이 안정적으로 나타낼 수 있는 최대치인 2^53 - 1보다 큰 정수를 표현할 수 있는 내장 객체

6-1 숫자 타입

숫자 타입의 값은 배정밀도 64비트 부동소수점 형식
자바스크립트는 모든 수를 실수로 처리

var integer = 10; // 정수
var double = 10.12 // 실수
var negative = -20 // 음의 정수

6-2 문자열 타입

문자열 타입은 변경 불가능한 값
자바스크립트 일반적 표기법은 작은 따옴표

string = '문자열'; // 작은 따옴표
string = "문자열"; // 큰 따옴표
string = `문자열`; // 백틱(ES6)

6-3 템플릿 리터럴

모든 공백 그대로 적용

var template = `Template literal`;

6-4 불리언 타입

불리언 타입의 값은 논리적 참, 거짓을 나타내는 true와 false

6-5 undefined

undefined가 타입의 값은 undefined가 유일
자바스크립트 엔진이 변수를 초기화 할 때 사용하는 값
변수를 참조했을 때 undefined가 반환된다면 참조한 변수가 선언 이후 값이 할당된 적이 없는, 즉 초기화되지 않은 변수라는 것 간파 가능

6-6 null

null 타입의 값은 null이 유일
변수에 값이 없다는 것을 의도적으로 명시할 때 사용

6-7 심벌

심벌 타입은 변경 불가능한 원시 타입의 값
다른 값과 중복되지 않는 유일무이한 값

// 심벌 값 생성
var key = Symbol('key');
console.log(typeof key) //symbol

//객체 생성 
var obj = {};

//이름이 충돌될 위험이 없은 유일무이한 값인 심벌을 플퍼티 키로 사용 
obj[key] = 'value';

6-8 객체 타입

6가지 데이터 타입 이외의 모든 값은 모두 객체 타입
자바스크립트를 이루고 있는 거의 모든 것이 객체

6-9 데이터 타입의 필요성

º 값을 저장할 때 확보해야 하는 메모리 공간의 크기를 결정하기 위해
º 값을 참조할 때 한 번에 읽어 들여야 할 메모리 공간의 크기를 결정하기 위해
º 메모리에서 읽어 들인 2진수를 어떻게 해석할지 결정하기 위해

0개의 댓글