《JavaScript DOM编程艺术》读后总结
这是我读的第一本关于JS的书,刚开始我为了选择合适的学习JS的书,看了网上许多人的意见,基本上都是推荐先读这本书。书的内容挺简单的,确实很适合初学者看,阅读的过程中不会产生什么障碍。内容虽然简单,但我觉得还是挺有收获的,之前我主要是通过看视频学习JS的,看了好些视频,了解了好些概念,但对好多概念都是似懂非懂的,认识的不是很真切。通过阅读这本书,使我对前面了解的那些概念有了更清楚的认识,同时,书中还反复强调了几个重要的思想,我觉得这也是很有价值的,很具有指导意义。
书中的第一章是介绍JS的简史的,在这里我看到了一个关于DOM的描述,DOM是一种API(应用编程接口),API就是一组已经得到有关各方共同认可的基本约定,相当于现实世界的莫尔斯码和元素周期表等。通过这个描述,加深了我对DOM和API两个概念的认识,这两个概念我之前都见过,特别是DOM,但是都感觉描述不清楚这到底是什么东西。现在想来,其实DOM和API就是用来认识和描述特定对象的一种方法或者说模型。
第二章讲的是JS的语法,相当于复习了一遍视频的内容,不过也由之前没见过的新东西,关于数组的内容说到关联数组的概念,我知道了数组的下标可以不是数字,可以是字符串,使用关联数组可以提高脚本的可读性。还有就是关于对象这个概念,书中提到对象是一种非常重要的数据类型,它是自我包含的数据集合,包含在对象里的数据可以通过两种形式访问:属性和方法。又对属性和方法进行了说明,属性是隶属于某个特定对象的变量,方法是只有某个特定对象才能调用的函数。通过这些描述,我大概理解了对象、属性和方法这三个概念。
第三章介绍了节点的概念和四种DOM方法,我了解到JS中对象可以分为三种类型:用户定义对象、内建对象和宿主对象。关于JS中3中重要的节点,元素节点、属性节点和文本节点的内容使我基本弄清楚了这三种节点的关系,元素节点可能包含属性节点和文本节点,属性节点和文本节点是最小的节点,不可能有子节点了。
第四章以一个案例为基础进行了讲解,介绍了一个简单的带有JS动态效果的网页制作的过程,使用了childNodes,firstChild,lastChild属性,并通过nodeValue属性改变了文本内容,使我对这些属性的应用有了个初步的印象,之前只知道概念,对于使用没什么实感。另外我还认识了一个操作符,“?”三元操作符,之前见过很多次,知道该怎么用,但都不知道是什么名字。
第五章的内容比较重要,提出了三种重要的思想:预留退路;分离JavaScript;向后兼容性。预留退路这个概念是第一次见到,之前没见过,所谓的预留退路是指确保网页在没有JavaScript的情况下也能正常工作,我觉得这是很棒的思想,和分离JavaScript的思想比较像。对象检测这个概念我之前也知道,但少见用到,书中很强调检测的重要性,我也认为这个比较重要,但对于在何种情况下检测到什么地步没什么概念,书中也没说很清楚。还了解了一个概念:伪协议“javascript:”。
第六章是对实例讲解的继续,里面有作者自己编写的函数,用于添加需要window.onload的函数,我觉得现在对我来说没什么必要,也许以后遇到大型项目的时候会有用。介绍了DOM Core 和HTML-DOM的概念,特别是后者,我之前有见到过,但不知道这是属于什么用法,现在知道了,比如:前者的element.getAttribute("href")等于后者的element.href。
第七章说document.write()方法和innerHTML属性是老方法了,都有各自的问题,建议不要使用,之前我见过这两种用法,我以为是标准的用法,现在才知道其实是老旧的方法。通过跟着案例练习,我对createElement()、appendChild()、createTextNode()、insertBefore()方法的使用有了更多的认识,之前只是仅仅知道概念而已。
第八章提到了JS的一种用途,用于弥补不同浏览器的对一些标签的默认呈现样式不同所造成的不同体验。
第九章提到一个思想,之前见过这种方法,当时没觉得有多好,只觉得这种想法很独特,现在想想,其实这种方法是很不错的,通过JS去刷新某个元素的class属性,间接改变该元素的样式信息。
第十章是利用JS制作动画效果,视频上用的是setInterval,没有用setTimeout,了解了一下使用setTimeout的例子。
第十一章是制作乐队网页的例子,关于创建CSS文件,把颜色、布局、字体分开创建的思路挺好的,之前看的视频都是把样式写在一个文件夹,分开写虽然做的时候会麻烦一些,但以后维护的时候应该会带来不少便利。
第十二章是关于未来的展望的,现在看来,作者当时的预测还是比较正确的。
这本书只是开了个头,以后学习JS的路还十分长,书中的知识相对来说会比视频来说会全一些,看书的同时动手练习也是很重要的,好些看着挺容易的东西,实际操作的时候才发觉没有想象的那么容易。
2016-04-28 23:08:01
《JavaScript DOM编程艺术》读后总结的更多相关文章
- 我的第一本docker书-阅读笔记
花了三四天看完了我的第一本docker书,话说书写的还是挺简单易懂的.与传统的VM,VirtualBox,或者与那种内核虚拟的xen,kvm相比,docker作为一种容器的虚拟方式,以启动进程的方式来 ...
- 《第一本docker书》—— 读后总结
关于docker 这本书其实并没有读完,只不过最近工作比较繁忙,也无心再看这些用不到的书.以后要是工作需要,再仔细学习吧. 这次的阅读算是达到目的了,对docker有了一定的了解.它的作用.意义以及大 ...
- 第一本Docker书读书笔记
日常使用命令 1.停止所有的container,这样才能够删除其中的images: docker stop $(docker ps -a -q) 如果想要删除所有container的话再加一个指令: ...
- 《第一本Docker书》
Docker简介 Docker依赖写时复制(copy-on-write),使修改应用程序非常迅速. Docker推荐单个容器只运行一个应用或进程,鼓励面向服务的架构和微服务架构. Docker的核心组 ...
- 第一本docker书 学习笔记(二)
#安装docker的先决条件 运行64位CPU构架的计算机(docker目前不支持32位的cpu) 运行LUFSinux3.8或者更高版本内核 内核必须支持一种合适的存储驱动,例如: device M ...
- 《第一本Docker书》学习笔记——第3章 Docker入门
3.1 确保Docker已经就绪 查看docker是否正常工作: sudo docker info 3.2 运行我们的第一个容器 现在,让我们尝试启动第一个Docker容器.我们可以使用docker ...
- 《第一本docker书》- 第一章笔记
环境: Ubuntu 14.04.2 LTS (GNU/Linux 3.16.0-30-generic i686) 第一章: 1 Docker客户端和服务器 2 Docker镜像 添加一个文件,执行一 ...
- 《第一本docker书》第4章 使用docker镜像和仓库 读书笔记
docker最底端是一个引导文件系统,即bootfs. 第二层是root文件系统rootfs,位于引导文件系统之上. 在传统的Linux引导过程中,root文件系统会最先以只读的方式加载,当引导结束并 ...
- 第一本docker书,,持续更新中
1.查看应用是否在docker中部署成功 需要确认curl已安装 whereis curl sudo apt-get -y install curl curl localhost:8081 如果成 ...
- 第一本docker书 学习笔记(一)
Docker的核心组件: Docker客户端和服务端 Docker镜像 Registry Docker容器 # Docker客户端和服务端 docker 是一个 C/S架构程序.客户端只需要向dock ...
随机推荐
- 使用Runtime.getRuntime().exec()在java中调用python脚本
举例有一个Python脚本叫test.py,现在想要在Java里调用这个脚本.假定这个test.py里面使用了拓展的包,使得pythoninterpreter之类内嵌的编译器无法使用,那么只能采用ja ...
- 《JavaScript高级程序设计》读书笔记--(2)基本概念
变量 Javascript 是区分大小写的, 也就是说 var nun 与 var Num 是不同的变量. ECMAScript的变量是松散类型的,所谓松散类型就是可以保存任何类型的数据.ECMASc ...
- web app性能大讨论
1.Application:应用,为用户完成一个或多个功能而设计的程序: 2.Internet or Intranet:运行于广域网或局域网之上: 3.Browser-supported langua ...
- Ftrl in tensorflow
reference :点击这里https://github.com/tensorflow/tensorflow/issues/3725 讲解 http://www.tuicool.com/articl ...
- 例子:Backup Isolated Storage To SkyDrive
本例演示了如何从隔离存储中备份文件到SkyDrive. 1. 登陆微软网站,申请“Create application”,获取一个“Client ID” 2. XAML中添加对Live相关控件库的命令 ...
- HTML5和CSS3的一些新特性
html5有哪些新特性.移除了那些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分 HTML 和 HTML5? 新特性: 1. 拖拽释放(Drag and drop) 2. 语义化更好的内容标 ...
- Dapper学习笔记(4)-事务
Dapper中对事务的处理也非常简单,如下代码所示: private void DapperTransaction() { using (IDbConnection con = OpenConnect ...
- Java IO流
File类 ·java.io.File类:文件和目录路径名的抽象表示形式,与平台无关 ·File能新建.删除.重命名文件和目录,但File不能访问文件内容本身.如果需要访问文件内容本身,则需要使用输入 ...
- display:inline-block 和float:left 的区别
display:inline-block 和float:left 的区别 display是指显示状态,float是针对块级元素的浮动. 使用inline-block:控制元素的垂直对齐跟横向排列元 ...
- Android数据库 — — —查询数据
package com.example.datebasetest; import android.content.ContentValues;import android.database.Curso ...