일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 변수
- Deep Dive
- react
- Javascript
- 알고리즘
- 함수
- var
- Algorithm
- blockchain
- 클로저
- BOJ
- Interview
- let
- 딥다이브
- 파이썬
- solidity
- git pull
- Execution context
- 정렬
- Queue
- 자바스크립트
- 프로퍼티
- 리액트
- nft
- Python
- 실행 컨텍스트
- 블록체인
- 솔리디티
- 백준
- frontend
- Today
- Total
목록Javascript/Deep Dive (26)
공부하자
원시 타입과 객체 타입 차이점 3가지 원시 타입의 값 즉, 원시 값은 변경 불가능한 값이다. 이에 비해 객체(참조) 타입의 값, 즉 객체는 변경 가능한 값이다. 원시 값을 변수에 할당하면 변수(확보된 메모리 공간)에는 실제 값이 저장된다. 이에 비해 객체를 변수에 할당하면 변수(할당된 메모리 공간)에는 참조 값이 저장된다. 원시 값을 갖는 변수를 다른 변수에 할당하면 원본의 원시 값이 복사되어 전달된다. 이를 값에 의한 전달이라 한다. 이에 비해 객체를 가리키는 변수를 다른 변수에 할당하면 원본의 참조 값이 복사되어 전달된다. 이를 참조에 의한 전달이라 한다. 11.1 원시 값 [변경 불가능한 값] 원시 값은 변경 불가능한 값이다. 값을 변경할 수 없다는 건 구체적으로 어떤 것을 의미하는 걸까? 그 전에..
10.1 객체란? 원시 타입은 단 하나의 값만 나타내지만 객체 타입은 다양한 타입의 값(원시 값 또는 다른 객체)을 하나의 단위로 구성한 복합적인 자료구조다. 원시 타입의 값, 즉 원시 값은 변경 불가능한 값(immutable value)이지만 객체 타입의 값, 즉 객체는 변경 가능한 값(mutable value) 객체는 0개 이상의 프로퍼티로 구성된 집합이며, 프로퍼티는 키와 값으로 구성된다. 자바스크립트에서 사용할 수 있는 모든 값은 프로퍼티 값이 될 수 있다. 함수도 프로퍼티 값으로 사용될 수 있는데, 프로퍼티 값이 함수일 경우 일반 함수와 구분하기 위해 메서드(method)라 부른다. 프로퍼티 : 객체의 상태를 나타내는 값(data) 메서드 : 프로퍼티(상태 데이터)를 참조하고 조작할 수 있는 동..
9.1 타입 변환이란? 개발자가 의도적으로 값의 타입을 변환하는 것을 명시적 타입 변환 또는 타입 캐스팅이라고 한다. 개발자의 의도와 상관없이 표현식을 평가하는 도중에 자바스크립트 엔진에 의해 암묵적으로 타입이 자동 변환되는 것을 암묵적 타입 변환 또는 타입 강제 변환이라고 한다. 9.2 암묵적 타입 변환 // 피연산자가 모두 문자열 타입이어야 하는 문맥 '10' + 2 // '102' // 피연산자가 모두 숫자 타입이어야 하는 문맥 5 * '10' // 50 // 피연산자 또는 표현식이 불리언 타입이어야 하는 문맥 !0 // true if (1) { } [문자열 타입 변환] // 숫자 타입 0 + '' // "0" -0 + '' // "0" 1 + '' // "1" -1 + '' // "-1" NaN ..
제어문(control flow statement)은 조건에 따라 코드 블록을 실행(조건문)하거나 반복 실행(반복문)할 때 사용한다. 8.1 블록문 블록문(block statement)은 0개 이상의 문을 중괄호로 묶은 것. 자바스크립트는 블록문을 하나의 실행 단위로 취급한다. !주의! 문의 끝에는 세미콜론을 붙이는 것이 일반적이지만, 블록문은 언제나 문의 종료를 의미하는 자체 종결성을 갖기 때문에 블록문의 끝에는 세미콜론을 붙이지 않는다. //블록문 사용 예제 //블록문 { var foo = 10; } // 제어문 var x = 1; if (x < 10) { x++; } //함수 선언문 function sum(a, b){ return a + b; } 8.2 조건문 조건문(conditional statem..
7.4 삼항 조건 연산자 조건식 ? 조건식이 true일 때 반환할 값 : 조건식이 false일 때 반환할 값 7.5 논리 연산자 // 논리합(||) 연산자 true || true; // true true || false; // true false || true; // true false || false; // false // 논리곱(&&) 연산자 true && true; // true true && false; // false false && true; // false false && false; // false // 논리 부정(!) 연산자 !true; // false !false; // true 7.6 쉼표 연산자 쉼표 연산자는 왼쪽 피연산자부터 차례대로 피연산자를 평가하고 마지막 피연산자의 평가가 끝..
연산자는 하나 이상의 표현식을 대상으로 산술, 할당, 비교, 논리, 타입, 지수 연산 등을 수행해 하나의 값을 만든다. 이때 연산의 대상을 피연산자라 한다. 7.1 산술 연산자 산술 연산자는 피연산자를 대상으로 수학적 계산을 수행해 새로운 숫자 값을 만든다. 산술 연산이 불가능한 경우, NaN을 반환한다. [이항 산술 연산자] 2개의 피연산자를 산술 연산하여 숫자 값을 만든다. [단항 산술 연산자] 1개의 피연산자를 산술 연산하여 숫자 값을 만든다. 증가/감소(++/--)연산자는 피연자의 값을 변경하는 부수 효과가 있다. var x = 1; // ++ 연산자는 피연자의 값을 변경하는 암묵적 할당이 이뤄진다. x++; // x = x + 1 console.log(x) // 2 //-- 연산자는 피연자의 값..
자바스크립트는 7개의 데이터 타입을 제공한다. 이 데이터 타입은 원시 타입과 객체 타입으로 구별된다. 6.1 숫자 타입 자바스크립트는 모든 수를 실수로 처리하며, 정수만 표현하기 위한 데이터 타입이 별도로 존재하지 않는다. 숫자 타입은 추가적으로 세 가지 특별한 값도 표현할 수 있다. Infinity : 양의 무한대 -Infinity : 음의 무한대 NaN : 산술 연산 불가(not-a-number) 6.2 문자열 타입 문자열 타입은 텍스트 데이터를 나타내는 데 사용한다. 보통 따옴표(주로 작은 따옴표)로 문자열을 감싸는 데 이는 키워드나 식별자 같은 토큰과 구분하기 위해서이다. 6.3 템플릿 리터럴 ES6부터 템플릿 리터럴이라고 하는 새로운 문자열 표기법이 도입되었다. 템플릿 리터럴은 멀티라인 문자열,..
5.1 값 값(value)는 식(표현식express)이 평가(evaluate)되어 생성된 결과를 말한다. 5.2 리터럴 리터럴(literal)은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법. 3 위의 3은 단순한 아라비아 숫자가 아니라 숫자 리터럴이다. 자바스크립트 엔진은 코드가 실행되는 시점인 런타임에 리터럴을 평가해 값을 생성한다. 즉, 리터럴은 값을 생성하기 위해 미리 약속한 표기법이라고 할 수 있다. 5.3 표현식 표현식(express)은 값으로 평가될 수 있는 문(statement)이다. 즉, 표현식이 평가되면 새로운 값을 생성하거나 기존값을 참조한다. 5.4 문 문(statement)은 프로그램을 구성하는 기본 단위이자 최소 실행 단위이다. 문의 집합으로 이뤄진..