Js 작동 방식

이해해야 할 사항:


  • Js의 이상한 행동
  • 변수란 정확히 무엇입니까?
  • 불변성을 사용하여 더 나은 코드를 작성하는 방법
  • 변수를 선언하는 더 나은 방법
  • Js가 코드를 실행하는 방법

  • Js의 기본 데이터 유형


  • 문자열
  • 번호
  • 부울
  • 정의되지 않음

  • Js의 기본이 아닌 데이터 유형


  • 물체
  • 어레이
  • 기능

  • 프리미티브와 비프리미티브의 주요 차이점:


  • 기본 데이터 유형은 변수의 실제 값을 보유합니다. 기본이 아닌 데이터 유형은 변수 값의 메모리 위치/주소를 보유합니다.
  • 기본 값은 변경할 수 없습니다(불변). 기본이 아닌 데이터 유형 값은 변경할 수 있습니다.
  • 원시 데이터 유형은 값으로 저장되고 비원시 데이터 유형은 참조로 저장됩니다.

  • We will be going into the process of what steps Javascript takes when it sees your code for the first time.



    게양


  • 호이스팅은 실제로 프로그램을 실행하기 전에 변수 및 함수 선언을 찾는 JavaScript의 기본 동작입니다
  • .
  • 변수 값은 신경쓰지 않습니다. 모든 것은 프로그램에 어떤 변수가 있는지 알고 싶어합니다.

  • 실행 컨텍스트


  • 실행 컨텍스트(EC)는 JavaScript 코드가 실행되는 환경으로 정의됩니다. 환경이란 JavaScript 코드가 특정 시간에 액세스할 수 있는 변수를 의미합니다.
  • 실행 컨텍스트는 Js가 함수 실행을 시작할 때 변경되며 해당 컨텍스트를 기능 실행 컨텍스트라고 합니다. 그렇지 않으면 기본적으로 전역 실행 컨텍스트입니다.

  • 실행 스택


  • 다른 프로그래밍 언어에서 "호출 스택"이라고도 하는 실행 스택은 코드 실행 중에 생성된 모든 실행 컨텍스트를 저장하는 데 사용되는 LIFO(후입선출) 구조가 있는 스택입니다.
  • JavaScript 엔진이 스크립트를 처음 발견하면 전역 실행 컨텍스트를 생성하여 현재 실행 스택으로 푸시합니다.
  • 엔진이 함수 호출을 찾을 때마다 해당 함수에 대한 새 실행 컨텍스트를 생성하고 스택 맨 위로 푸시합니다.

  • 변수 범위


  • JavaScript의 범위는 변수의 액세스 가능성 또는 가시성을 나타냅니다. 즉, 프로그램의 어느 부분이 변수에 액세스할 수 있는지 또는 변수가 표시되는 위치입니다.
  • 전역 범위
    스크립트를 실행하면 JavaScript 엔진이 전역 실행 컨텍스트를 생성합니다. 또한 함수 외부에서 선언하는 변수를 전역 실행 컨텍스트에 할당합니다. 이러한 변수는 전역 범위에 있습니다. 전역 변수라고도 합니다.
  • 로컬 범위
    함수 내에서 선언하는 변수는 해당 함수에 대해 로컬입니다. 이를 로컬 변수라고 하며 전역 범위에서 액세스할 수 없습니다.
  • 블록 범위
    let 또는 const를 사용하여 {} 블록 내에서 선언하는 변수는 해당 블록으로만 제한됩니다.

  • 기억하다:


  • 변경 값이 많은 코드는 예측할 수 없으며 버그를 파악하기 어렵습니다.
  • 불변성은 코드에서 수행된 변경 사항을 추적하여 더 견고하게 만드는 데 도움이 됩니다.
  • let 및 const는 변수를 선언하는 더 나은 방법입니다.

  • 메모




    // //what is variable
    
    // //0. - it shows information
    // //1. - datatypes ( primitive and non-primitive )
    
    // // var arr = [1, 2, 3];
    
    // // arr[0] = "4";
    
    // // console.log("arr:", arr);
    
    // //arr vs arr[0]
    
    // //1. arr - whole array
    // //2. just showing an element
    
    // //array values can be changed (mutable)
    // //string values cannot be changed ( immutable )
    
    // //
    // //big information - arrays, objects
    // //small information - number, string, boolean
    
    // //how banks store wealth?
    
    // //cash -> yes
    // //gold -> yes
    // //real estate -> documents -> yes
    
    // //Javascript
    
    // //string -> yes
    // //number -> yes
    // //objects, arrays ->
    
    // //two similar objects
    
    // //create two copies
    // //you create only one and you expose its location
    
    // //no storage, it points like a wire
    
    // //primitive - it directly points to value -> by value
    // //non-primitve - it points to adress( location ) -> by reference
    
    // var arr = [1, 2, 3, 4];
    
    // //what arr is pointing - address.
    
    // var arr2 = arr;
    
    // arr2[0] = 4;
    
    // //have we touched arr
    
    // console.log("arr:", arr);
    
    // //becuase they belong to same room ( address )
    
    // //room of arr2 and arr is same
    
    // //pablo
    // //pablo jip
    // //pablo airtel
    
    // var admin = {
    //   name: "chandu",
    // };
    
    // Object.freeze(admin);
    
    // admin.name = "nandu";
    
    // //make admin immutable ( not changable)
    
    // console.log("admin:", admin);
    
    function test() {
      var i = 10;
    }
    
    console.log(i);
    
    test();
    


    Thank you for reading :))

    don't forget to share your knowledge in comment section.

    "Life isn't sprint, It's a Marathon"



    내 블로그가 마음에 든다면 에서 나와 연결하고 나를 팔로우할 수 있으며 내Hashnode Blog를 확인할 수 있습니다.

    좋은 웹페이지 즐겨찾기