목록web/js (9)
방종민 블로그?
2022.12.16 테크톡 요약: 개발자가 작성한 스크립트 언어를 실행 가능한 언어로 변형하여 실행, 실행 순서 및 메모리를 관리하는 엔진 필요(여기선 V8) 자바스크립트 런타임: 엔진을 포함한 API 및 기능 집합 자바스크립트 엔진: 좁은 의미로 인터프리팅 역할 ⇒ V8 엔진을 기반한 런타임으로 Chrome이 동작한다. 인터프리터 언어 보통의 인터프리터 언어는 한 줄마다 실행되어 같은 변수가 나오더라도 기계어로 번역하여 효율적이지 못함 요즘 인터프리터 언어는 아래의 과정을 거침 (1)JIT 컴파일 (2)수행 과정 엔진 및 런타임 자바스크립트 엔진 Heap: 각 함수 별 선언 및 할당되는 모든 변수 및 함수를 적재하는 메모리 영역 Call Stack: 함수 실행 순서에 맞게 쌓이는 스택, Heap에 있는..

: 일련의 과정을 문(statement)로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것 함수 내부로 입력을 전달받는 변수를 매개변수(parameter), 입력을 인수(argument), 출력을 반환값(return) 이라 한다. 또한 함수는 값이며, 여러 개 존재 가능하므로 구별을 위해 식별자인 함수 이름을 사용할 수 있다. 함수 사용 이유 함수는 여러 번 호출 가능하다. 실행 시점을 개발자가 결정한다. -> 코드의 재사용 -> 유지보수의 편이성 -> (실수를 줄이기에)코드 신뢰성 -> (적절한 식별자)코드 가독성 코드는 동작만이 존재 목적이 아니다. 개발자를 위한 문서이기도 하다. 즉, 가독성이 좋은 코드가 좋은 코드다. 함수 리터럴 리터럴은 사람이 이해할 수 있는 문자, 기호로 값을 생..

원시 타입: 변경 불가능한 값(immutable) 객체 타입: 변경 가능한 값(mutable) 왜 그런지 아라보자 원시 값 변경 불가능하다는 것은 변수가 아니라 값을 말하는 것 변수 - 값을 저장하기 위해 메모리 공간 자체 또는 그 공간을 식별하기 위해 붙인 이름 값 - 변수에 저장된 데이터, 표현식이 평가되어 생성된 결과 변수 재할당 새로운 메모리 공간 확보 재할당 원시값 저장 변수는 새로운 메모리를 가리킴 값에 의한 전달 let score = 80; let copy = score; score = 100; 일 때 copy의 값은 어떻게 될까? 메모리 공간을 확보하고 값을 복사하기 때문에 score와 copy는 별개의 값 ! 위 그림이 엔진의 내부 동작과 일치하지 않을 수도 있다.(엔진마다 다르기에) 위..
객체란? 객체: 현실의 사물을 프로그래밍에 표현하기 위한 방법 js는 객체 기반 다른 데이터 타입과는 다르게 변경 가능한 값(const로 선언되어도 수정 가능) key와 value로 구성된 프로퍼티의 집합 프로퍼티: 객체의 상태를 나타내는 값 메서드: 값을 함수로 가진 프로퍼티 객체의 키는 서랍장의 이름표, 값은 내용물이라 생각하면 된다. 객체 리터럴 객체 생성 방법은 객체 리터럴, Object 생성자 함수, 생성자 함수, Object.create 메서드, 클래스(ES6) 등 다양하다. 주로 리터럴을 이용한다. 리터럴: 중괄호 {}를 이용해 객체를 선언하는 방법 let user = { name: "koon", admin: true, }; // name, admin이 키 "koon"과 true가 값이다. ..
타입 변환? 암묵적 타입 변환 표현식을 평가하면서 엔진에 의해 일어나는 변환 타입 강제 변환이라고도 한다 명시적 타입 변환 개발자의 의도에 의해 일어나는 변환 타입 캐스팅이라고도 한다 1. 암묵적 타입 변환이 일어날 때 표현식이 어떻게 평가될 것인지 예측하지 못한다면 오류가 발생할 가능성이 높아진다. 2. 암묵적 타입 변환을 잘 이용하면 가독성을 높일 수도 있다 암묵적 타입 변환 예시 1. string 1 + '2' // "12" `i'm ${20+1}` // "i'm 21" 2. number 1 - '1' // 0 1 * '10' // 10 1 / 'one' // NaN '1' > 0 // true // 문자열 +&#..
operator 는 하나 이상의 표현식(피연산자)을 대상으로 연산 등을 수행하여 값을 만든다. 7.1 산술 연산자 arithmetic operator: 수학적 계산 산술 연산이 불가능한 경우 NaN 반환 7.1.1 이항 산술 연산자 말 그대로 2개(binary)의 피연산자를 이용 5 + 2; // 7 5 - 2; // 3 5 * 2; // 10 5 / 2; // 2.5 5 % 2; // 1, 나머지 연산 7.1.2 단항 산술 연산자 1개(unary) 피연산자 부수효과는 할당을 말한다. ++, -- 연산자는 위치에 의미가 있다. +는 숫자 타입으로 변환하고 반환한다. let a = 1; let result; // 1. a에 암묵적 할당이 이뤄짐 a++; // 2, a = a + 1와 같다; // 2. 할당..