본문 바로가기

반응형

전체 글

(83)
자바스크립트 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..
flutter - 1. widget * widget - 독립적으로 실행되는 작은 프로그램 - 바탕화면 등에서 날씨나 뉴스, 생활정보 등을 보여줌. - 그래픽이나 데이터 요소를 처리하는 함수를 가지고 있음 * flutter 상에서의 widget - UI를 만들고 구성하는 모든 기본 단위 요소 (웹화면을 구성하고 있는 모든 요소들을 말함) - 눈에 보이지 않는 요소들까지 위젯이라고 함. (center와 column을 포함) * widget의 종류 - Stateless widget(상대가 없는 정적인 위젯) - Stateful widget(계속 움직임이나 변화가 있는 위젯) - Inherited widget * Stateless widget - 스크린상에 존재만 할 뿐 아무것도 하지 않음 - 어떠한 실시간 데이터도 저장하지 않음 - 어떤 변화(..
자바스크립트 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 산술 연산자 피연산자를 대상으로 수학적 계산을 수행해 ..