일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 블록체인
- 백준
- 자바스크립트
- Javascript
- Deep Dive
- Algorithm
- Interview
- 솔리디티
- var
- git pull
- nft
- 파이썬
- frontend
- Execution context
- 딥다이브
- BOJ
- 함수
- let
- solidity
- 정렬
- Python
- 클로저
- 변수
- 알고리즘
- 프로퍼티
- react
- Queue
- 리액트
- blockchain
- 실행 컨텍스트
- Today
- Total
목록자바스크립트 (29)
공부하자
14.1 변수의 생명 주기 변수는 선언에 의해 생성되고 할당을 통해 값을 갖는다. 변수에는 생명 주기가 있다. 생명 주기가 없다면 한번 선언된 변수는 프로그램을 종료하지 않는 한 영원히 메모리 공간을 점유하게 된다. 변수는 자신이 자신이 선언된 위치에서 생성되고 소멸한다. function foo() { var x = 'local'; console.log(x); // local return x; } foo(); console.log(x); // ReferenceError: x is not defined 전역 변수의 생명 주기는 애플리케이션의 생명 주기와 같고, 함수 내부에서 선언된 지역 변수는 함수가 호출되면 생성되고 함수가 종류되면 소멸한다. 즉, 지역 변수의 생명 주기는 함수의 생명 주기와 일치한다. ..
12.5 함수 호출 함수는 함수를 가리키는 식별자와 한 쌍의 소괄호인 함수 호출 연산자로 호출한다. [매개 변수와 인수] 함수를 실행하기 위해 필요한 값을 함수 외부에서 함수 내부로 전달할 필요가 있는 경우, 매개변수를 통해 인수를 전달한다. 인수는 값으로 평가될 수 있는 표현식이어야 하고, 함수를 호출할 때 지정하며, 개수와 타입에 제한이 없다. 매개변수는 함수를 정의할 때 선언하며, 함수가 호출되면 함수 몸체 내에서 암묵적으로 생성되고 일반 변수와 마찬가지로 undefined로 초기화된 후 인수가 순서대로 할당된다. [인수 확인] function add(x, y) { return x + y; } console.log(add(2)); // NaN console.log(add('a', 'b')) // '..
12.1 함수란? 프로그래밍 언어의 함수는 일련의 과정을 문(statement)으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것이다. 프로그래밍 언어의 함수도 수학의 함수처럼 입력을 받아서 출력을 내보낸다. 이때 함수 내부로 입력을 전달받는 변수를 매개변수(parameter), 입력을 인수(argument), 출력을 반환값(return value)이라 한다. 또한 함수는 값이며, 여러 개 존재할 수 있으므로 특정 함수를 구별하기 위해 식별자인 함수 이름을 사용할 수 있다. 함수는 함수 정의를 통해 생성된다. 함수 정의만으로 함수가 실행되는 것은 아니다. 수학의 함수처럼 미리 정의된 일련의 과정을 실행하기 위해 필요한 입력, 즉 인수를 매개변수를 통해 함수에 전달하면서 함수의 실행을 명시적..
원시 타입과 객체 타입 차이점 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 쉼표 연산자 쉼표 연산자는 왼쪽 피연산자부터 차례대로 피연산자를 평가하고 마지막 피연산자의 평가가 끝..