web 프로그래밍/javascript
-
[javascript] javascript 는 인터프리터 언어?web 프로그래밍/javascript 2024. 10. 19. 15:04
javascript는 많은 개발자들이 아직도 인터프리터 언어로 인식 하고 있습니다. 저도 그렇게 생각했었고요. 하지만 리액트 및 javascript 를 학습하다보니 javascript 는 인터프리터만 사용하는게 아니고 JIT(Just-In-Time) 컴파일러를 사용한다고 하네요. 자바스크립트의 초기 역사에서는 인터프리터 언어로서, 소스 코드를 한 줄씩 읽고 실행하는 방식으로 동작했지만, 최신 자바스크립트 엔진(예: V8, SpiderMonkey 등)은 성능 최적화를 위해 JIT 컴파일 기술을 도입했습니다. 이로 인해 자바스크립트는 다음과 같은 방식으로 처리됩니다.초기 해석 (Parsing): 먼저 자바스크립트 코드를 읽어서 구문 트리(Syntax Tree)를 생성합니다.바이트코드로 변환: 이 구문 트리를..
-
[javascript] isNaN() 과 Number.isNaN() 의 차이점web 프로그래밍/javascript 2024. 9. 22. 17:13
자바스크립트에서 숫자 타입인지 확인할 때 isNaN 을 사용했는데 ES6 에서 추가된 Number.isNaN 과 무엇이 다른지 잘 모른상태로 사용하다가 이번에 자바스크립트 기본부터 다시 학습하며 어떤점이 다른지 확인해보았습니다. isNaN과 Number.isNaN은 둘 다 숫자가 NaN(Not-a-Number)인지 여부를 확인하는 함수이지만, 동작 방식과 검사 범위에서 차이가 있습니다.1. isNaN()전역 함수로, 입력값이 숫자가 아닌 경우에도 내부적으로 암묵적 형 변환을 거쳐 NaN인지 여부를 판단합니다.즉, 숫자로 변환 가능한지 여부를 먼저 검사하고, 그 결과가 NaN이면 true를 반환합니다.동작 방식:입력값을 먼저 숫자로 변환하고, 변환된 값이 NaN이면 true, 그렇지 않으면 false를 반..