之前或多或少得在自己的开发中用到过js以及jQuery类库,了解得不深入,刚好最近在学校空闲时间比较多,想借着这段时间对JS编程知 识进行一个较为完整的学习,以便毕业出去之后找工作更有竞争力。我得js学习主要使用的《Javascript高级程序设计》,这本号称是 JavaScript方面超越经典的书(PS:经典的是“大犀牛”那本),在这里把JavaScript重要知识点进行一个总结,方便以后快速地复习,写的不好的地方 还望看到的盆友加以指正。
插播一个今天刚看到的一个有意思的图片:
2016年 JavaScript今年再次蝉联开发者最受欢迎技术(Most Popular Technologies )第一名
好了,废话太多了,切入正题:
一.完整的JavaScript由3部分组成:核心(ECMAScript),文档对象模型(DOM),浏览器对象模型(BOM)
- ECMAScript:ECMAScript是一种由ECMA(European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序脚本语言,它定义了这门语言的基础,与Web浏览器没有依赖关系,Web浏览器只是 ECMAScript实现可能的宿主环境之一。ECMAScript大概包含的组成部分有:语法,类型,语句,关键字,保留字,操作符,对象。
- DOM:中文名文档对象模型,它是针对XML但经扩展可用于HTMl的应用程序编程接口(API)。在这里的学习主要是利用DOM对HTML页面进行多层节点结构的映射。
- BOM:中文名浏览器对象模型,利用它可以访问和操作浏览器的窗口,但它作为JavaScript的实现部分却没有相关的标准,直到html5的出现,使得这个问题得到解决。
二.在HTML中使用JavaScript
按照惯例,所有<script>元素都应该放在页面的<head>元素中,这样也意味着必须等到包含在<head>元素中的JavaScript代码都解析和执行完成后,才开始呈现页面内容。这样势必存在当JavaScript代码太多后,使用这种方式会导致浏览器在呈现页面时出现明显的延迟,也即在延迟期间的浏览器窗口为一片空白。为解决这个问题,一般将<script>元素放在<body>元素页面的内容后面,即</body>结束标签之上。
引入JavaScript脚本一般来说可以直接使用<script>元素嵌入JavaScript代码,此时只需指定type属性即可:
<script type="text/javascript">
/*脚本*/
</script>
还有一种也是推荐使用的方法,利用src属性引入外部要执行的脚本文件:
<script type="text/javascript" src="相应文件的URL"></script>
这种方式具有可维护性高,可缓存等等优点,需要注意的是,带有src属性的<script>元素不应该在其<script></script>中间包含额外的js代码,若包含,额外的代码将被浏览器忽略。
<script>元素有两个只适用于外部脚本文件的属性,一个是的defer,另一个是async。
defer属性意为延迟,表明脚本在执行时不会影响页面构造,也即脚本会被延迟到整个页面都解析完毕后再运行。但注意浏览器还是会立即下载,并且延迟脚本总是按照指定的顺序执行。
async属性意为异步,目的是告诉浏览器立即下载文件,但不让页面等待脚本的下载执行,从而异步加载页面的其它内容,与defer不同的是它不保证按照从上之下的指定先后顺序执行,所以需要确保引入的不同js文件之间互不依赖。
例:<script type="text/javascript" defer="defer" src=""/>
<script type="text/javascript" async src=""/>