일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- GitLab
- commit
- React Native
- github
- viewcontroller
- react-native
- js
- nextJS
- xtring.log
- Branch
- REACT
- git
- styling
- rn
- npm install
- Docker
- Android
- ReactNative
- styled-components
- Swift
- JavaScript
- shortcut
- npm
- ios
- HTML
- Xcode
- ES6
- DevOps
- currying
- vscode
- Today
- Total
목록Front-End (47)
xtring.dev
Arrow function Expression function 표현에 비해 구문이 짧고 자신의 this, argument, super 또는 new.target을 바인딩하지 않습니다. Arrow function은 항상 익명이며 이 함수 표현은 메소드 함수가 아닌 곳에 적합합니다. 그래서 생성자로서 사용할 수 없습니다. Arrow(화살표) function은 => 문법을 사용하는 축약형 함수입니다. 표현식의 결과값을 반환하는 표현식 본문(expression bodies)뿐만 아니라 상태 블럭 본문(statement block bodies)도 지원합니다. 일반 함수의 자신을 호출하는 객체로 가리키는 dynamic this와 달리 arrows 함수는 코드의 상위 스코프(lexical scope)를 ..
함수선언은 Function Statement라고도 하며 해석 그대로 함수 문장라는 뜻이다. 이는 곧 실행가능한 코드블럭이 아니며 함수의 정의를 나타내는 문장으로 해석된다. 따라서 코드해석에 따른 수행결과가 존재하지 않는다는 것을 의미한다. 여기서 Statement 라는 개념을 잘 집고 넘어가야 한다. 함수 선언문은 Statement 이며 즉, 코드블럭 자체는 실행가능 코드가 아니라는 것이다. 따라서 코드 블럭을 콘솔에서 실행하여도 어떠한 결과도 return 되지 않는다. 그렇기 때문에 함수선언문을 Class와 동일한 개념으로 이해하여도 무방하다. // Function Declarations function foo() { console.log('hello'); } 이러한 statement는 consol..
함수 표현은 Function Literal(익명 함수; anonymous function) 이다. 이는 실행 가능한 코드로 해석 되어진다거나 변수나 데이터구조에 할당되어지고 있음을 의미한다. 즉, 해당 코드블럭이 실행코드로서 해석되어지며 동시에 코드실행에 따른 결과값을 가지거나 특정 변수에 할당된 값으로 존재한다. 이처럼 함수표현은 '함수 리터럴로 특정변수에 할당'되거나 '즉시 실행가능한 코드 블럭으로서 존재하는 함수'를 의미하는 것이다. 함수표현이 실행코드로서 해석되기 위해서는 ()를 이용하여 감싸주어야 한다. 이것을 자기호출함수(self invoking function) 라고도 한다. 자기호출함수는 재귀함수와는 다른 개념이다. 재귀함수는 함수 안에서 자신을 호출하는 형식이지만 자기호출함수는 해..
인터프린터가 JavaScript 코드를 해석함에 있어 Global 영역의 선언된 코드블럭을 최상의 Scope로 끌어올리는 것을 호이스팅(hoisting)이라 한다. Global 영역에 선언된 변수 또는 함수는 JavaScript 엔진이 가장 먼저 해석하게 된다. 단 할당 구문은 런타임 과정이 이루어지기 때문에 hoisting되지 않는다.(?) 선언문은 항시 JavaScript 엔진 구동시 가장 최우선으로 해석한다고 이해하면 쉽다. 즉, 인터프린터가 JavaScript 코드를 해석하면서 코드작성 순서에 상관없이 global 영역에 선언되어 있는 변수나 함수의 선언문들을 먼저 수집하여 전역객체의 속성으로 등록시켜 둔다는 것이다. 그렇기 때문에 전역변수와 전역함수는 JavaScript 코드의 어떠한..
Currying은 JavaScript에 대한 깊은 이해를 제공합니다. Arrow funtion과 함께 어떻게 수행되는지 알아봅시다! What is Currying? Haskell B. Curry이 제시한 ES6의 새로운 Function 정의방법으로 기존의 Function 정의 시에 한번에 여러 개의 argument 불러오는 방식에서 argument 1개만으로 Function을 정의하는 방식입니다. Currying은 lamda calculus를 통해 하나 이상의 인수를 가진 함수로 하나 이상의 인수를 가진 함수를 줄이는 프로세스입니다. 말로만 설명하기에는 한번에 알기 어려운 개념인 것 같습니다. 아래 코드를 보겠습니다. curryedMultiply = (n) => (m) => n * m cu..
undefined와 null 'undefined'와 'null'은 같은 의미를 가지면서 또 다르게 다름을 가진 값입니다. 이 둘의 정확한 차이점을 안다면 변수에 잘못 할당된 값들을 빠르게 캐치할 수 있습니다. undefined undefined가 부여되는 경우 1. 사용자가 명시하는 경우 2. 자바스크립트 엔진이 자동으로 부여 사용자가 변수에 undefined를 부여하는 경우는 사실상 '의미없는 부여'로 특별히 할 얘기는 없습니다. 대신 자바스크립트 엔진이 변수에 자동으로 undefined를 부여하는 경우에 대해 알아 봅시다. 자바스크립트 엔진이 변수에 undefined를 자동으로 부여하는 경우는 3가지 a. 값을 대입하지 않은 변수, 즉 데이터 영역의 메모리 주소를 지정하지 않은 식별자에 접근할 때 b..
01 데이터 타입의 종류 (1) 기본형(원시형, primitive type): number, string, boolean, null, undefined, Symbol(ES6에서 추가) (2) 참조형(reference type): object - Array, Function, Date, RegExp 등... (ES6에서 Map, Set, WeakSet 등이 추가) 기본형 데이터 타입은 값이 담긴 주소값을 바로 복제합니다. 또한 불변성(immutability) 이라는 특성을 가지고 있습니다. (불변성 은 메모리와 데이터에 대한 지식이 필요함으로 이후 포스터에서 다루겠습니다.) 참조형 데이터 타입은 값이 담긴 주소값들로 이루어진 묶음을 가리키는 주솟값을 복제합니다. 02 데이터 타입을 이해하기 위해서 모든 데..