本书旨在帮助读者快速掌握 JavaScript 的基础知识和核心技术,通过示例系统的阐述这些核心技术的实际应用,方便读者解决实际工作中遇到的问题,提高编程能力。适用人群本书可以供 JavaScript 初学者阅读,以快速学习和掌握这门语言的核心内容:对于有一定经验的 JavaScript 程序员,则可以通过本书加深和拓展对 JavaScript 的认识,提升应用开发能力。
毫无疑问,到目前为止,JavaScript应用最为广泛,也最为成功的领域就是客户端,或者称为浏览器上的JavaScript。JavaScript为页面开发注入了活力,如与服务器交互形成的局部刷新,鼠标事件的响应,动态的页面风格变换等等,都直接依靠与JavaScript的支持。
要说 JavaScript 和其他较为常用的语言最大的不同是什么,那无疑就是 JavaScript 是函数式的语言,函数式语言的特点如下:函数为第一等的元素,即人们常说的一等公民。就是说,在函数式编程中,函数是不依赖于其他对象而独立存在的(对比与Java,函数必须依赖对象,方法是对象的方法)。
面向对象编程思想在提出之后,很快就流行起来了,它将开发人员从冗长,繁复,难以调试的过程式程序中解放了出来,过程式语 言如 C ,代码的形式往往如此:C代码 Component comp; init_component(& comp, props); 而面向对象的语言如 Java ,则会是这种形式:Component comp; comp.init(props);
闭包向来给包括 JavaScript 程序员在内的程序员以神秘,高深的感觉,事实上,闭包的概念在函数式编程语言中算不上是难以理解的知识。如果对作用域,函数为独立的对象这样的基本概念理解较好的话,理解闭包的概念并在实际的编程实践中应用则颇有水到渠成之感。
正则表达式是对字符串的结构进行的形式化描述,非常简洁优美,而且功能十分强大。很多的语言都不同程度的支持正则表达式,而在很多的文本编辑器如 Emacs,vim,UE 中,都支持正则表达式来进行字符串的搜索替换工作。UNIX 下的很多命令行程序,如 awk,grep,find 更是对正则表达式有良好的支持。
JavaScript 的数组也是一个比较有意思的主题,虽然名为数组(Array),但是根据数组对象上的方法来看,更像是将很多东西混在在一起的结果。而传统的程序设计语言如 C/Java 中,数组内的元素需要具有相同的数据类型,而作为弱类型的 JavaScript,则没有这个限制,事实上,JavaScript 的同一个数组中,可以有各种完全不同类型的元素。
函数,在 C 语言之类的过程式语言中,是顶级的实体,而在 Java/C++ 之类的面向对象的语言中,则被对象包装起来,一般称为对象的方法。而在 JavaScript 中,函数本身与其他任何的内置对象在低位上是没有任何区别的,也就是说,函数本身也是对象。
本章将聚焦于 JavaScript 中的基本概念,这些概念与传统语言有比较大的不同,因此单独列出一章来做专门描述,理解本章的概念对书中后续章节的概念,代码的行为等会有很大的帮助,读者不妨花比较大的时间在本章,即使你对 JavaScript 已经比较熟悉,也建议通读本章。
Javascript 简史在 20 世纪 90 年代,也就是早期的 WEB 站点上,所有的网页内容都是静态的,所谓静态是指,除了点击超链接,你无法通过任何方式同页面进行交互,比如让页面元素接受事件,修改字体等。
简介jQuery是目前应用最为广泛,最为优秀的Ajax/JavaScript开源框架之一,有数以千万记的用户,更有多不胜数的技术文档与之相关,在一定程度上,jQuery如其所宣扬的那样,改变了人们编写JavaScript的方式。
在前半部分章节中,涉及到一些重要的概念,在当时章节上下文中,限于内容,没有展开讨论,这些内容可能较难理解,因此都集中在这个章节进行讨论。具体涉及到的内容有原型链,执行期上下文,活动对象,作用域链以及 this 值。这部分内容可以结合之前章节中相关部分一起参考。
JavaScript 对象与传统的面向对象中的对象几乎没有相似之处,传统的面向对象语言中,创建一个对象必须先有对象的模板:类,类中定义了对象的属性和操作这些属性的方法。通过实例化来构筑一个对象,然后使用对象间的协作来完成一项功能,通过功能的集合来完成整个工程。
关注时代Java