전체 글 238

20장. strict mode

20.1 strict mode란? function foo(){ x=10; } foo(); console.log(x); 변수의 선언이 없기때문에 ReferenceError가 발생할 것 같지만 JS엔진이 전역객체에 x프로퍼티를 동적으로 생성하여(암묵전 전역)10을 출력, 이는 오류의 원인이 될 수 있음 이런 현상의 방지를 위한 strict mode로 명시적인 에러를 발생시킴, 또는 ESLint 사용(문법적오류, 잠재적오류, 오류 원인 리포팅) 20.2 strict mode의 적용 //1. 전역의 선두 'use strict'; function foo(){ //2. 함수 몸체의 선두 'use strict'; x=10;//ReferenceError : x is not defined } foo(); 20.3 전역에..

18장. 함수와 일급 객체

18.1 일급 객체 일급객체의 조건 1. 무명의 리터럴로 생성 가능(런타임에 생성 가능) 2. 변수나 자료구조(객체, 배열 등)에 저장 가능 3. 함수의 매개변수에 전달 가능 4. 함수의 반환값으로 사용가능 //1. 무명의 리터럴로 생성가능 //2. 변수에 저장가능 //런타임(할당단계)에 함수 리터럴이 평가되어 함수객체가 생성되고 변수에 할당됨 const increase = function(num){ return ++num; } const decrease = function(num){ return --num; } //2. 객체에 저장가능 const auxs = {increase, decrease}; //3. 함수의 매개변수에 전달가능 //4. 함수의 반환값으로 사용가능 function makeCounte..

15장. let, const 키워드와 블록레벨 스코프

15.1 var 키워드로 선언한 변수의 문제점 15.1.1 변수 중복 선언 허용 var x = 1; var y = 1; var x = 100;//중복선언허용, var 키워드가 없는 것처럼 동작(재할당) var y;//무시됨 console.log(x);//100 console.log(y);//1 15.1.2 함수 레벨 스코프 : 함수의 코드블록만을 지역 스코프로 인정 var x = 1; if(true){ var x = 10;//중복선언, 전역변수 } console.log(x);//10 var i = 10; for(var i=0; i

11장. 원시값과 객체의 비교

원시 타입(변경 불가능한 값, immutable value) 객체(참조) 타입(변경 가능한 값, mutable value) 변수(메모리 공간)에 실제값 저장 변수(메모리 공간)에 참조값 저장 값에 의한 전달(원시 값 복사) 참조에 의한 전달(참조 값 복사) 11.1 원시값 11.1.1 변경 불가능한 값 : 읽기 전용값, 데이터의 신뢰성 보장 //const 키워드를 사용해 선언한 변수는 재할당이 금지됨,, 상수는 재할당이 금지된 변수 const o = {}; //const 키워드를 사용해 선언한 변수에 할당한 원시값(상수)은 변경할 수 없음 //하지만 const 키워드를 사용해 선언한 변수에 할당한 객체는 변경할 수 있음 o.a = 1; console.log(o);//{a: 1} 변수에 할당된 원시값이 변..

7장. 연산자

7.1 산술 연산자 - 이항 산술 연산자 : 2개의 피연산자를 산술연산하여 숫자값을 만듦(ex. +, -, *, /, %) - 단항 산술 연산자 : 1개의 피연산자를 산술연산하여 숫자값을 만듦 (ex. ++, --, +, -) var = 5, result; //선할당 후증가_후위 연산자 result = x++; console.log(result, x);//5, 6 //선증가 후할당_전위 연산자 result = ++x; console.log(result, x); //7, 7 //선할당 후감소_후위 연산자 result = x--; console.log(result, x);//7, 6 //선감소 후할당_전위 연산자 result = --x; console.log(result, x); 5, 5 JS의 암묵적 타입..

6장. 데이터 타입

6.1 숫자 타입 : 모든 수를 실수로 처리하며 배정밀도 64비트 부동소수점 형식을 따름 *배정밀도 64비트 부동소수점 console.log(1 === 1.0);//true var bubary = 0b01000001;//2진수 var octal = 0o101;//8진수 var hex = 0x41;//16진수 console.log(binary);//65 console.log(octal);//65 console.log(hex);//65 console.log(binary === octal);//true console.log(octal === hex);//true Infinity : 양의 무한대 -Infinity : 음의 무한대 NaN : 산술 연산 불가 (nan(x), Nan(x)..) 6.2 문자열 타입 :..

5장. 표현식과 문

값 : 식이 평가되어 생성된 결과 * 모든 값은 데이터 타입을 가지며 메모리에 2진수 비트의 나열로 저장됨 ex. 0100 0001 = 65 or A 리터럴 : 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법 표현식 : 값으로 평가될 수 있는 문, 표현식이 평가되면 새로운 값을 생성하거나 기존값을 참조함, 숫자값으로 평가되는 표현식은 숫자값 대신 사용가능 //리터럴 표현식 10 'Hello' //식별자 표현식 sum person.name arr[1] //연산자 표현식 10 + 20 sum = 10 //함수, 메서드 호출 표현식 square(); person.getName() 문 : 프로그램을 구성하는 기본단위이자 최소 실행단위 토큰 : 문법적인 의미를 가지며 문법적으로 더이상..

4장. 변수

변수 : 하나의 값을 저장하기 위해 확보한 메모리 공간 자체, 그 메모리 공간을 식별하기 위해 붙인 이름 //변수는 하나의 값 저장을 위한 메커니즘이나 배열과 객체 같은 자료구조를 사용하면 여러개의 값을 그룹화해서 사용가능 var userId = 1; var userName = 'Lee'; //객체 var user = { id:1, name: 'Lee'} //배열 var users = [ {id: 1, name: 'Lee'}, {id: 2, name: 'Kim'} ]; 식별자 : 변수이름, 어떤 값을 구별해서 식별할 수 있는 고유한 이름, 식별자는 값이 아닌 메모리 주소를 기억함 변수선언 : 변수를 생성하는 것, 값을 저장하기 위한 메모리 공간을 확보하고 변수이름과 확보된 메모리 공간의 주소를 연결하여 ..

14강. Context

Context란? 컴포넌트의 props를 통한 데이터 전달하여 모든 단계를 거쳐야하는 기존 방식의 단점을 보완하여 컴포넌트를 직접 전달, 여러 컴포넌트에서 자주 필요로 하는 데이터에 사용 Context를 사용하는 경우 여러개의 Components들이 접근해야하는 데이터 (ex. 로그인정보, 로그인여부, UI테마, 현재 언어 등) function App(props){ return ; } function Toolbar(props){ //이 Toolbar 컴포넌트는 ThemedButton에 theme를 넘겨주기 위해서 'theme' props를 가져감 //현재 테마를 알아야하는 모든 버튼에 대해서 props로 전달하는것은 비효율 return( {/* 호출1 */} ); } function ThemedButto..

13강. Composition vs Inheritance

Composition 방법과 Inheritance Composition : 여러개의 컴포넌트를 합쳐서 새로운 컴포넌트를 만드는 것, 합성 Composition 조합방법 - Containment : 하위 컴포넌트를 포함하는 형태의 합성 방법, Sidebar나 Dialog같은 Box형태의 컴포넌트는 자신의 하위 컴포넌터를 미리 알 수 없음, children이라는 props를 사용해서 조합 function FancyBorder(props){ return( {props.children} ); } React.createElement( type, [props], [..children] ); function WelcomDialog(props){ return( //FancyBorder 컴포넌트 내의 모든 jsx태그는 ..

반응형