Section 1 -Unit 9 [Js 핵심문법 및 개념]

정호재·2023년 1월 2일
0

코드스테이츠

목록 보기
8/37

체크포인트

  • 원시 자료형 : 하나의 변수에 하나의 데이터만 담을 수 있는 구조
    -Ex) null, string, number, boolen, undifined, 변수선언후 지정 값

  • 참조 자료형 : 실제 데이터는 heap에 담기고 할당시에는 heap을 가르키는 주소값을 할당되는 다양한 크기의 변수를 담을 수 있는 자료형
    -Ex) 배열, 함수, 객체등 원시 자료형에 해당하지 않는 자료형(Object)

  • 스코프: 중괄호({}블록) 혹은 함수 인해 정해진 범위

    	[규칙]
    	1. 외부 스코프에서 내부 스코프의 변수는 사용할 수 없지만 내부 스크프에서 외부 스코프의 변수는 사용가능
    	2. 중첨 사용 가능 (지역변수가 전역 변수보다 높은 우선순위를 가진다 ==> 재할당으로 이해)
    
    	[종류]
    	1. 블록 스코프:  {} 괄호를 기준으로 생기는 범위(var, var은 블록스코프를 무시하고 함수 스코프만 따름) 
    	2. 함수 스코프: function 키워드와 함께 함수를 선언하는 구조, 함수를 호출할 때 마다 새로운 스코프 생성(let, const)
    
    	[변수 선언 키워드]
    	1. var   : 재할당 O, 재선언 O, 블록스코프 유효 x
    	2. const : 재할당 x, 재선언 x, 블록스코프 유효 O
    	3. let   : 재할당 O, 재선언 x, 블록스코프 유효 O
  • 클로저
    - 함수를 반환하는 함수
    - Lexical scoping
    - 내부에서 바깥 스코프에 선언한 변수 접근 O
    - 외부에서 내부 스코프에 선언한 변수 접근 X
    - 외부함수의 실행이 끝나도 외부 함수 변수 데이터가 남음
    - 스코프 규칙을 통해 스코프 밖에서 변수 변경이 불가능(캡슐화)
    - 각각의 선언으로 리턴된 객체는 서로 영향을 끼치지 않음(모듈화)

  • spread/rest
    - spread : 여러개의 데이터를 각 요소로 풀어서 사용할 수 있게 해줌

    - rest : 매개변수를 생성해 들어는 요소를 모두 하나의 배열로 반환

    ==> rest와 spread는 응용할 수 있는 상황이 있을 때 마다 사용해 보니 기존의 코드보다 훨씬 간결 코딩 가능
  • 구조분해할당 : 배열 혹은 객체의 요소들을 변수로 분해할당하는 방법으로, 많은 요소들을 활용하기 위해 값을 전달 혹은 받을 때등 다양하게 활용됨

해당 변수들의 값이 어떻게 할당 및 재할당 되는지 생각하며 기본 이해

Koans

  • Matcher .equl은 두 값이 같은 엄격한 동치연산자(===)와 같은 기준으로 검사함
  • 산술 연산자 +는 피연산자들중 문자열이 있을 시 피연사들을 문자열로 변환
  • 산술 연산자 -, *, **, //등은 피연사들을 숫자로 변환하여 연산
  • const를 사용할 경우 재할당 금지
  • 함수 선언은 hoisting되고 함수 표현 해당 라인에서 선언
  • 배열 사용에 활용에 사용되는 pop, push, shift, unshift등 활용(자료구조 알고리즘 구현에 활용가능)
  • this의 이해
    - this는 매소드가 속한 객체를 가르킴
    • 화살표 함수는 상위 객체를 고정으로 가르킴
    • 일반 함수는 함수를 호출에 따라 다르게 가르킬 수 있음(apply, bind, call)
  • spread를 사용해 빈배열을 전달하면 아무것도 전달 되지 않음!
  • rest parameter의 경우 일부만 전달 가능 (ex. let [...a,d] = [1,2,3] 불가능!)
  • spread/rest는 객체에도 활용할 수 있으며, 객체의 경우 객체 자체 혹은 객체 내부의 deepth 2이상의 값을 불러 올 수 있고 해당 방식을 코딩을 통해 익히고 있음

후기

  • 자바스크립의 기본적인 문법인 스코프, 자료형, ES6, 클로저, 구조분해할당을 배움
  • 다른 언어에서 사용되는 개념도 있었지만, ES6와 주소 값을 찾아볼 수 없는 등 JS만의 특징도 많이 배움
  • 앞으로 밥 먹듯이 사용하게 될 개념들이기에 페어와 koans를 진행하며 천천히 복습함 이후에도 참고할 것
  • 현재 다른 개념보다 활용하기 보다 어려움 클로져 개념을 적극 활용해 코딩해보며 충분히 익힐 예정
profile
공부 일기장

0개의 댓글