JavaScript简介
前言
首先,JavaScript和Java语言没有任何技术上的关联,尽管在某些概念和使用逻辑上有部分相同(都是应用在计算机系统上的编程语言,最底层的结构和内部逻辑甚至是语法逻辑肯定有相同的地方),但仍旧没什么关系。
如果硬要说关系的话就是蹭热度的关系。JavaScript最早的名字叫做LiveScript,当时的Java语言虽然进入了一段低谷期,但是瘦死的骆驼比马大,市场依旧比JavaScript良好。由于在市场推广策略的原因,这两个语言就开始了联合推广:LiveScript更名为JavaScript(其实是Script和Sun公司合作,迫不得已的改名),蹭到了热度的Script开始从低谷期逐渐攀升的趋势,所以这个名字就一直流传下来。
相关概念简介
浏览器简介
浏览器的种类在此不做赘述,主要说明浏览器的组成部分:
- shell:外壳,单纯的理解为展示出来的部分;
- 内核:
- 渲染引擎(绘制):这一部分只要是识别前端网页语法(HTML、CSS等),然后将网页渲染(绘制)在浏览器页面上,最终展示给用户;
- js引擎:负责解析JavaScript语言的引擎;
- 其他模块:……。
浏览器内核
首先列举一下市场上的主流浏览器:
主流浏览器 | 内核 |
---|---|
IE | trident |
Chrome | webkit/blink |
FireFox | Gecko |
Opera | presto |
Safari | webkit |
JavaScript语言简介
JavaScript语言属于解释性语言(即:不需要编译成可执行文件),例如:Java语言运行在JVM中,这种情况只需要将Java语言解释成为JVM可以运行的文件就可以。
【注】:Java语言是编译-解释型语言,在此仅将Java语言中的解释性概念进行说明。
接下来说明两种语言类型的对比:
- 编译:
- 优点:快(整体编译后在执行);
- 不足:移植性较差。
- 解释:
- 优点:支持跨平台(会被解释为机器码直接在计算机中运行);
- 不足:稍微慢一些(在大型项目中可能会有体现)。
我们所熟知的Java语言并不属于这两种语言类型之一,它属于编译-解释型语言。
首先,Java语言会通过命令javac
将文件编译成为.class
文件;然后在通过JVM(Java虚拟机)将.class
文件解释为机器码,直接在计算机中运行。
JavaScript语言还有一点需要注意, 它是单线程执行的。具体什么是单线程、多线程,甚至是线程,大家可以去看我的Java线程笔记,链接如下:
至于我们在后续使用JavaScript制作的一些小案例中可能会出现很多同时运行的模块,貌似违反了JavaScript单线程的特性,但实际上并没有。CPU处理计算机指令的速度很快(具体有多快就不详细说明了),他可以在单位时间内多次切换处理不同的命令,而由于切换的速度太快,我们的肉眼是反应不过来的,所以感觉上像是在同时进行,然而实际上CPU在一个时间点只能处理一个命令。
现在的JavaScript语言一共包括三个部分,具体如下:
- ecmascript:属于JavaScript原生的部分,只能完成一些数据类型的定义(对象也是数据类型)以及数据的处理;
- DOM:操作文档的(比如页面中的HTML代码和CSS的样式代码),是由浏览器提供的部分;
- BOM:是用来操作浏览器的部分。
总结
本篇笔记仅记录了JavaScript基础认知的一些概念,在未来工作的时候可能一毛都用不上,不过面试过程中,尤其是一面(海选)的时候会问一些平时我们不注意的知识点来淘汰一些仅仅会使用JavaScript语言做开发的同学,二面(复试/笔试)的时候会把一些什么都不会,只是背过面试宝典的同学淘汰掉。
说一点题外话,其实小厂都只是需要一些会做开发的,至于你对知识点领悟到什么深度,他们不感兴趣,反正大多数应届生几年内只能做码农,所以大多数小厂的一面(海选)都是很恶心的,非得问一些和工作一分钱关系都没有的知识点边栏,美其名曰:看重你的学习能力以及未来发展目标的明确程度,其实就是又当又立。小厂都知道:一般应届生不可能在小厂待很久,一有机会就想着冲进大厂或者跳槽去其他公司,因为他们没有能留住人的福利待遇和长久的技术发展,所谓的公司人才培养云云都是画大饼,所以同学们要有选择的实习和入职。
应届生找工作最好是找到入职开始会有较长时间的人才培养(一般为半个月到一个月的时间,当然是免费的那种),这样的公司有一定的自信可以把你留下来,同时也是真的想让你在短时间内有较快的成长(公司都不在乎每个月给你发工资让你带薪学习,你还怕它给不了你想要的福利待遇?)。
当然,找工作的时候不单单只看这一方面,还有一些细节方面需要注意,在此不做赘述。