초보자 자바스크립트 엔진 호출 방법을 이해하고 코딩하는 메모

처음에


  • 프로그래머 경력에 비해 슈퍼 JS 초보자
  • 메모이므로 잘못된 부분, 오자 탈자의 가능성이 있습니다
  • 어떤 언어라도 그렇습니다. 그러나 감각의 차이는 누구나 있습니다

  • js 디버깅



    하고 있다는 것을 알지만

    옛날부터 컨텍스트 스위치



    라고 하는 것이 있어, 이것은, 실행하고 있는 프로세스를 버려 두고, 필요하게 되었을 때 내어 와 계속한 처리를 정상적으로 움직여 놓는 것.

    js로 말하면



    예를 들어, 스파이더 원숭이라든지 V8과 같은 엔진이 변수 등의 초기화시, 그 실행 컨텍스트의 객체에 변수나 함수의 초기화된 것 등을 버린다.
    다만, 여기에서 주의해 두고 싶은 것이, 변수·함수의 선언·초기화 처리는 실시하지만, 함수안에 존재하는 로컬 변수에 관해서는 선언에 머물러, 초기화까지는 실시하지 않는다고 하는 것. 당연한 이야기지만, 이해하고 쓰지 않았다고 생각하지 않는 undefined를 일으킬 가능성이 있다.

    샘플 코드를 작성해 보았다.
    magic라는 숨겨진 맛을 믹스한 것을 낳는 코드입니다. 내용은 아무래도 좋지만
    function make(val) {
      var name = name,
          magic = '';
      function mixin() {
        console.log(magic + name);
      }
      mixin();
    }
    make('ジュース');
    

    make 함수에 중단 점을 넣어 보면
    코드가 실행될 때까지는 make 함수 안에 있는 name,magic 과 같은 변수는 초기화되지 않고 undefined 된다. mixin의 범위의 클로저로서도 아직 초기화는 되지 않고



    그런 다음 make 함수에 스텝 인하면
    name,magic 변수가 초기화되고 각 값이 할당됩니다. 클로저로도 값이 들어있다.



    이 후에는 계속 VM 안에 들어가서 console이 불려 name과 magic의 합한 문자가 출력된다

    뭐 이 녀석 당연한 말을 하고 있어, 되어 있을지도 모릅니다만. 글쎄, 그래, 정말 당연한 이야기.

    실제로 함수가 불릴 때까지는 함수내에 있는 변수는 초기화되어 있지 않아, 라고 하는 초초심자 전용의 기사이므로. 서버 사이드 중심에 하고 있고, 버그 없는 정도로 일단 JS의 움직임 알고 이렇게 사람을 위한 기사입니다.

    좋은 웹페이지 즐겨찾기