第八章 BOM

1、BOM的核心对象是window,他表示浏览器的一个实例。在浏览器中,window对象有双重角色,它既是通过JS访问浏览器窗口的一个接口,又是ES规定的Global对象。

2、定义全局变量与在window对象上直接定义属性还是有一点差别:全局变量不能通过delete操作符删除,而直接在window对象上的定义的属性可以。

3、由于浏览器差异,无法确定浏览器窗口本身的大小,但可以取得页面视口的大小:

var pageWidth=window.innerWidth,
pageHeight=window.innerHeight; if (typeof pageWidth!="number") {
if (document.compatMode=="CSS1Compat") {
pageWidth=document.documentElement.clientWidth;
pageHeight=document.documentElement.clientHeight;
}else {
pageWidth=document.body.clientWidth;
pageHeight=document.body.clientHeight;
}
}

4、使用moveTo()和moveBy()可以将一个窗口精确地移动到一个新位置。使用resizeTo()和resizeBy()可以调整浏览器窗口的大小。(不适用于框架,有可能会被浏览器禁用)。

5、setTimeout()方法表示在指定时间过后执行代码,第一个参数可以是字符串形式的代码,但不推荐,推荐写成匿名函数模式,防止性能下降。调用该方法后会返回一个数值ID,是计划执行代码的唯一标识符,可通过clearTimeout(数值ID)的方法取消。

6、setInterval()和clearInterval()间歇调用。

7、location对象既是window对象的属性,又是document对象的属性。window.location和document.location引用的是同一个对象。

8、创建一个函数,用于解析查询字符串,然后返回包含所有参数的一个对象

function getQueryStringArgs(){
var qs=(location.search.length>0?location.search.substring(1):""),
args={},
items=qs.length?qs.split("&"):[],
item=null,
name=null,
value=null,
i=0,
len=items.length; for(i=0;i<len;i++){
item=items[i].split("=");
name=decodeURIComponent(item[0]);
value=decodeURIComponent(item[1]); if (name.length) {
args[name]=value;
}
} return args;
}

第九章 客户端检测

1、可使用双逻辑非操作符得到布尔值。

2、客户端检测方法:能力检测、怪癖检测、用户代理检测。优先考虑使用能力检测。

第十章 DOM

1、DOM是针对HTML和XML文档的一个API,DOM描绘了一个层次化的节点树,允许开发人员动态的添加、移除和修改页面的一部分

2、文档元素是文档的最外层的元素,文档中的其他所有元素都包含在文档元素中。每个文档只能有一个文档元素。在HTML页面中,文档元素始终都是<html>元素。

3、所有节点类型都继承自Node类型,因此所有节点都共享着相同的基本属性和方法。

4、对于元素节点,nodeName中保存的始终是元素的标签名,而nodeValue的值始终是null。

5、对arguments对象使用Array.prototype.slice()方法可以将其转换为数组。如:var arrayOfNodes=Array.prototype.slice.call(someNode.childNode,0);

6、如果传入到appendChild()中的节点已经是文档的一部分了,那结果就是将该节点从原来的位置转移到新位置。例如传入firstChild,那么它将变为lastChild。

7、在通过JS以编程方式操作DOM时,开发人员经常不适用getAttribute(),而只是使用对象的属性。只有在取得自定义特性值的情况下,才会使用getAttribute()方法。

8、NodeList、NamedNodeMap、HTMLCollection这三个集合都是动态的,每当文档结构发生变化,他们都会得到更新。

9、理解DOM的关键,是理解DOM对性能的影响。DOM操作往往是JS程序中开销最大的部分,因而访问NodeList导致的问题最多。每次访问都会运行一次查询,因此最好尽量减少DOM操作。

js-JavaScript高级程序设计学习笔记6的更多相关文章

  1. JavaScript高级程序设计---学习笔记(一)

    今天,2017.3.17开始利用课余时间仔细学习<JavaScript高级程序设计>,将需要掌握的知识点记录下来,争取把书里的所有代码敲一遍并掌握. 1.标识符命名最好是第一个字母小写,剩 ...

  2. javascript高级程序设计学习笔记

    javascript高级程序设计,当枕头书已经好久了~zz  现在觉得自己在js的开发上遇到了一些瓶颈,归根究底还是基础太薄弱,所以重新刷一遍js高程希望有更新的认识. 一.javascript简介 ...

  3. javascript 高级程序设计 学习笔记

    <!--<script> // 异步请求封装 IE6即以上浏览器 // ajax(url,fnSucc,selectID,fnFaild) //url 请求地址 //fnSucc 异 ...

  4. JavaScript高级程序设计---学习笔记(二)

    面向对象程序设计1.属性类型.定义多属性.读取属性特性对象的属性在创建时都带有一些特征值,JavaScript通过这些特征值来定义它们的行为.这些特性是为了实现JavaScript引擎用的,因此不能直 ...

  5. JavaScript高级程序设计学习笔记--DOM

    DOM(文档对象模型)是针对HTML和XML文档的一个API(应用程序接口). Document类型 文档的子节点 虽然DOM标准规定Document节点的子节点可以是DocumentType,Ele ...

  6. Javascript高级程序设计学习笔记一

    看完w3school的javascript的概念,有点基础,开始红皮书的路程,今晚总结前二章的心得. 第一章:javascript简介 重点是javascript的实现是由 ECMAScript(核心 ...

  7. JavaScript高级程序设计学习笔记--面向对象的程序设计(二)-- 继承

    相关文章: 面向对象的程序设计(一) — 创建对象 http://www.cnblogs.com/blackwood/archive/2013/04/24/3039523.html 继承 继承是OO语 ...

  8. JavaScript高级程序设计学习笔记第十章--DOM

    1.DOM:文档对象模型,是针对 HTML 和 XML 文档的一个 API(应用程序编程接口). 2.DOM 可以将任何 HTML 或 XML 文档描绘成一个由多层节点构成的结构. 3.文档节点是每个 ...

  9. JavaScript高级程序设计学习笔记第一章

    作为学习javascript的小白,为了督促自己读书,写下自己在读书时的提炼的关键点. 第一章: 1.JavaScript简史:Netscape Navigator中的JavaScript与Inter ...

  10. JavaScript高级程序设计学习笔记之事件

    1.事件流 事件流描述的是从页面中接收事件的顺序. 事件冒泡 IE的事件流叫做事件冒泡(event bubbling),即事件开始时由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播 ...

随机推荐

  1. Kubernetes deployed on multiple ubuntu nodes

    This document describes how to deploy kubernetes on multiple ubuntu nodes, including 1 master node a ...

  2. HTTP 错误 500.22 - Internal Server Error

    HTTP 错误 500.22 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP.NET 设置. 最可能的原因: 此应用程序在 system.web/http ...

  3. 使用Jquery向一个空白网页动态创建一个iframe,及嵌入页面,和向嵌入页面传参

    [csharp] view plaincopyprint?using Microsoft.VisualBasic; using System; using System.Collections; us ...

  4. VFS分析(二)基本数据结构(持续更新)

    nameidata /mnt/dir1/dir2/ nameidata结构体是一个临时的结构体, 目标是为了找到最后的dentry.

  5. 利用 Html 元标记控制搜索引擎蜘蛛

    摘要:快照不被百度缓存: meta name = Baiduspider content = noarchive 所有搜索引擎,抓取这个页面.爬行链接.禁止快照: meta name = robots ...

  6. topshelf包装redis为windows服务

    topshelf包装redis为windows服务 Redis服务端目前用的是控制台程序运行,部署的时候能作为windows服务后台运行感觉更好.找到一篇文章Running Redis as a Wi ...

  7. scala 学习笔记(07) 一等公民的函数

    在scala中一切皆对象,一切皆函数,函数跟Int,String.Class等其它类型是处于同等的地位,换句话说,使用函数跟使用普通的类型一样,没什么区别,因此: 1.函数可以赋值给变量,可以当参数传 ...

  8. CodeIgniter框架入门教程——第三课 URL及ajax

    本文转载自:http://www.softeng.cn/?p=74 这节课讲一下CI框架的路由规则,以及如何在CI框架下实现ajax功能. 首先,先介绍CI框架的路由规则,因为CI框架是在PHP的基础 ...

  9. hbase-site.xml 配置详解

    hbase.rootdir 这个目录是region server的共享目录,用来持久化HBase.URL需要是'完全正确'的,还要包含文件系统的scheme.例如,要表示hdfs中的'/hbase'目 ...

  10. 三言两语聊Python模块–文档测试模块doctest

    doctest是属于测试模块里的一种,对注释文档里的示例进行检测. 给出一个例子: splitter.pydef split(line, types=None, delimiter=None): &q ...