JavaScript - 编译性还是解释性?
疑问
在JS的变量和声明式函数的提升看到了“预编译/预处理/预解释”中“预编译”这个字眼,产生了一个疑问:JS是熟知的解释性语言,但JS能被编译吗?
参考
- https://developer.mozilla.org/en-US/docs/Web/JavaScript : JavaScript (JS) is a lightweight interpreted or JIT-compiled programming language** with first-class functions.**
 - https://zh.wikipedia.org/wiki/JavaScript :** 在客户端,JavaScript在传统意义上被实现为一种解释语言,但在最近,它已经可以被即时编译(JIT)执行。**
 - https://stackoverflow.com/questions/26709524/javascript-compiled-language
 - https://www.quora.com/Is-JavaScript-a-compiled-or-interpreted-programming-language : JavaScript used to be purely interpreted but that was many years ago. Nowadays, it is JIT-compiled to native machine code in all major JavaScript implementations.
 - https://en.wikipedia.org/wiki/Chrome_V8 : V8 compiles JavaScript directly to native machine code before executing it, instead of more traditional techniques such as interpreting bytecode or compiling the whole program to machine code and executing it from a filesystem.
 - https://github.com/v8/v8/wiki/Introduction : V8 compiles and executes JavaScript source code, handles memory allocation for objects, and garbage collects objects it no longer needs.
 - https://softwareengineering.stackexchange.com/questions/138521/is-javascript-interpreted-by-design
 - https://segmentfault.com/a/1190000013126460
 - https://www.zhihu.com/question/31415286/answer/58022648
 
总结
chrome V8可以编译JS to native code
所以JS是一门解释性语言,有编译特性(取决于引擎)。另外,Python是解释性语言,也有编译特性(要查看具体原理)。
一般来说,JS先解析(例如进行变量、函数的提升声明),再运行。
JavaScript - 编译性还是解释性?的更多相关文章
- 编译性语言&解释性语言
		
计算机是不能理解高级语言.当然也就不能直接执行高级语言了.计算机仅仅能直接理解机器语言,所以不论什么语言,都必须将其翻译成机器语言.不论什么编程语言编写的程序归根究竟都是由底层机器的机器代码(01序列 ...
 - 通过Anuglar Material串串学客户端开发 - javascript编译和gulpfile.js
		
Angular Material不仅仅有本身框架的源代码,还有在这个框架上实现的一个应用docs.更为强大的是,这个应用是真正的产品网站:就是它的官网.我有理由相信,这个网站是从源代码直接发布的,从网 ...
 - 【前端知识体系-JS相关】你真的了解JavaScript编译解析的流程吗?
		
1. JS编译解析的流程 1.1 JS运行分三步 语法分析(通篇扫描是否有语法错误),预编译(发生在函数执行的前一刻),解释执行(一行行执行). 1.2 预编译执行分五步 创建AO对象(Activat ...
 - javascript编译与运行机理(1)--
		
随着学习js的深入就越想了解其内部的运行机理,看了很多文章,感觉下面总结的不错.但囿于个人水平,只是达到了理解层面,还不能提出自己的见解,只好把资料罗列出来,留待以后总结: 1.Javascript的 ...
 - 初赛Part1
		
计算机硬件 CPU CPU(中央处理器) = 运算器(ALC) + 控制器 + 寄存器, 主要任务是执行数据运算和程序控制. CPU的主要性能指标包括主频, 字长 ,高速缓存容量, 指令集等. 主频 ...
 - Java——Java是什么一门什么语言
		
解释型语言 源代码不能直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行: 程序不需要编译,程序在运行时才翻译成机器语言,每执行一次都要翻译一次: 解释性语言代表:Python ...
 - 多测师_python基本介绍001
		
python 一.python的介绍 python 是一门面向对象,解释型,动态类型语言 面向对象:在python中 一切皆为对象 解释型语言:边解释,边执行, 动态类型:就是检查是在运行才做的. 动 ...
 - Python的介绍与主要方向
		
1.1 编程与编程语言 python是一门编程语言,作为学习python的开始,需要事先搞明白:编程的目的是什么?什么是编程语言?什么是编程? 编程的目的: 计算机的发明,是为了用机器取代/解放人力, ...
 - python运算符及优先级顺序
		
python语言是一门脚本语言,支持面向对象.面向过程编程,兼具编译性和解释性的动态语言,整理出学习过程中一些基本Python运算符和运算符的优先级顺序. 一.算术运算符 运算符 描述 + 加 - 两 ...
 
随机推荐
- [转] Go 的并发模式:Context
			
[转] Go 的并发模式:Context tips:昨天看了飞雪无情的关于 Context 的文章,对 go 中 Context 有了一个初步的认识.今天看到一个 go 官方博客的关于 Context ...
 - [坑] js  indexOf is not a function
			
今天写js的时候,本来没有问题的代码突然出现了问题,就是本来下拉框里面在更新之后会出现内容的 但是并没有出现内容,按下F12 查看了Console之后发现确实是接收到了数据,但是却也报错了 内容是 我 ...
 - OO完结篇-第四单元小结
			
OO第四单元小结 一.作业架构分析. 1.第一次作业 本次作业需要完成UML类图查询. 难点在于初次接触UML,需要对UML进行一定程度的学习和理解. 思路主要是根据每个传进来的element获取其t ...
 - Go错误
			
1. error package main import ( "errors" "fmt" ) func main() { /* error:内置的数据类型,内 ...
 - C语言运算符详解
			
运算符是一种告诉编译器执行特定的数学或逻辑操作的符号.C 语言内置了丰富的运算符,并提供了以下类型的运算符: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 本章将逐一介绍算术运 ...
 - 每天进步一点点------SOPC PIO (一)
			
最近想使用Nios II里的并口PIO口进行双向操作,即需要输出的时候设置为输出方向,需要输入的时候设置为输入方向.在这期间,因为没认真仔细阅读参考文档,走了一点点的弯路.下面就简单的介绍下并行输入/ ...
 - 题解 P1717 【钓鱼】
			
P1717 钓鱼 贪心+堆的方法其他题解已经讲的很清楚了,这里放出萌新简洁的dp做法,如果有正确性问题希望大佬能够指出qwq #include<cstdio> using namespac ...
 - js实现上移下移
			
直接上代码 //上移 var $up = $(".up") $up.click(function () { var $tr = $(this).parents("tr&q ...
 - Python - 装饰器实现缓存
			
from functools import wraps def cache(func): cache = {} @wraps(func) def wrap(*args): if args not in ...
 - PHPCMS站内搜索功能实现方法汇总,一文解决PHPCMS站内搜索问题
			
1,https://blog.csdn.net/hzw19920329/article/details/80110673 点评:phpcms搜索功能实现方法,作者基于PHPCMS做个门户网站实现站内搜 ...