TIL 23-05-23

level·2023년 5월 23일

TIL

목록 보기
7/95

1. TIL 특강
2. 배포 문제 해결
3. js 문법 종합반 2주차
4. js 문법 종합반 3주차 (~ing)


1.ㅤ
문시해알 : 문제, 시도, 해결, 알게된 것
시도, 알게된 점을 자세히
하루종일 강의만 듣는것은 도움이 안됨
나만의 시행착오를 거치면서 복습하는 것이 도움이 됨
강의만 들었다면 예제코드를 그대로 치지 말고 다르게 쳐보고 오류 해결해 볼 것


2. ㅤ
2-1.requirments 에서 pywin (aws 컴퓨터에 리눅스를 까는데 pywin은 window에서 python을 실행하기 위한 코드. 필요x) 삭제

pywin32==305 또는 pypiwin32==201 

2-2. python 버전 확인 후 업로드
새 터미널 -> 버전 확인 명령어 입력

python --versoin

나는 3.8.6 으로 나와서 init 설정에서 3.8을 선택했다.


3.

  • es6?
    2015년에 대규모 변경된 효율적인 문법 시스템

  • 구조분해할당 : destructing(de + structure + ing)

(1) 배열의 경우

let [value1, value2] = [1, 'new'];

(2) 객체인 경우

let {name, age} = {
    name: 'nbc',
    age: 30,
};

새로운 이름으로 할당

let { name: newName, age: newAge } = user;
  • 단축 속성명 : property shorthand
    key - value가 똑같으면 생략 가능

  • 전개 구문 = spread operator

let newArr = [...arr, 4];
let user2 = {...user};
  • 나머지 매개변수(rest parameter)
function exampleFunc(a, b, c, ...args) {
    console.log(a, b, c);
    console.log(args);
}
  • 탬플릿 리터럴(Template Literal) - ``안에 자바스크립트가 들어갈 수 있음
    ${testValue}



4. ㅤ

  • 데이터 타입
    a. 기본형 : 불변 // 변수 영역 메모리를 변경할 수 있음
    b. 참조형 : 가변 // 변수 영역 메모리를 변경할 수 없음

  • 메모리, 데이터
    a. 비트 : 0,1로 만드는 가장 작은 단위
    b. 바이트 : 8비트
    c. 메모리 : 바이트 단위의 식별자인 메모리 주소값

  • 식별자, 변수
    식별자 = 변수명
    변수 = 데이터

  • 변수 선언과 데이터 할당 : 변수영역과 데이터 영역을 나누어 저장. 데이터 영역에 할당한 데이터의 주소를 변수영역의 데이터에 주소로 저장

    • 값을 바로 대입하지 않는 이유:
      a. 자유로운 데이터 변환
      b. 메모리의 효율적 관리

    • 불변하다 : 데이터 영역 메모리를 변경할 수 없다.
      불변하지 않다 : 데이터 영역 메모리를 변경할 수 있다.

  • 가비지 컬렉터 : 더 이상 사용되지 않는 객체를 자동으로 메모리에서 제거하는 역할

  • 실행 컨텍스트 ( 스코프, 변수, 객체, 호이스팅 )
    - 콜스택 : 가장 위에 쌓인 컨텍스트와 완련된 코드를 실행하는 방법으로 코드의 환경과 순서 보장

    • 실행 컨텍스트 구성 순서

    코드실행 - 전역(in) -> 전역(중단) + outer(in) -> outer)중단) + inner(in) -> inner(out) + outer(재개) -> outer(out) + 전역(재개) -> 전역(out) -> 코드종료

  • 실행 컨텍스트 객체에 담기는 정보

  1. VE : record + outer, (Snapshot)
  2. LE : =VE, 변경사항 실시간 반영

    실행 컨텍스트를 생성할 때 VE에 정보를 먼저 담은 다음, 이를 그대로 복사해서 LE를 만들고 이후에는 주로 LE를 활용

  • 호이스팅 : 변수 정보 수집 과정을 이해하기 쉽게 설명한 가상개념

    • 규칙
    1. 매개변수 및 변수는 선언부를 호이스팅
    2. 함수 선언은 전체를 호이스팅
    3. 함수 표현식을 활용하는 습관을 들일 것
  • 스코프 : 변수가 어디까지 영향을 미칠 수 있나

  • 스코프 체인 : 식별자의 유효범위를 안에서부터 바깥으로 차례로 검색해나가는 것

    1. outer는 현재 호출된 함수가 선언될 당시의 LE를 참조한다
    2. outer는 항상 오직 자신이 선언된 시점의 LE를 참조하고 있으므로 가장 가까운 요소부터 차례대로 접근 가능하다
    3. 결론 : 무조건 스코프 체인 상에서 가장 먼저 발견된 식별자에게만 접근 가능

    각각의 실행 컨텍스트는 LE 안에 record 와 outer를 가지고 있고, outer 안에는 그 실행 컨텍스트가 선언될 당시의 LE 정보가 다 들어있으니 scope chain 에 의해 상위 컨테긋트의 record 를 읽어 올 수 있다.

  1. ThisBinding
    this 는 실행 컨텍스트가 생성될 때 결정(bind) 됨.
    = this는 함수를 호출할 때 결정됨
  • 전역 공간에서의 this : window(브라우저) / global(node 환경)
  • 메서드로서 호출할때 : 전역객체(함수) / 호출의 주체(메서드)
  • 함수/메서드 호출 구분 : . []
  • 매서드 내부 함수에서 : 예외 없이 함수로서 독립적으로 호출할 때는 항상 전역객체를 가리킨다.

0개의 댓글