본문 바로가기

반응형

자바스크립트 DeepDive

(8)
자바스크립트 DeepDive 11장 원시 값과 객체의 비교 원시 타입과 객체 타입으로 구분할 수 있음 원시 타입과 객체 타입은 세 가지 측면에서 다름 원시 값은 변경 불가능한 값 ↔ 객체 타입의 값은 변경 가능한 값 원시 값을 변수에 할당하면 변수(확보된 메모리 공간)에는 실제 값이 저장됨. 객체를 변수에 할당하면 변수(확보된 메모리 공간)에는 참조 값이 저장됨. 원시 값을 갖는 변수를 다른 변수에 할당하면 원본의 원시 값이 복사되어 전달됨. → 값에 의한 전달 객체를 가리키는 변수를 다른 변수에 할당하면 원본의 참조 값이 복사되어 전달됨. → 참조에 의한 전달 11.1 원시 값 원시 타입의 값, 원시 값은 변경 불가능 값이다. 변경 불가능하다는 것은 변수가 아니라 값에 대한 진술임. → 원시 값 자체를 변경할 수 없음을 의미. 변수의 상대 개념인 상수는 재할당..
자바스크립트 DeepDive 10장 객체리터럴 10.1 객체란? - 자바스크립트는 객체 기반의 프로그래밍 언어, 자바스크립트를 구성하는 모든 것이 객체 - 원시 타입의 값은 변경 불가능한 값, 객체는 변경 가능한 값 - 객체는 0개 이상의 프로퍼티로 구성된 집합이며, 프로퍼티는 키(key)와 값(value)으로 구성됨. - 자바스크립트에서 사용할 수 있는 모든 값은 프로퍼티 값이 될 수 있음. - 객체는 객체의 상태를 나타내는 값(프로퍼티)과 프로퍼티를 참조하고 조작할 수 있는 동작(메서드)을 모두 포함 const counter = { num: 0, // 프로퍼티: 객체의 상태를 나타내는 값(data) increase: function() { // 메서드: 프로퍼티(상태 데이터)를 참조하고 조작할 수 있는 동작(behavior) this.num++;..
자바스크립트 DeepDive 9장 타입 변환과 단축 평가 9.1 타입 변환이란? 자바스크립트의 모든 값은 타입이 있음. 값의 타입은 개발자의 의도에 따라 다른 타입으로 변환 가능 개발자가 의도적으로 값의 타입을 변환하는 것 = 명시적 타입 변환 타입 캐스트 연산자를 사용하여 강제적으로 수행하는 타입 변환을 의미 명시적 타입 변환이나 암묵적 타입 변환이 기존 원시 값을 직접 변경하는 것은 아님. 기존 원시 값을 사용해 다른 타입의 새로운 원시 값을 생성 let x = 10; let str = x.toString(); console.log(typeof str, str); // string 10 console.log(typeof x, x); // number 10 9.2 명시적 형변환 타입을 변경하는 기본적인 방법 Number: 정수형과 실수형의 숫자로 변환, 보통..
자바스크립트 DeepDive 8장 제어문 8.1 블록문 0개 이상의 문을 중괄호로 묶은 것, 코드 블록 또는 블록이라고 부름 자바스크립트는 블록문을 하나의 실행 단위로 취급 // 블록문 { var foo = 10; } // 제어문 var x = 1; if (x < 10) { x++; } // 함수 선언문 function sum(a, b) { return a + b; } 8.2 조건문 조건문은 주어진 조건식의 평가 결과에 따라 코드 블록(블록문)의 실행을 결정함. 자바스크립트는 if ... else 문과 switch 문으로 제공함. if (조건식) { // 조건식이 참이면 이 부분 실행 } else { // 조건식이 거짓이면 이 부분 실행 } 대부분의 if ... else문은 삼항 조건 연산자로 바꿔 쓸 수 있음. var x = 2; var re..
자바스크립트 DeepDive 7장 연산자 연산자는 하나 이상의 표현식을 대상으로 산술, 할당, 비교, 논리, 타입, 지수 연산 등을 수행하여 하나의 값을 만든다. 이 때 연산의 대상을 피연산자라고 함. 7.1. 산술 연산자 산술 연산자는 피연산자를 대상으로 수학적 계산을 수행해 새로운 숫자 값을 만듬. 산술 연산이 불가능한 경우, NaN을 반환함. 이항 산술 연산자 2개의 피연산자를 산술 연산하여 숫자 값을 만듬. 부수 효과가 없음. 5 + 2 = 7 5 - 2 = 3 5 * 2 = 10 5 / 2 = 2.5 5 % 2 = 1 단항 산술 연산자 1개의 피연산자를 산술 연산하여 숫자 값을 만듬. 증가/감소(++/—) 연산자는 피연산자의 값을 변경하는 부수 효과가 있음. let x = 5, result; result = x++; console.lo..
자바스크립트 DeepDive 6장 데이터 타입 데이터 타입은 값의 종류를 말함. 원시 타입과 객체 타입으로 분류할 수 있음. 원시 타입: 숫자 타입, 문자열 타입, 불리언 타입, undefined 타입, null 타입, 심벌 타입 객체 타입: 객체, 함수, 배열 등 6.1. 숫자 타입 자바스크립트는 하나의 숫자 타입만 존재 정수, 실수, 2진수, 8진수, 16진수 리터럴은 모두 메모리에 배정밀도 64비트 부동소수점 형식의 2진수로 저장됨. 단정밀도 : 32비트 (부호 1bit + 지수 8bit + 가수 23bit) 배정밀도 : 64비트 (부호 1bit + 지수 11bit + 가수 52bit) var integer = 10; // 정수 var double = 10.12 // 실수 var negative = -20; // 음의 정수 Infinity: 양..
자바스크립트 DeepDive 5장 표현식과 문 5.1 값 값은 식이 평가되어 생성된 결과를 말함. 평가란 식을 해석해서 값을 생성하거나 참조하는 것을 의미 var sum = 10 + 20; // 변수에는 10 + 20이 평가되어 생성된 숫자 값 30이 할당 5.2 리터럴 리터럴은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법 리터럴은 평가되어 값을 생성 자바스크립트 엔진은 코드가 실행되는 시점인 런타임에 리터럴을 평가해 값을 생성함. ex) 정수 리터럴, 부동소수점 리터럴, 2진수 리터럴, 16진수 리터럴, 문자열 리터럴, null 리터럴, undefined 리터럴 5.3 표현식 표현식은 값으로 평가될 수 있는 문 리터럴은 값으로 평가 → 리터럴도 표현식 5.3.1 산술 연산자 피연산자를 대상으로 수학적 계산을 수행해 ..
자바스크립트 DeepDive 4장 변수 4.1 변수란 무엇인가? 왜 필요한가? 컴퓨터는 CPU를 사용해 연산하고, 메모리를 사용해서 데이터를 기억 컴퓨터는 1바이트 단위로 데이터를 저장하거나 읽어들임. 메모리(memory)는 데이터를 저장할 수 있는 메모리 셀(memory cell)의 집합체 메모리(memory)는 주기억장치를 의미 https://www.crucial.kr/articles/about-memory/support-what-does-computer-memory-do 컴퓨터 메모리(RAM)란 무엇이며 어떤 역할을 합니까?메모리 영역는 무엇입니까?| |Crucial Korea 컴퓨터 메모리(RAM)란 무엇이며 어떤 역할을 합니까?Crucial에서 알기 쉽게 설명하는 컴퓨터 메모리의 정의를 확인하십시오. www.crucial.kr 메모리..