javascript dom 编程读书笔记

1.JavaScript是一个使网页具有交互才能的程序设计语言。

2.设定浏览器属性的属性的要领叫做BOM.

3.驼峰式定名(myMood)是函数名、要领名和对象属性名的定名首选花样。

4.定名变量的时刻能够用下划线来分开每一个单词,定名函数的时刻运用驼峰式定名。

5.函数在行动方面应当像一个自力更生的剧本,在定义一个函数时,我们肯定要把他内部的变量全都明确地声明为局部变量。

6.由浏览器预先定义的对象被称为宿主对象。宿主对象包括From、Image,document等。

7.DOM(document object model)。

8.在DOM中有元素节点(标签)(文档中每一个元素都是一个对象)、文本节点(内容)、属性节点(属性)。

9.纵然在悉数文档中这个标签只要一个元素,getElementsByTagName也返回一个数组,此时数组的长度是1.。

10.getElementsByClassName返回的是一个具有相同类名的元素的数组。

11.运用getElemntsByClassName指定多个类名的时刻,只须要在参数的时刻将多个类名以空格离隔

12.getElementsById返回的是一个对象,对象对应着文档里的一个特别的元素节点

13.getAttribute和setAttribute两个函数都只能用于元素节点。

14.DOM的事情形式:先加载文档的静态内容,再动态革新,动态革新不影响文档的静态内容,对页面内容举行革新却不须要在浏览器里革新页面。

15.在给某个元素增添了事宜处置惩罚函数后,一旦事宜发作,响应的JavaScript代码就会实行。被挪用的JavaScript代码能够返回一个值,这个值就会被传递给事宜处置惩罚函数。假设在a标签onclick内里指定事宜处置惩罚函数,当这个函数返回一个true的时刻,onclick事宜就会以为a标签中的链接被点击了,假如返回的是false就会被以为这个链接2没有被点击。所以,假如想要不触发a标签中的默许行动,在onclick内里增添一句return false。

<li><a href="img/1.png" onclick="showpic(this);return false;">1</a> </li>

16.childNodes属机能够用来猎取任何一个元素的一切子元素,它是一个包括这个元素悉数子元素的数组。

17.要想晓得一个节点的范例,能够运用nodeType来检察节点的范例
nodeType=1 节点为元素节点

           =2            属性节点
           =3            文本节点

18.window.open()翻开一个新的浏览器窗口。

function popUrl(winURL) {
        window.open(winURL,"popup","width:320px,height:400px");
    }
    popUrl('canvas.html');

19.安稳退步(当浏览器不支持js代码的时刻不影响网页的一般功用。)

20.机能斟酌
(1)只管少接见DOM:不论什么时刻,只如果查询DOM中的某些元素,浏览器都邑搜刮悉数DOM树,从中查找能够婚配的元素。换句话就是或每次运用getElementBy*的时刻都邑遍历悉数DOM树,所以最好是运用一次来取得元素并将元素存储在一个变量当中。
(2)只管少运用标记:过量不必要的元素只会增添DOM树的范围,进而增添遍历DOM树以查找特定元素的时候。
(3)包括剧本的最好体式格局就是运用外部文件,并将多个js文件兼并在一起。就能够削减加载页面时发送的要求数目。
(4)把一切Script标签都放在文档的末端,body标签完毕之前,就能够让页面变得更快。
(5)紧缩剧本:把剧本文本中不必要的字节,如空格和解释一切删除,从而到达紧缩文件的目标。

21.HTTP协定范例,浏览器每次从同一个余名中最多能同时下载两个文件。

22.假如想用JavaScript给某个网页增添一些行动,就不应当让JavaScript代码对这个网页的构造有任何依靠。

23.假如一个函数有多个出口,将这些出口集合安排在函数的开首部份。

24.轮回推断一组a标签被点击后所做的js处置惩罚

function prepareGallery() {
    if (!document.getElementById) return false;
    if (!document.getElementsByTagName) return false;
    if (!document.getElementById('imagegallery')) return false;
    var gallery = document.getElementById('imagegallery');
    var links  = gallery.getElementsByTagName('a');
    for (var i = 0; i < links.length; i++){
        links[i].onclick = function () {
            showpic(this);
            return false;
        }
    }
}

25.addLoadEvent():本身编写剧本函数,用来增添页面加载的时刻须要处置惩罚的函数

function addLoadEvent(func) {
  var onload = window.onload;
  if (typeof window.onload !=func){
  window.onload = func;
  }else {
  window.onload = function (ev) {
  oldload();
  func();
  }
  }
}

26.createTextNode用来建立文本节点

var txt =  document.createTextNode("hello world");

27.js想要在文档内里插进去内容的时刻,要从dom的角度动身。例如在div内里插进去一个p段落:
<div id=”mydiv”></div>
在js内里想要插进去一个p

var p = document.createElement("p");
var txt = document.creatTextNode('hello world');
var div = document.getElementById("mydiv");
div.appendChild(p);
p.appendChild(txt);

28.insertBefore(),:在元素的前面插进去元素,

    原文作者:krys
    原文地址: https://segmentfault.com/a/1190000015781982
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞