V8是由Google发布的一款脚本引擎,2008年随Chromium浏览器推出,其功能是将JavaScript代码即时编译为机器码。由于Google强大的软件优化能力,V8率先将JIT引入了浏览器界,而非传统脚本引擎所使用的解释执行,使得JavaScript在浏览器上的执行效率飞速提升。其他浏览器为了避免被甩开,也纷纷跟进,如Mozilla Firefox的SpiderMonkey、Safari的SquirrelFish、Opera的Carakan,均是诞生于这一时期。
几大浏览器激烈地你追我赶,使得JavaScript引擎成为一门显学,执行效率不断创出新高。但同时,由于网络环境的千变万化,代码复杂度也日益增加。2013年,Opera软件公司率先退出竞争,改为采用Blink+V8组合。2020年,微软也放弃自研内核路线,加入Chromium阵营。这一时期新创的浏览器,如Brave和Vivaldi,也纷纷选择了Chromium方案。只有Mozilla基金会和苹果公司,还在凭着KaiOS和iOS的预装优势,苦苦支撑。
V8的大跃进带来了一个副作用,就是JavaScript从一门不是很快的解释型语言,一跃变成了运行非常快的编译型语言。加上网络服务大发展期间培养起来的一大批JavaScript程序员,这门语言迅速破圈,风靡至今。如Node.js使用了V8引擎,成为服务端热门的开发框架。Electron等一系列跨平台框架允许使用JavaScript开发软件,并通过V8编译到本地。甚至还出现了asm.js这样的框架,可以将其他高级语言的代码编译成JavaScript以在网页上运行,这个框架后来被标准化成了WebAssembly。这场竞争,一举扭转了浏览器试图执行本地代码以提效的趋势,JS翻身成了开发语言一等公民,业内甚至产生了“一切能用JS重写的代码,最终都会用JS重写”这样的感慨。属于大前端的时代就此开启。