서적/모던 자바스크립트 Deep Dive 5

[9장 타입 변환과 단축 평가] 명시적/암시적 타입 변환

🍰 타입 변환: 값의 타입을 변환하는 것.개발자가 의도적으로 타입 변환 - 명시적 타입 변환(explicit coercion)자바스크립트 엔진이 표현식 평가 시 코드 문맥을 고려해 암묵적으로 타입 강제 변환 - 암묵적 타입 변환(implicit coercion)// 명시적 변환let str = "123";console.log(Number(str)); // 123(숫자)console.log(typeof str); // string// 암시적 변환let x = 10;let value = x + "문자열";console.log(value); // 10문자열console.log(typeof value); // string두 방식 모두 기존 원시 값을 직접 변경하는 것은 아님원시 값은 변경 불가능한 값(immu..

[06장 데이터 타입] 템플릿 리터럴

🍰 template literal: ES6에 도입된 새로운 문자열 표기법. 편리한 문자열 처리 기능 제공. 런타임에 일반 문자열로 변환되어 처리됨.멀티라인 문자열(multi-line string)표현식 삽입(expression interpolation)태그드 템플릿(tagged template)🍴 멀티라인 문자열: 여러 줄에 걸친 문자열 쉽게 작성 가능. 기존 방식에서는 백슬래시(\) 사용함.// 기존 방식var str = "이것은 첫 번째 줄\n" + "이것은 두 번째 줄";// 템플릿 리터럴let str = `이것은 첫 번째 줄이것은 두 번째 줄`;🍴 표현식 삽입: 변수나 표현식을 문자열 안에 간편하게 삽입let name = 'Alice';let age = 25;// 기존 방식l..

[05장 표현식과 문] 세미콜론

🍰 세미콜론: 문의 종료 나타냄자바스크립트 엔진은 세미콜론(;)으로 문의 종료 위치 파악하고 순차적으로 문을 실행함단, 중괄호({})로 묶은 코드 블록 뒤에는 붙이지 않음 => 코드 블록은 자체 종결성(self closing) 가짐 🍴 세미콜론 자동 삽입 기능(ASI - automatic semicolon insertion)문의 끝에 붙이는 세미콜론은 옵션임자바스크립트 엔진이 소스코드 해석 시 문 끝이라고 예측되는 지점에 세미콜론 자동으로 붙여주는 기능이 수행되기 때문붙이는 걸 권장

[04장 변수] 식별자 네이밍 규칙

🍰 식별자(identifier): 어떤 값을 구별해서 식별해낼 수 있는 고유한 이름특수문자 제외한 문자, 숫자, 언더스코어(_), 달러 기호($) 포함 가능특수 문자 제외한 문자, 언더스코어, 달러 기호로 시작해야 함. 숫자로 시작 X예약어는 식별자로 사용할 수 없음예약어(reserved word)에는 뭐가 있을까? =>https://www.w3schools.com/js/js_reserved.asp🍴 네이밍 컨벤션(naming convention): 하나 이상의 영어 단어로 구성된 식별자 만들 때 가독성 좋게 단어를 한 눈에 구분하기 위해 규정한 명명 규칙일관성만 유지하면 어떤 네이밍 컨벤션 사용해도 좋음일반적으로 변수, 함수 => 카멜 케이스생성자 함수, 클래스 => 파스칼 케이스객체, 함수 => ..

[04장 변수] 변수 호이스팅(variable hoisting), var

🍰 변수 호이스팅: 변수 선언문이 코드의 선두로 끌어 올려진 것처럼 동작하는 JS 고유의 특징이로 인해 변수 선언 위치와 관계없이 변수를 참조할 수 있게 됨자바스크립트 코드는 인터프리터에 의해 한 줄씩 순차적으로 실행됨=> console.log(value);가 실행되는 시점에는 아직 value 변수의 선언이 실행되지 않았음참조 에러가 발생하지 않고 undefined가 출력됨=> 변수 선언은 소스코드가 한 줄씩 순차적으로 실행되는 시점인 런타임이 아니라 그 이전 단계에서 먼저 실행되기 때문소스코드 실행 전에 먼저 소스코드의 평가 과정을 거침🍴 평가 과정: 자바스크립트 엔진이 변수 선언 포함한 모든 선언문(변수, 함수 선언문 등)을 소스코드에서 찾아내 먼저 실행함소스코드 평가 과정이 끝나면 변수 선언을 ..