Cómo funciona el motor de JavaScript

Hoy vas a entender de una vez por todas c ómo functiona el JavaScript 엔진 paraque sepas que pasa con cada l ínea de c ó digoque는 프로젝트를 설명합니다.
“Comencemos!👩‍💻

오토바이


Los motores sonesas programas que se encargan de convertir có digo de alto nivel(Java Script, Python, c)a có digo de bajo nivel(기계 코드, 바이트 코드).Cada navegador tiene su propio motor para compiler e interpretar JavaScript:
  • V8 엔진(구글 크롬),el cual también es motor de Node.js(En este nos basaremos para la explicación).
  • 거미원숭이(Mozilla Firefox).
  • 맥륜 (마이크로소프트 테두리).
  • JavaScriptCore(Apple Safari).
  • La llegada de V8 y su importancia


    El día 2 de septiembre de 2008 se lanzóla primera versionón del motor V8,sin saber del todo que iban a ser El gran cambio en la interpretación de JavaScript en El navegador,este dejaría de ser tan lento como lo era.
    ?Cómo lo hicieron?
    Entre todas las razones,la principal estáen los conceptos compileador e intérprete.
    El compilador es El programa encargado de convertir código escrito en un lenguaje de programación a otro lenguaje de programación de bajo nivel.Por ejemplo,el compileador del V8 es el encargado de transformar JavaScript a Bytecode y luego a Machine Code.
    Por otra parte,el intérprete es el encargado de revisar el código línea Por línea y ejecutarlo directemente en la máquina de destino.Cabe resaltar que los intérpretes también realizan algún trabajo de traducción al igual que los compiladors.

    Entendiendo como funciona V8



    Imagen tomada del Curso Profesional de JavaScript en Platzi.


    Cuando llega un script al navegador el motor V8 inicia un proceso el cual consta de:
  • Recibir el código JavaScript como un flujo de bytes UTF-16 y pasarlo a un decodificador de flujo de bytes(el cual hace parte del motor).
  • Parsear(transformar)el código y descomponerlo en tokens(los tokens son elementos de js como:let,new,símbolos de operaciones,functions,promises).
  • Gracias a el Previor parseo se Generations una estructura de datos en forma de árbol, obien, 추상적 문법 트리(AST).V8 cuenta con dos tipos de parseo que verás más abajo.
  • El intérprete recorre El AST y va generando El bytecode.
  • Luego de interpretar todo el código,el profiling data va evaluando el bytecode varias veces más y de esta forma descubre que puede enviarle al optimizar el código bytecode a machine code y asíse reemplaza el código base para ejecutar el código JavaScript más rápido y usar menos recursos.
  • El 최적화 컴파일러 encuentralospuntosdonde El códigosepuedeoptimizar.정적 최적화elcódigoqueserepitevariasveces.En caso de que la operación cambie por alguna razón,el código vuelve a la version front(la des optimizada).Esto se hace para consumir menos recursos y por lo tanto ejecutar el código más rápido.
    Por ejemplo,este código puede ser optimizado:
    function add(a, b) {
       return a + b;
    }
    
    for(let i = 0; i < 1000; i++) {
       add(i, i)
    }
    
    Cuando ese código se ejecute unas 50 veces,estarálisto para ser optimizado porque el profiling data sabe que no cambiará.
    Si se cambia el código por alguna razón:
    function add(a, b) {
       return a + b;
    }
    
    for(let i = 0; i < 1000; i++) {
       add(i, i)
    }
    
    add(1, "uno")
    
    Volveráa su versión front.

    파시오 호텔


  • 즉시 확인:
  • Encuntera Errors de sintaxis.
  • Crea el AST.
  • 시공 범위.

  • 지연 확인:
  • Doble de rápido que el eager.
  • crea el AST가 없습니다.
  • Construye scopes parcialmente.
  • El proceso de parse hace parte del 15%-20%del proceso de ejeucción asíque hay que tenerlo muy en cuenta.

    중심전기 차이


    Los motores de Los demás navegadores tienenen casi el mismo proceso de Ejeucción del V8 엔진 yaque fueron creados a partir de este.Cuentan solo con algunas pequeñas diferencias.Como por ejempo en las capas de optimización:
  • V8 엔진(크롬 도금): 1 Sola capa de optimización.
  • 거미원숭이(Firefox): Tiene 2 capas de optimización.
  • 맥륜(테두리): Tiene 2 capas de optimización.
  • JavaScriptCore(Safari):Tiene 3 capas de optimización.
  • Los de 2–3 capas se ejecutan un poco más lento pero se optimizan más rápido.

    결론


    "Eso 대기사항!Asífunciona el motor V8 de JavaScript desarrollado para el navegador Chrome.
    olvides practicar y nos vemos en el próximo post 없음🚀
    표지 이미지는 midu.dev 에서 제공합니다.학점이 더 필요하시면 저에게 연락 주세요.

    좋은 웹페이지 즐겨찾기