最后
今天的文章可谓是积蓄了我这几年来的应聘和面试经历总结出来的经验,干货满满呀!如果你能够一直坚持看到这儿,那么首先我还是十分佩服你的毅力的。不过光是看完而不去付出行动,或者直接进入你的收藏夹里吃灰,那么我写这篇文章就没多大意义了。所以看完之后,还是多多行动起来吧!
可以非常负责地说,如果你能够坚持把我上面列举的内容都一个不拉地看完并且全部消化为自己的知识的话,那么你就至少已经达到了中级开发工程师以上的水平,进入大厂技术这块是基本没有什么问题的了。
还有剽悍一小兔的《JavaScript百炼成仙》
在线阅读地址:m.zhangyue.com/readbook/12…
JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。
——百度百科
上面的这段话中我标注了几个重点,这里我调整了一下顺序:
-
编程语言
-
脚本语言
-
解释型
-
函数优先
-
原型编程
-
面向对象
而JavaScript由三个部分组成:
-
ECMAScript
-
文档对象模型(DOM)
-
浏览器对象模型(BOM)
这里会介绍前三个理论概念,剩下的会在之后的文章中详细讲解。
编程语言
先来第一个概念,编程语言,那什么是编程语言?编程语言又能干什么?
我们把编程语言 这个名词拆开来看 他是由 编程 和 语言 构成的。
这里的 编程 说白了就是让计算机照我说的做,那怎么像计算机传达我的意思呢? 这就需要用 语言 来沟通了。
综上所述:编程语言 就是一种人和计算机都能读懂的一门语言,用于双方的沟通交流。
为了使计算机能够理解人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。
——百度百科
语言是人与人之间进行沟通交流的表达方式
——百度百科
编程语言(programming language)可以简单的理解为一种计算机和人都能识别的语言。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。
——百度百科
pass:HTML是标记语言!!不是编程语言!!!
脚本语言
那我们知道了编程语言是什么,那怎么又冒出一个脚本语言来了?
说到脚本语言,我们又不得不扯一下关于编程语言的编译系统。
根据《深入理解计算机系统》一书中的介绍,一个完整的翻译过程应该包含如下的四个阶段:
预处理阶段 -> 编译阶段 -> 汇编阶段 -> 链接阶段
经过这一系列的操作之后我们的代码才能运行,这样就很麻烦。为了解决这一问题,脚本语言诞生了。
脚本语言不需要编译器,而需要一个翻译器。
编程语言和脚本语言的最大区别:编程语言是把程序员所定义的代码翻译成计算机所认识的二进制代码的工具, 脚本语言是解释执行的(如写的前端代码过能浏览器这个解释器,把代码呈现出web界面,这就是在运用脚本语言,进行编程)
——稀土掘金·Angelia
解释型
在上面说到了脚本语言使用的是解释器,现在我们来讲一下什么是解释型语言。
-
有的编程语言要求必须提前将所有源代码一次性转换成二进制指令,也就是生成一个可执行程序(Windows 下的 .exe),比如C语言、C++、Golang、Pascal(Delphi)、汇编等,这种编程语言称为编译型语言,使用的转换工具称为编译器。
-
有的编程语言可以一边执行一边转换,需要哪些源代码就转换哪些源代码,不会生成可执行程序,比如 Python、JavaScript、PHP、Shell、MATLAB 等,这种编程语言称为解释型语言,使用的转换工具称为解释器。
相对于编译型语言存在的,源代码不是直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。比如Python/JavaScript / Perl /Shell等都是解释型语言。
——百度百科
学习一门语言不止要学习他的语法和流程控制语句,更重要的是要学习他的思想。
在上面我们简单的介绍了一下JavaScript,我们知道了他是一门脚本语言,也知道了他和C语言(编译型语言)的区别。现在我们来讲一下JavaScript的一些作用。
作为一门编程语言,他必然可以然我们和计算机进行沟通,但是这种沟通主要是面对浏览器。
这里要再提一下JavaScript的构成:
-
ECMAScript (语法和基本对象)
-
文档对象模型(DOM)
-
浏览器对象模型(BOM)
ECMAScript
首先我们先要学习ECMAScript,也就是JavaScript的基本语法和内置对象。
完成了这一阶段差不多就可以用JavaScript来实现一些像C语言一样的流程控制if for这样的结构,这时候我们也可以用JS来写一下算法题了。但是这个时候JS真正的魅力还没有展示出来。
ECMAScript是由网景的布兰登·艾奇开发的一种脚本语言的标准化规范;最初命名为Mocha,后来改名为LiveScript,最后重命名为JavaScript。1995年12月,升阳与网景联合发表了JavaScript。1996年11月,网景公司将JavaScript提交给欧洲计算机制造商协会进行标准化。ECMA-262的第一个版本于1997年6月被Ecma组织采纳。ECMA Script是ECMA-262标准化的脚本语言的名称。尽管JavaScript和JScript与ECMAScript兼容,但包含超出ECMA Script的功能。
——百度百科
文档对象模型(DOM)
DOM操作是JS的核心,在这里我们会学习用JS代码去操作HTML和CSS,这是JS的精髓,同时我们要去理解DOM树这个概念。
文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展置标语言的标准编程接口。它是一种与平台和语言无关的应用程序接口(API),它可以动态地访问程序和脚本,更新其内容、结构和www文档的风格(HTML和XML文档是通过说明部分定义的)。文档可以进一步被处理,处理的结果可以加入到当前的页面。DOM是一种基于树的API文档,它要求在处理过程中整个文档都表示在存储器中。另外一种简单的API是基于事件的SAX,它可以用于处理很大的XML文档,由于大,所以不适合全部放在存储器中处理。
——百度百科
这时候我们已经可以写一个不错的网站了,可以给网站添加很多的事件。
这里的事件指与用户之间的交互。列如:点击的时候会发生什么(点击事件),鼠标失去聚焦之后会发什么
pass:DOM树这个结构对于计算机世界来说是意义非凡的。他用标签的形式为我们的文本添加语义,从而让文本有不同的意义。不止存在于网页,还有一个很好的体现就是office三件套(
word、excel、ppt),试试创建一个office的文件,随便输入点内容,设置点样式然后把他的后缀名改成.zip,再进行解压,之后你就会看到办公文件的本质。
浏览器对象模型(BOM)
BOM操作也是一个重点,主要是与浏览器进行交互的方法和接口。
BOM体系结构图如下:
BOM提供了一些访问窗口对象的一些方法,我们可以用它来移动窗口位置,改变窗口大小,打开新窗口和关闭窗口,弹出对话框,进行导航以及获取客户的一些信息如:浏览器品牌版本,屏幕分辨率。但BOM最强大的功能是它提供了一个访问HTML页面的一入口——document对象。也就是说BOM提供了DOM操作。
[
最后
今天的文章可谓是积蓄了我这几年来的应聘和面试经历总结出来的经验,干货满满呀!如果你能够一直坚持看到这儿,那么首先我还是十分佩服你的毅力的。不过光是看完而不去付出行动,或者直接进入你的收藏夹里吃灰,那么我写这篇文章就没多大意义了。所以看完之后,还是多多行动起来吧!
可以非常负责地说,如果你能够坚持把我上面列举的内容都一个不拉地看完并且全部消化为自己的知识的话,那么你就至少已经达到了中级开发工程师以上的水平,进入大厂技术这块是基本没有什么问题的了。