JS 전문가되기 //Day07

남형진·2020년 12월 15일
0

JS 전문가되기

목록 보기
7/13
post-thumbnail

🙌들어가기 앞서...

JS 전문가되기 제목의 포스팅의 목적은 필자가 공부한 것을 복습하는데 그리고 약점을 보완하는데 있습니다.

1. Primitive & Reference

  • Boolean
  • Null
  • Undefined
  • Number
  • String
  • Symbol
    위 값들은 전부 원시자료형이다
  • Array
  • Object
  • Function
    위 값들은 전부 참조자료형이다

1-1. 차이점


출처:https://goodgid.github.io/JS-Data-Types/
원시값Stack이라는 곳에 을 그대로 할당,
참조값Stack이라는 곳에 주소값할당한다.
(참조값의 Heap이라는 곳에 저장된다.)

예시를 통해 더 깊이 이해해보자

let Primitive = 1;
let Reference = [1, 2, 3];
//
let clonePri = Primitive;
clonePri += 1;
console.log(Primitive); // 1
//
let cloneRefer = Reference;
cloneRefer.push(4);
console.log(Reference); // [1, 2, 3, 4]

원시자료형복사가 되는 반면 참조자료형값 복사가 안되는 걸 볼 수 있다.
(참조자료형은 변수에 할당할 때 값이 아닌 주소를 저장하기 때문(주소복사))

2. Scope


안쪽 Scope 에서 바깥 변수/함수를 접근하는 것은 가능
바깥쪽 Scope 에서 안쪽 변수/함수를 접근하는 것은 불가능

2-1. Global Scope & Function Scope & Block Scope



위와 같이 Keyword유효범위재할당 여부가 구분되어 있다.

2-2. Closure

function outerFn(){
	let outerVar = 'outer';
    	console.log(outerVar);
	function innerFn(){
    		let innerVar = 'inner';
            	console.log(innerVar);
    	}
    return innerFn()
}
let globalVar = 'global';
outerFn(); // outer \n inner

Closure 함수는 innerFn()이다.

Closure Function: 지역변수(innerVar), 외부함수의 변수(outerVar), 전역변수(globalVar)의 접근
모두 가능함수

2-3. Currying


Curring: 함수 하나가 n개의 인자를 받는 대신, n개의 함수를 만들어 각각 인자를 받게 하는 방법

2-4. Currying Example

코드를 입력하세요

20201215

profile
세상을 바꾸는 한줄의 코드를 작성하는 개발자

0개의 댓글