前端之从头开始学《红宝石》
目录
本书结构
第 1 章 “ JavaScript 简介 ”
1.1 JavaScript 简史
1.2 JavaScript 实现
1.3 JavaScript 版本
1.4 小结
第 2 章 “ 在 HTML 中使用 JavaScript ”
第 3 章 “ 基本概念 ”
第 4 章 “ 变量、作用域和内存问题 ”
第 5 章 “ 引用类型 ”
第 6 章 “ 面向对象的程序设计 ”
第 7 章 “ 函数表达式 ”
第 8 章 “ BOM ”
第 9 章 “ 客户端检测 ”
第 10 章 “ DOM ”
第 11 章 “ DOM 扩展 ”
第 12 章 “ DOM2 和 DOM3 ”
第 13 章 “ 事件 ”
第 14 章 “ 表单脚本 ”
第 15 章 “ 引用类型 ”
第 16 章 “ HTML5 脚本编程 ”
第 17 章 “ 错误处理与调试 ”
第 18 章 “ JavaScript 与 XML ”
第 19 章 “ E4X ”
第 20 章 “ JSON ”
第 21 章 “ Ajax 与 Comet ”
第 22 章 “ 高级技巧 ”
第 23 章 “ 离线应用与客户端存储 ”
第 24 章 “ 最佳实践 ”
第 25 章 “ 新兴的 API ”
JavaScript 高级程序设计 , 前端界简称为 : 红宝石 之书
创作此篇文章的目的呢就是希望和大家伙一起从头将此书捋一遍 ,
夯实巩固自己的 JavaScript 基础 , 地基不稳 ,如何建高楼呢 ?
一起加油努力吧 ,毕竟这个行业你要是不卷 ,很容易就会被替代了 。。
内容提要 :
全书从 JavaScript 语言实现的各个组成部分 —— 语言核心、DOM、BOM、事件模型
讲起,深入浅出地探讨了面向对象编程、Ajax 与 Comet 服务器端通信 ,
HTML5 表单、媒体、Canvas( 包括 WebGL )及 Web Workers、地理定位、
跨文档传递消息、客户端存储( 包括 IndexedDB )等新 API ,
还介绍了离线应用和与维护、性能、部署相关的最佳开发实践。
本书附录展望了未来的 API 和 ECMAScript Harmony 规范。
本书适合有一定编程经验的 Web 应用开发人员阅读,也可作为高校及社会实用技术培训相关专业课程的教材。
前言
JavaScript 是一种非常松散的面向对象语言,也是 Web 开发中极受欢迎的一门语言。
JavaScript 尽管它的语法和编程风格与 Java 都很相似,但它却不是 Java 的 “轻量级” 版本,甚至与 Java 没有任何关系。
JavaScript 是一种全新的动态语言,它植根子全球数亿网民都在使用的 Web 浏览器之中,
致力于增强网站和 Web 应用程序的交互性。
本书结构
本书共 25 章,各章简介如下。
第 1 章 “ JavaScript 简介 ”
讲述了 JavaScript 的起源:因何而生,如何发展,现状如何。
涉及的概念主要有 JavaScript 与 ECMAScript 之间的关系、
DOM ( Document Object Model,文档对象模型 )、
BOM ( Browser Object Model ,浏览器对象模型 ) 。
此外 ,还将讨论 ECMA ( European Computer Manufacturer’s Association ,
欧洲计算机制造商协会 ) 和 W3C ( World Wide Web Consortium ,万维网联盟 )
制定的一些相关标准。
1.1 JavaScript 简史
1.2 JavaScript 实现
1.2.1 ECMAScript
1.2.2 文档对象模型( DOM )
1.2.3 浏览器对象模型( BOM )
1.3 JavaScript 版本
1.4 小结
第 2 章 “ 在 HTML 中使用 JavaScript ”
介绍了如何在 HTML 中使用 JavaScript 创建动态网页。
这一章不仅展示了在网页中嵌入 JavaScript 的各种方式,还讨论了 JavaScript 内容类型
( content-type ) 及其与 <script> 元素的关系。
第 3 章 “ 基本概念 ”
讨论了 JavaScript 语言的基本概念,包括语法和流控制语句。
这一章也分析了 JavaScript 与其他基于 C 的语言在语法上的相同和不同之处 ,
还介绍了与内置操作符有关的类型转换问题。
第 4 章 “ 变量、作用域和内存问题 ”
探讨了 JavaScript 如何处理其松散类型的变量。
这一章还讨论了原始值和引用值之间的差别,以及与变量有关的执行环境的相应内容。
最后,通过介绍 JavaScript 的垃圾收集机制,解释了变量在退出作用域时释放其内存的问题。
第 5 章 “ 引用类型 ”
详尽介绍了 JavaScript 内置的所有引用类型,如 Object 和 Array。
这一章对 ECMA-262 规范中描述的每一种引用类型做了理论上的阐释,
又从浏览器实现的角度给出了介绍。
第 6 章 “ 面向对象的程序设计 ”
讲述了在 JavaScript 中如何实现面向对象的程序设计。
由 JavaScript 没有类的概念,因此这一章从对象创建和继承的层面上展示了一些流行的技术。
此外,这一章还讲解了函数原型的概念,并对函数原型与整个面向对象方法的关系进行了探讨。
第 7 章 “ 函数表达式 ”
集中介绍了 JavaScript 中最为强大的一个特性 —— 函数表达式。
相关的内容涉及闭包、this 对象的角色、模块模式和创建私有对象成员等。
第 8 章 “ BOM ”
介绍 BOM ( Browser Object Model ,浏览器对象模型 ) ,
即负责处理与浏览器自身有关的交互操作的对象集合。
这一章全面介绍了每一个 BOM 对象,包括 window、document、location、navigator 和 screen
第 9 章 “ 客户端检测 ”
讨论了检测客户端机器及其支持特性的各种手段,
包括特性检测及用户代理字符串检测的不同技术。
这一章还就每种手段的优缺点及适用情形给出了详细说明。
第 10 章 “ DOM ”
介绍 DOM ( Document Object Model ,文档对象模型 ) ,
即 DOM1 规定的 JavaScript 中的 DOM 对象 。
这一章也简要介绍了 XML 及其与 DOM 的关系 ,
为深入探讨所有 DOM 规范及其定义的操作网页的方式奠定了基础。
第 11 章 “ DOM 扩展 ”
介绍了其他 API 以及浏览器本身为 DOM 添加的各种功能。
涉及内容包括 Selectors API、Element Traversal API 和 HTML5 扩展。
第 12 章 “ DOM2 和 DOM3 ”
在前两章的基础上继续探讨了 DOM2 和 DOM3 中新增的 DOM 属性、方法和对象。
这一章还讨论了 IE 与其他浏览器的兼容性问题 。
第 13 章 “ 事件 ”
解释了 JavaScript 中事件的本质,对遗留机制的支持,以及 DOM 对事件机制的重新定义。
这一章讨论了多种设备,包括 Wii 和 iPhone。
第 14 章 “ 表单脚本 ”
讲述如何使用 JavaScript 增强表单的交互性,突破浏览器的局限性。
这一章的讨论主要围绕单个表单元素如文本框、选择框,以及围绕数据验证和操作展开。
第 15 章 “ 引用类型 ”
讨论了 <canvas> 标签以及如何通过它来动态绘图。
不仅涵盖 2D 上下文,也将讨论 WebGL ( 3D ) 上下文,可以为创建动画和游戏夯实基础。
第 16 章 “ HTML5 脚本编程 ”
介绍了 HTML5 规定的 JavaScript API ,涉及跨文档传递消息、
拖放 API 和 以编程方式控制 <audio> 和 <video> 元素 ,以及管理历史状态。
第 17 章 “ 错误处理与调试 ”
讨论浏览器如何处理 JavaScript 代码错误 ,并展示了一些处理错误的方式。
这一章针对每种浏览器分别讨论了相应的调试工具和技术,还给出了简化调试工作的建议。
第 18 章 “ JavaScript 与 XML ”
展示了 JavaScript 中用于读取和操作 XML ( eXtensible Markup Language ,可扩展标记语言 )
的特性 。这一章分析了不同浏览器提供的 XML 支持和对象的差异,
给出了编写跨浏览器代码的简易方法 。
此外 ,这一章还介绍了用于在客户端转换 XML 数据的 XSLT
( eXtensible Stylesheet Language Transformations ,可扩展样式表语言转换 ) 技术。
第 19 章 “ E4X ”
讨论了 E4X ( ECMAScript for XMLECMAScript 中的 XML 扩展 ) ;
设计 E4X 的出发点是简化 XML 处理任务 。
这一章探讨了在处理 XML 时 ,使用 E4X 与使用 DOM 相比有哪些优势。
第 20 章 “ JSON ”
介绍了作为 XML 替代格式的 JSON ,包含浏览器原生支持的 JSON 解析和序列化 ,
以及使用 JSON 时要注意的安全问题 。
第 21 章 “ Ajax 与 Comet ”
讲解了常用的 Ajax 技术 ,包括使用 XMLHttpRequest 对象及 CORS
( Cross-Origin Resource Sharing ,跨域源资源共享 ) API 实现跨域 Ajax 通信 。
这一章展示了浏览器在实现与支持方面存在的差异,同时也给出了一些使用建议 。
第 22 章 “ 高级技巧 ”
深入讲解了一些 JavaScript 中较复杂的模式 ,包括函数柯里化 ( currying ) 、
部分函数应用和动态函数 。
这一章还讨论了如何创建自定义的事件框架和使用 ECMAScript 5 创建防篡改对象 。
第 23 章 “ 离线应用与客户端存储 ”
讨论了如何检测应用离线以及在客户端机器中存储数据的各种技术。
先从受到最广泛支持的特性 cookie 谈起,继而介绍了新兴的客户端存储技术,
如 Web Storage 和 IndexedDB 。
第 24 章 “ 最佳实践 ”
探讨了在企业级环境中使用 JavaScript 的各种方式 。
其中 ,着眼于提高可维护性的内容包括编码技巧、格式化和通用月编程实践 。
这一章还介绍了改善代码执行性能及速度优化的一些技术 。
最后讨论了部署问题 ,包括如何创建构建过程 。
第 25 章 “ 新兴的 API ”
介绍了为增强虽浏览器中的 JavaScript 而创建的新 API 。
虽然这些 API 还没有得到完整或全面的支持 ,但它们已经崭露头角 ,
有些浏览器也已经部分地实现了这些 API 。这一章的内容主要是 Web 计时和文件 API 。
使用示例
完整的示例源代码可以从 http://www.wrox.com/ 中下载 ( 下载步骤见 “ 源代码 ” 一节 )。
持续更新 , 一起学习 , 共勉 ! 加油 ( ^ - ^ )!
前端之从头开始学《红宝石》相关推荐
- web前端从学习到学废
web前端从学习到学废 了解web前端 1.HTML.CSS系列之导学 2.什么是HTML.CSS? 3.宇宙第一编辑器VSCode 4.chrome浏览器 5.深入了解网站开发 6.web三大核心技 ...
- 从头再学 JavaScript 系列前言
说实话想写这个系列已经很久了,对于每一个学习前端的同学来说,JavaScript 都是必须要掌握的,但是实际上对很多同学而言,特别是刚入门或者入门时间不长的同学,对 JS 的认识并不深.大部分仅仅停留 ...
- 从头开始学JavaScript (五)——操作符(二)
原文:从头开始学JavaScript (五)--操作符(二) 一.乘性操作符 1.乘法:* 乘法操作符的一些特殊规则: 如果操作数都是数值,按照常规的乘法计算,如果乘积超过了ECMAscri ...
- 网站前端开发基础知识学什么?必备技能
网站前端开发基础知识学什么?Web前端开发网页制主要由HTML.CSS.JavaScript三大要素组成.随着企业需求变,前端开发技术的三要素也演变成现今的HTML5.CSS3.jQuery.响应式布 ...
- 6个web前端核心技术,你学到哪个了呢?
今天来和大家讲讲web前端开发需要学习什么?前端开发又需要用到哪些开发工具?然后也简单的和大家介绍下前端开发的前景和薪水工资情况,下面就简单和大家介绍一下. web前端的职能 web前端工程师其实在不 ...
- python和scre_前端大牛们都学过哪些东西?
想成为一名前端大牛,按照这个路线学习,足以帮助你快速成长. 从一名小白开始入门前端,到前端进阶,再到成长为技术大牛. 首先学习 HTML.CSS 和 JavaScript 的基础知识.你可以在以下几个 ...
- 学前端要多久?学前端要多久?学前端多少钱
随着第五届互联网大会的逐步进行,互联网行业再次掀起一番热浪,让大家也虎视眈眈的盯上了IT行业.而且,IT行业目前的薪资也是异常的客观,让很多人也想学IT.尤其是现在热门的Python.前端一类的课程. ...
- 【自学前端】我只学这些够吗?好难
表弟也终于到了马上要大学毕业的时间,然后听说我在做前端开发工作,就想着能不能和我一起搞一搞. 我说这又不是小时候一起去地里抓兔子,说走就一起走,拿上工具一起走了,这得学啊.看着表弟期待的眼神,他问了我 ...
- 从头开始学算法:考研机试题练习(C/C++)–STL使用
从头开始学算法:考研机试题练习(C/C++)–STL使用 最近重学C语言,刷的是胡凡写的<算法笔记>,这本书的题主要是面向考研机试和一般算法考试的,零基础入门,还不错,在此记录学习过程. ...
最新文章
- OpenCV中直方图反向投影算法详解与实现
- 对下载的包进行修改--python
- python 设置图片x轴带单位_用Python帮你上马,哪里无码打哪里
- GNU make 与 override指令
- 安卓开发.四大组件.activity.1
- 深解微服务架构:从过去,到未来
- Ambari删除服务报错之CSRF protection is turned on
- Grunt 新手指南
- DirectX 基础学习系列5 纹理映射
- 大量的数据做字符串匹配_【重学数据结构与算法(JS)】字符串匹配算法(三)——BM算法...
- CHIL-SQL-FOREIGN KEY 约束
- NPS内网穿透服务端一键安装脚本
- Hadoop学习之本地运行hadoop
- 这个双十一,我被淘宝“套娃”游戏整懵了
- word2003流程图变成图片_流程图怎么画word2003
- 伽罗华有限域_伽罗华域(Galois Field,GF,有限域)乘法运算 - MengBoy的专栏 - CSDN博客...
- 【微生物相关数据库】NAR database issue
- dfuse Labs——展示 dfuse 的力量
- C语言数据结构,排序的基本操作。
- php球半径为2的圆面积,某竖直平面内有一半径为R的光滑固定圆环,斜边长2R、短边长R的匀质直角三角板放在环内,试求三角板在其平衡位...
热门文章
- 几个不错的开源BPM系统
- NXP i.MX 8M Mini开发板(4核 ARM Cortex-A53)硬件原理图规格说明书
- pika的安装和简单用法
- 不可多得的干货!互联网公司常用分库分表方案汇总!太完整了!
- 使用jupyter notebook运行卷积神经网络出现的版本问题
- php时间戳转换成时间的方法
- 在线时间戳 (Unix) 转换工具
- 12-1 蓝色天空 : 创建一个背景为蓝色的Pygame窗口 12-2 游戏角色 : 找一幅你喜欢的游戏角色位图图像或将一幅图像转换为位图。 创建一个类, 将该角色绘制到屏幕中央, 并将该图像的背景色
- 当RxJava遇上Retrofit
- 【技术分享】Android App常见安全问题演练分析系统-DIVA-Part1