Trip to JavaScript(8)
-
[Revisit JS] 자바스크립트 엔진은 어떻게 인터프리터의 단점을 해결했는가?
가장 쉽게는 이렇게 답을 얻었다. 원초에 질문은 사실 이 것은 아니었다. 1. 컴파일러 언어와 인터프리터 언어의 차이가 뭘까? 차이는 기본적으로 언어를 해석하는 프로세스가 다르다는 점이다. 컴파일 언어는 컴파일하는 과정을 거쳐 코드를 실행한다. 컴파일이란 아래와 같다. 단순하게 우리의 소스 코드를 컴퓨터가 읽을 수 있는 코드로 변환하는 것을 컴파일이라고한다. 인터프리터 언어의 경우 컴파일처럼 기계어로 번역하는 과정을 따로 갖지 않고 한 줄씩 읽어가면서 번역하고 실행을 시킨다. 여기서 단점은 매번 실행시 번역을 하다보니 코드 실행 속도가 느릴 수 밖에 없다. 컴파일의 경우 컴파일 과정을 거치고 실행 파일이 생성되어 다음 실행 시 빠르게 동작할 수 있다. 코드를 수정하면 그 부분만 재컴파일하기 때문에 별 문..
2023.09.05 -
[오늘의 이슈] 단순 할당으로 변수 생성이 가능하다는 걸 이제 알았다.
나동빈좌의 강의를 듣다가 아래와 같은 예시를 만났다. d = new Array(100).fill(0); function fibo(x) { if (x== 1 || x == 2 ) { return 1; } if(d[x] != 0 ) { return d[x] } d[x] = fibo(x - 1) + fibo(x-2) return d[x] } console.log(fibo(10)) d에 바로 할당을 해주었는데 선언문 없이 코드가 돌아간다는 점이 매우 이상하게 느껴졌다. 놀랍게도 코드가 돌아간다. 그리고 d는 전역 객체인 window에 바인딩 되어 있다. 정답은 아래와 같다. https://ko.javascript.info/variables 변수와 할당에 대해서는 기본 내용이라 그냥 넘어가곤 했는데 이런 사실을 ..
2023.08.11