随着硬件水平的逐渐提高,浏览器的处理能力越来越强大,本人坚信,客户端会越来越瘦,瘦到只用浏览器就够了,服务端会越来越丰满:虽然很多大型的程序,比如3D软件,客户端仍然会存在,但是未来的主流必将是浏览器,也就是Web程序/网站. Web前端开发模式:Thinking in "DIV + CSS + JS (JavaScript)" 任何面向用户的程序,最终都表现为3个部分:界面,逻辑,数据.而经过几十年的编程实践,大家都发现,当把这3个部分以弱耦合的形式结合起来的时候,开发的灵活性和效率…
JavaScript是面向对象的 JavaScript是一种基于对象的语言,你遇到的所有东西,包括字符串,数字,数组,函数等等,都是对象. 面向过程还是面向对象? JavaScript同时兼有的面向过程(函数)的编程体验和面向对象的编程风格,其实对于很多人来说,完全的函数式编程可以很好的解决相关问题,比如荷兰的ppk(著有<ppk谈JavaScript>一书,是JavaScript经典的著作之一)就很擅长使用面向函数的方式解决问题,而对与面向对象编程,使用的反而少了一点:其实对于大多数的页面来…
JavaScript中的字面量 书接上回,我们已经知道在JavaScript中存在轻量级的string,number,boolean与重量级的String,Number,Boolean,而且也知道了之间的区别.这里补充一点,直接使用字面量定义的变量都是属于前一种类型,例如: var name = 'Frank'; 此外大多数的内置操作返回的也都是前一种类型,这是必须的. function是第一等公民 与别的语言不同,在JavaScript中,函数是作为数据类型存在的,所以函数具有数据的静态行为.…
在JavaScript开发中,this是很常用的一个关键字,但同时也是一个很容易引入bug的一个关键字,在这里我们就专门总结一下页面中可能出现的this关键字(包括几种在其他页面文件中出现的this). JavaScript中的this关键字通常只使用在函数中,它指向当前函数的调用者,这是this关键字的本质,所有的使用方式都是围绕这个展开的,让我们来看一下在各种性质的函数中this的用法.1. 在对象的函数中使用this var person = { name: 'Frank', say: f…
JavaScript是单根的完全面向对象的语言 JavaScript是单根的面向对象语言,它只有单一的根Object,所有的其他对象都是直接或者间接的从Object对象继承.而在JavaScript的众多讨论中,JavaScript的继承机制也是最让人津津乐道的,在了解它的机制之前,先让我们温习一下继承的本质. 继承的本质 继承的本质是重用,就是这么简单,重用是软件编程技术向前发展最原始的动力.从语法上来讲,继承就是"D是B"的描述,其中B是基类,描述共性,D是子类,描述特性.例如&q…
AJAX缘由 再次谈起这个话题,我深深的记得就在前几年,AJAX被炒的如火如荼,就好像不懂AJAX,就不会Web开发一样.要理解AJAX为什么会出现,就要先了解Web开发面临的问题. 我们先来回忆一下Web页面的申请过程,这个咱们在第一篇中就介绍过了:Web页面开发就是在无连接和无状态的HTTP协议上管理页面的状态.每次申请页面的时候,服务器都会返回完整的HTML文本(当然还有其他的文本文件),浏览器就负责解析这个文本并在浏览器中显示. 在这个过程中,不管当前页面的内容是不是都变化了,服务器都会…
http://www.cnblogs.com/TomXu/archive/2011/12/15/2288411.html http://blog.csdn.net/hi_kevin/article/details/37761919    深入理解javascript之执行上下文(execution context)…
前面我们回顾了前端JavaScript只干的两件事:操作BOM与操作DOM,那么什么时候去干这些事呢?答案是需要干的时候去干.那么什么时候是需要干的时候呢?答案是事件被触发的时候.这就是通常所说的“事件驱动开发”.在事件被触发之前,所有的结构被静态的呈现出来,在事件触发滞后,动态的行为发生,重新产生新的静态结构,事件与状态构成了事件驱动开发的基本要素.下面我们来看看JavaScript中事件的方方面面.   事件的类型 事件指由用户直接触发的行为,通常包括下列各种事件: 鼠标事件: 鼠标单击(c…
JavaScript中的函数 1. 函数的定义 两种定义形式: 通过函数定义表达式来定义 通过函数声明语句来定义 函数声明语句定义一个函数 //计算阶乘的递归函数 function factorial(x){ if (x<=1) return 1; return x*factotial(x-1); } 函数定义表达式定义一个函数 var s= function sum(x,y){ return x+y; } tips:以表达式方式定义的函数(特别适合用来定义那些只会用到一次的函数),函数名是可选…
操作DOM 终于到了JavaScript最为核心的部分了,通常来说,操作DOM,为页面提供更为友好的行为是JavaScript根本目标.   DOM树 - HTML结构的抽象 既然DOM是操纵HTML文档的,那么必然是先要将HTML文档抽象成JavaScript的对象,这样才能使用JavaScript去操作它们. HTML文档抽象的结果是DOM树 - 一棵与HTML结构对应的JavaScript对象组成的树. 先看一个简单的HTML页面: <!doctype html> <html>…