Javascript

· Javascript
크롬에서 쓰이는 JS 엔진인 V8 엔진은 C++로 구현되어 있고, 깃허브에 소스가 공개되어 있습니다 JS integer array는 V8 내부에서는 C++ array인데, 중간에 빈 value가 많은 경우(sparse한 경우) hash table로 구현됩니다 그래서 sparse한 array는 성능이 더 나쁘다고 합니다 JS array를 선언할 때 V8 내부에서는 length를 element 개수보다 더 크게 잡은 배열을 선언합니다 (dynamic array) 그래서 일반적인 상황에서 push() 를 O(1) 시간에 수행할 수 있습니다 공간이 부족할 경우 크기를 늘리는 공식(growth factor) - 약 1.5배로 늘림 new_capacity = (old_capacity + 50%) + 16 실제 코드..
· Javascript
Get started Javascript라는 네이밍은 마케팅을 위한 결과물 공식 이름은 ECMAScript TC39와 ECMA가 표준으로 지정 TC39 협회는 웹과 관련된 다양한 회사(브라우저, 디바이스 등)의 직원들로 구성 JS 표준은 웹에서 구현되는 것만 관여한다 모든 것이 JS는 아니다 alert(), getCurrentLocation() 등은 JS가 아닌 JS처럼 생긴 Web API fs.write() 등은 Node.js의 빌트인 모듈에서 나오는 api 메소드 console.log() 역시 꽤 많은 환경에서 지원하는 메소드일 뿐! 항상 JS 환경은 아니다 브라우저의 Dev tool(REPL - Read Evaluate Print Loop, console)은 실제 JS 환경이 아니다! 해결법에 대한..