在线阅读地址:https://m.zhangyue.com/readbook/12567484/5.html
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文档,由于大,所以不适合全部放在存储器中处理。
——百度百科
这时候我们已经可以写一个不错的网站了,可以给网站添加很多的事件。
这里的事件指与用户之间的交互。列如:点击的时候会发生什么(点击事件),鼠标失去聚焦之后会发什么
最后前端到底应该怎么学才好?
如果你打算靠自己摸索自学,那么你首先要了解学习前端的基本大纲,这是你将要学习的主要内容,理解以及掌握好这些内容,便可以找到一份初级的前端开发工作。你还需要有一套完整的前端学习教程,作为初学者最好的方式就是看视频教程学习,初学者容易理解接受。
不要选择买书学习,这样的方式没有几个人能学会,基本都是看不下去书,也看不懂书。如果喜欢看书的学弟,可以买一些经典的书籍作为辅助即可,主要还是以看教程为主。每天抽出固定几个小时学习,做好长期学习的准备。学习编程并不是每天光看视频,你学习编程最重要的目的是为了编写软件产品,提供给大众使用,所以用手写出代码实现功能才是我们要做的事情。