持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第1天,点击查看活动详情
前言
在重新学习Javascript之前,重新认识一下编程语言个人感觉是非常有必要的,了解js和其他语言的区别
计算机语言的发展历史(简)
计算机语言从诞生至今一共经历了以下三个阶段: 机器语言 ---> 汇编语言 ---> 高级语言
机器语言
相信大家都清楚,计算机都是基于二进制来进行计算的,机器语言就是二进制的,由0和1按一定规则排列成的一个指令集,计算机可以直接识别和运行,不需要任何转换,对于计算机来说是最友好的,但是对开发者就极其不友好了, 二进制的机器语言可阅读和理解性都是很困难的,开发复杂一点的计算需求也会变的极其艰难。如:1000101010
汇编语言
于是乎,汇编语言就应运而出了,人们为了解决机器语言难以理解和阅读的问题,将一些特定的二进制的指令集和数据使用特定的单词来描绘,这样代码就会变的易于阅读,人们也不用再去理解复杂难记的二进制指令,程序的效率也越来越高。现在的汇编语言有:mov,ax,bx等一些汇编指令
高级语言
随着半导体行业的发展和人类需求的提升,汇编语言已经渐渐不能满足人们的要求,于是面向对象和面向过程的高级语言,如面向过程的:c++和c,面向对象的java, c#, javascript, python等,高级语言的思维越来越接近人类的思维,但计算机是不认识这些高级语言的,还需要转为成机器语言让计算机去运行
虽然高级语言越来越接近人类的思维,对人类越来友好,那么问题来了, 计算机不认识这些高级语言,还是需要转换为机器语言来执行,这个过程是怎样的?不同的高级语言又有什么不同呢?我们继续往下看
编译型语言和解释型语言
高级语言根据代码执行过程的不同,分为了两种类型,编译型语言和解释型语言
编译型语言
编译型语言是对源码进行一次编译后转换为机器码,就不再进行编译了,会形成一个可执行文件,例如windows系统的exe文件,c和c++都是编译型语言,他们执行速度快,效率高,但是也有弊端,一是编译型语言开发难度较大,二是编译形成的可执行文件不能跨平台。exe不能在linux和macos上执行,反之亦然
解释型语言
顾名思义,就是一边编译一边执行的语言叫解释型语言,例如java, c#等,因为需要一边编译一边执行,所以速度相对于编译型语言就会慢很多,解释型语言完美的解决了跨平台的问题, 只要有对应的运行环境就可以在任何平台上运行。
解释型语言JavaScript
没错,我们JavaScript也是一种解释型语言。他有运行环境,一个是浏览器,一个是nodejs,它们内部都是同一个引擎,用来编译js代码,它就是大名鼎鼎的v8引擎,让我们下一章来对这个v8引擎来一探究竟!