在此先给我一点时间介绍一下我自己。我的名字叫HappyWebEnginer,励志作为一名优秀的前端web攻城狮。目前是一名java高级工程师,可能有网友就问了,为什么要转到前端来呢?我只能笑笑,答曰:纯属个人兴趣爱好而已
在这里还要介绍一下,自己写得的文字可能存在一些问题,以及错字,希望大家多提意见。
在我学习了一段时间的Javascript时,发现Javascript其实可以是有3部分组成
Javascript = ECMAScript + DOM +BOM
ECMAScript(核心) 大家就可以这样理解,就是它里面包括了Javascript的语法,类型,语句,关键字,保留字,操作符,对象.现在ECMAScript的版本到ECMAScript6了.可是由于浏览器的不同,支持的版本也不同,所以在做浏览器功能兼容的时候要多加留心。
DOM其实文档对象模型,是针对XML但经过扩展用于HTML的应用程序编程接口。DOM把整个页面映射为一个多层节点结构。通过DOM创建的整个表示文档的树形图,开发人员可以获得了控制页面内容和结构的主动权,借助DOM提供的API,前端攻城狮可以轻松自如的删除,添加,替换或修改任何节点。DOM是有级别的,分别为DOM1,DOM2,DOM3.浏览器几乎都只是DOM,有些支持部分DOM2和DOM3.
BOM其实浏览器对象模型,支持可以访问和操作浏览器窗口的浏览器对象模型,开发人员使用BOM可以控制浏览器显示的页面以外的部分。而BOM真正与众不同的地方,是它作为Javascript实现的一部分却没有相关的标准。这个问题在HTML5中得到解决,HTML5致力于把很多BOM功能写入正式桂发。BOM包括内容:
1.弹出新浏览器窗口的功能;
2.移动,缩放和关闭浏览器窗口的功能;
3.提供浏览器详细信息的navigator对象;
4.提供浏览器所要加载页面的详细信息的location对象;
5.提供用户显示分别率详细信息的screen对象
6.对cookies的支持
7.像XMLHttpRequest和IE的ActiveXObject这样的自定义对象。
学习基本的ECMAScript ,可能有一点编程语言知识的人都能很快上手,因为只要掌握六大基本类型Undefined、Null、Boolean、Number和String以及复杂类型Object,一些基本操作,以及Array,Function,Date等一些内部对象操作,那么你就可以基本了解了Javascript。如果你还想更加深入的了解ECMAScript可以
1.那么就是对他的一等对象Function做深入的学习,因为Javascript是一名没有类的概念的语言,那么函数就可以当成类。
2.还有就是对函数prototype原型属性的深入了解,因为prototype是实现原型继承的重要知识点。
3.对this的使用,以及作用域。this在不同的上下文中,this的指向不同的对象。
4.函数call, apply方法的使用,灵活的切换上下文
5.学习Javascript的设计模式,让开发的出来的代码清晰,稳定,可扩展
如果你对ECMAScript深入了解了,不代表你就会Javascript了,就好像你学了一本高深的武功秘籍,可是武功怎么也施展不开,那是因为找不到施展的地方。Javascript作为一名统治浏览器脚本交互语言,它能让浏览器呈现出炫丽的界面,以及友好交互。那么Javascript的施展地方就是在浏览器客户端,武功秘籍施展地方就是HTML这个DOM树。这样你就要深入了解DOM的使用。
1.如HTML元素的属性,方法,以及元素的style属性。HTML元素的增删改查移动等操作的方法,说白了就是弄懂HTML元素的操作的API。
2.在这里为什么单独说style属性呢?因为这个要涉及到CSS的操作。如果你对CSS了解够深入的话,那么界面上的悬浮,动画,画廊等一些插件就不在话下,可以自己封装组件或者模块供前端攻城狮是用来。那么你已经就是受人膜拜的对象了。
3.HTML元素的事件,浏览器的click,doubleclick,onchange等事件要深入研究,如果想作为一位优秀的web前端攻城狮。必须对浏览器的事件驱动中重要的事件知识进行修炼。
当你把上面两层功力练得才不多,可能你就要修炼更高层的功力或者是辅助功力。BOM是浏览器对象模型
1.弄清浏览器的版本,以及是什么浏览器客户端,就是我们常说的嗅探技术,有时也会使用用到DOM元素的一些属性来双剑合并,能达到更好的效果
2.区分浏览器是为了做DOM界面的兼容操作,不让每个浏览器的展示的界面不统一。
3.BOM上的对象,location,srceen,cookies,navigator等一些的操作,对URL的操作前端攻城狮必会呀~~
后面我们就开始学习Javascript,不过学习的攻城狮最好有一定的编程能力,因为下面可能不会介绍语法,类型,操作符这些基本的知识点。