框架中的纯运行时、运行时+编译时、纯编译

文章类型:Javascript

发布者:hp

发布时间:2023-05-06

设计框架时,主要有纯运行的、运行时+编译时、纯编译的,整理一下三者的区别

一:纯运行时

1:定义:指的是程序的代码在运行时才被解释执行,而没有经过编译器的转换过程。一般用于脚本语言等动态语言,程序在每次运行时都需要解释执行,因此可能会导致一定的性能损失

2:代码,运行时,JavaScript 解释器会动态地解释代码,并执行相应的操作

function sayHello() {
  console.log("Hello, world!");
}

sayHello();

二:运行时+编译时

1:定义:指的是程序在运行时需要执行编译过程。一般用于即时编译(Just-In-Time Compilation,JIT)技术,程序在运行时会先被解释执行,但是同时也会被编译器编译成机器语言,以提高程序的性能

2:代码,需要动态生成一部分代码,并在运行时进行加载和执行

import _ from "lodash";

function component() {
  const element = document.createElement("div");

  element.innerHTML = _.join(["Hello", "webpack"], " ");

  return element;
}

document.body.appendChild(component());

三:纯编译时

1:定义:指的是程序的代码在编译时就被转换成机器语言,生成可执行文件,而没有经过运行时的解释执行。一般用于静态编译(Static Compilation)的语言,具有较高的性能。需要考虑不同的操作系统、处理器等因素,生成的可执行文件可能不具有跨平台性

2:代码,通过编译器将代码转换成可执行的 JavaScript 代码

function sayHello(name: string) {
  console.log(`Hello, ${name}!`);
}

sayHello("world");