基础巩固:JavaScript基础总结
使用JavaScript
已经好几年了,由于工作主要是做服务端开发,在工作中逐渐发现JavaScript
的使用范围原来越广泛。在之前的几个项目中,公司配备了一个设计和一个前端,前端人员只会切图和排版,稍微复杂一点的功能还是的我们自己来,毕竟是要和后端交互,所以这个还是迈步过去的关口。之前只是在每次需要使用JavaScript
的时候去粗略的学习了一下,基本能完成所有的工作需求。不会的地方在github
上面找一些案例修改一下也能完美的运行。
今天,JavaScript
已经到了不得不学的地步,从前用户交互到UI框架,以及今天非常流行的VUE
,jQuery
,React
,nodejs
,H5游戏
,APP
等等,JavaScript
的身影已经无处不在,所以我们有必要抽时间来系统的梳理一遍。
如何学习JavaScript?
对于已经掌握一两门开发语言的同学都知道,学习任何一门语言不外乎学习这几个大类:
- 语言本身的原理,语法,数据类型,数据的操作,控制流程,逻辑判断,使用技巧
- 功能函数,系统类库,扩展类库
- 框架,设计模式,不同宿主环境编程
我们根据上面的学习思路来整理和总结JavaScript
从最基础到类库框架的使用和开发,以及一些该语言的编程思路,算法和技巧。在这里我们一定要注意一点,基础知识很关键。在这个浮躁的时代,人人都想着快速挣钱。很多人都是静不下心来进行一个系统的学习,认为我用到哪里就去看哪里。虽然JavaScript
入门是非常容易,后端的同学花一天时间过一遍就能开始写出一些简单的功能。但是想要精通非数年不可及也。大家一定要相信一点,在前端几百万从业人群里面,真正技术拿得出手的真的不超过15%。我带过很多徒弟也招过新人入职,在中国的就业竞争压力下,人人都想着速成,看到某个行业火热,就想一股脑挤进去,学习编程如果不是兴趣驱动,很多人都是没有办法坚持到最后的。
JavaScript基础篇
ECMAScript
是JavaScript
的标准规范,我们在编写程序的时候必定要按照这个规范来操作。到目前为止,已经发展到ES6和ES7了,每一次的版本升级都会产生一些新的支持和规范和浏览器的兼容解决方案。
我们的学习和续文按照以下流程来进行总结,从而建立一个系统化的知识体系。这里要注意,务必将基础部分掌握牢靠,磨刀不误砍柴功,只有将基础部分掌握并建立起系统的知识体系,在后面学习JavaScript
衍生的其他模式才能游刃有余。在学习JavaScript
之前请务必先系统的学习好HTML
和CSS
知识。
学习JavaScript
主要是学习以下几个方面:
- JavaScript本身的核心语法(ECMAScript)
- 浏览器对象模型 (BOM)
- 文档对象模型(DOM)
大家在这里应该明白了,ECMAScript
其实是JavaScript
的子集,我们所说的JavaScript
其实是在Web浏览器这个宿主环境上,JavaScript
包含了基本的核心,也就是ECMAScript
来标准化基本的语法,我们的宿主环境在web浏览器,所以在ECMAScript
的基础上有添加了和浏览器进行交互的扩展BOM
和对文档节点交互的DOM
。不光在JavaScript
里面才有ECMAScript
,比如大家耳熟能详的Node和Adobe Flash,所以ECMAScript
并不是参照web浏览器的,JavaScript
实现了ECMAScript
,Adobe ActionScript同样也实现了ECMAScript
。
ECMAScript
主要规定了以下几个方面的内容的描述:
- 语法
- 类型
- 语句
- 关键字
- 保留字
- 操作符
- 对象
文档对象模型(DOM)是针对XML但经过扩展于HTML
的应用程序编程接口。DOM
把整个页面映射为一个多层节点结构。HTML
或XML
页面中的每个组成部分都是某种类型的节点,这些节点又包含着不同类型的数据。在DOM
中,这个页面通过分层节点(元素),通过DOM
创建表示文档的树形图,开发人员获得了控制页面内容和结构的主动权。借助DOM
提供的API
,开发人员可以轻松自如的删除、添加、替换或修改任何节点。
浏览器对象模型(BOM),开发人员使用BOM
可以控制浏览器显示的页面以外的部分,但是它作为JavaScript
实现的一部分去没有相关的标准。这个问题在HTML5
中得到了解决,HTML5
致力于把很多的BOM
功能写入正是规范。从根本上将,BOM
只处理浏览器窗口和框架,但人们习惯上也把所有针对浏览器的JavaScript
扩展算作BOM
的一部分,以下就是这样的扩展:
- 弹出新浏览器窗口的功能
- 移动、缩放和关闭浏览器窗口的功能
- 提供浏览器详细信息的navigator对象
- 提供浏览器所加载页面的详细信息的location对象
- 提供用户显示器分辨率详细信息的screen对象
- 对cookie的支持
- 想XMLHttpRequest 和 IE的ActiveXobject这样的自定义对象
由于没有BOM
标准可以遵循,因此每个浏览器都有自己的实现。
JavaScript在HTML中的使用
// 引入外部脚本
<script type="text/javascript“ src="example.js></script>
// 执行代码段
<script>
// 代码段
</script>
javaScript
代码可以放在head
标签内,但是由于JavaScript
解析器是自上而下来执行代码的,所以如果你在head
里面写的JavaScript
代码里面包含获取元素节点,回导致找不到节点而出错,我们可以使用window.onload = function(){代码段}
来让整个文档解析完成以后再执行JavaScript
代码。最好的办法就是将外部脚本引入和内部代码都写到</body>标签前后是最好的办法。当然,我们除了直接引入外部脚本以外,还可以动态的从后端来获取JavaScript
执行代码和需要的Json
数据。比如我们在开发游戏的时候,对游戏的每个玩法可以进行动态的预加载,在后端来获取游戏的配置信息,然后作为响应数据响应给前台浏览器,来初始化游戏界面。
基本数据类型
字符串
数字
布尔值
数组
对象
操作符
运算符
条件操作符
逻辑运算符号
语句
if else
do while
while
switch
for
for in
label
break 和 continue
with
函数
内置函数
自定义函数
匿名函数
没有重载
作用域和内存
作用域链
函数作用域
堆内存和占内存
引用计数和标记清除
引用类型
使用对象
数组对象的方法运用
字符串的方法运用
创建和操作数组
理解JavaScript类型
日期类型
正则表达式
function类型
基本包装类型
定时器相关
未完待续....
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。