有人说过,很多弯路到最后都成了直路,所有的坑到最后也都成了坦途;所谓的直路和坦途并不是摆在眼前的,都是不断的的绕弯过程中掰正捋直的,都是摔得鼻青脸肿之后填平的。从离开学校到北京工作也算有一年的时间了,只感觉这一年过的不算充实,也不算空虚,有所进步,但幅度不大,绕了些弯也踩了些坑,但还需继续前行才能看清自己的路。
在确确实实工作过一年之后,才认清了自己的不足,才发现前端这份工作也并没有开始时想的那么简单,也隐约知道了自己下一步该怎么去走才能不掉队,所以才有了这篇笔记。就像人们常说的“任何事都没有捷径可走”,所以觉得要想继续踏踏实实在前端这条路上奋力向前,就必须要不断充实自己,查缺补漏。
写了这么多其实是想说经过年后这段时间的面试,发现了好多问题,最主要的还是觉得自己基础知识掌握的不够扎实,有的时候只是着重于实现,确实也忽视了原理性的东西,正好也趁此机会,翻看一下去年买了但没看的js高程这本书,巩固一下基础,也去掌握一些“为什么”,不仅局限于“怎么做”。
这系列的笔记本着自己的初衷是每看完五章做一篇这样的总结笔记,不言而喻这篇便是前五章内容的一个总结,毕竟自己道行尚浅,没能力去做什么总结和知识梳理,只是对看过的知识点的一个去繁化简,可以让自己以后在忘却前边知识点的时候翻看一下,可以有一个快速整理回忆的作用,也希望不幸看到这篇笔记且觉得这是篇什么鬼东西的能给指点一二,若实在看不下去的,那就赶快点击右上角x关掉,以免影响接下来的心情,假若不小心帮助了其它比我还菜的人,那你也不用道谢,因为我的名字叫“雷锋”,我做好事不留名,只记笔记。
扯了这么多回到正题,往下便是对前五章知识点的一个简要归纳陈列:
第1章 JavaScript简介
主要讲述了JavaScript的起源:因何而生,如何发展,现状如何。涉及的概念:JavaScript与ECMAScript的关系,DOM(文档对象模型),BOM(浏览器对象模型)以及ECMA(欧洲计算机制造协会)和W3C(万维网)的一些相关标准。
1.1 JavaScript简史
1995年由布兰登.艾奇进行开发(LiveScript),同时支持浏览器和服务器使用,搭载在Netscape Navigator2浏览器上;1996年,Netscape借着1.0版本的成功之势,随即在其Netscape Navigator3中发布了1.1版本,同年微软也进入Web浏览器市场,在IE3中加入了名为JScript的JavaScript实现;1997年,ECMA为避免两大厂商所实现的不同版本JavaScript所暴露出的问题,将JavaScript 1.1作为蓝本制定了这门语言的实现标准,也就是ECMA-262(ECMAScript)标准,98年ISO/IEC也采用了这一标准。
1.2 JavaScript实现
一个完整的ECMAScript通常包括三个部分:ECMAScript(核心),DOM(文档对象模型),BOM(浏览器对象模型)。
1.2.1 ECMAscript
第一版与javascript1.1本质上相同,删除了针对浏览器的部分并进行了小的改动;第二版是对第一版的处理和加工为用作ISO标准;第三版(ES3)才是对标准的真正修改,涉及字符串处理、错误定义和数值输出,新增了对正则表达式、新控制语句、try-catch异常处理的支持,真正意义上成为了一门编程语言;第四版对标准进行了全面的修改,但因为变动太大 并没有被采用,而是采用了改动较小的一 版,也就是现在的ECMAscript5;就在2006年第六版ES6也正式颁布 ;ES7正在修改制定中。
ECMAscript兼容:要想成为ECMAscript的实现“必须支持ECMA描述的所有的“类型 值 对象 属性 函数以及程序语法和语义”;支持Unicode字符标准”。
还可以进行下列扩展:添加标准没有描述的“更多类型 值 对象 属性 函数”;支持标准没有定义的程序和正则表达式语法
浏览器对ECMAscript标准的支持:javascript1.1版本是标准的蓝本 所以navigator3对标准支持比较好 但是navigator4搭载的1.2版本在标准还没出来之前便已发布但是与标准有所不同所以兼容性有问题 4.06版本搭载 1.3版本实现了对标准的兼容,微软的IE4搭载Jscript模仿javascript开发的但是有很大差别所 以对标准支持也不好;08年五大浏览器都做到了对ECMAscript-262的兼容 IE8开始兼容ES5 IE9完全兼容ES5 firefox4也做到了兼容
1.2.2 文档对象模型(DOM)
是针对XML经过扩展用于HTML的应用程序编程接口(API),DOM把整个页面映射为一个多层节点结构 HTML或XML的页面的每个组成部份都是不同的类型节点,包含着不同类型的数据开发人员因此获得控制页面内容和结构的主动权,通过提供的API 可以任意删除、添加、替换、修改节点。
标准化原因:随着发展微软和网景公司两家各持己见 造成了浏览器互不兼容的局面 为了控制这样的局面负责制定web通信标准的w3c开始着手规划DOM标准
DOM标准:1998年DOM1级称为w3c推荐标准,主要有两个模块组装成:DOM核心 和 DOM HTML,DOM核心规定的是如何映射基于XML的文档结构,以便简化对文档中任意部分访问和操作DOM HTML在DOM核心基础上加以扩展 增加了针对HTML的对象和方法;DOM2级在原先基础上增加了鼠标和用户界面事件、范围、遍历 、通过对象接口 增加了对css的支持;DOM3级则进一步扩展了DOM
其他DOM标准:svg(可伸缩矢量图)、MathML(数学标记语言)、SMIL(同步媒体集成语言)
浏览器对DOM的支持:微软IE5支持DOM1级 ,但是IE67都不支持DOM,在随后的IE8中修复了这一问题;Netspace6中才支持DOM(mozilla 0.6.0)firefox3完全支持DOM1级几乎完全支持DOM2级
1.2.3 浏览器对象模(BOM)
没有相关标准每个浏览器都有自己的实现标准,随着HTML5发展正在制定这方面的标准
本质上讲 BOM只处理浏览器窗口和框架 但人们习惯上把针对浏览器的javascript扩展算作BOM的一部分:
1.弹出新浏览器窗口的功能
2.移动 缩放 关闭浏览器的功能
3.提供浏览器详细信息的navigator对象
4.提供浏览器所加载页面详细信息的location对象
5.提供用户浏览器分辨率详细信息的screen对象
6.对cookies的支持
7.像XMLHttpRequest 和 IE的ActiveXObject这样的自定义对象
1.3 JavaScript版本(只有firefox还遵循最初的版本编号)
第2章 在HTML中使用JavaScript
主要介绍了如何在HTML中使用JavaScript创建动态网页。涉及内容:在HTML中嵌入JavaScript的方式,JavaScript的内容类型及其与