JavascriptDom编程艺术学习笔记一

来源:互联网 发布:库里场均数据 编辑:程序博客网 时间:2024/05/22 04:52
  1. 最好的做法是把<script>标签放在HTML文档的最后,</body>标签之前。
  2. 现在大多数浏览器的脚本默认是Javascript,所以<script> 标签中不用再包含传统的type="text/javascript" 属性。
  3. JS是一种解释性、弱类型语言。JS是区分大小写的语言。
  4. 注释:JS中常用的行注释是://,块级注释是/**/。
  5. 不推荐在JS中使用 <!----> 注释,虽然JS解释器对<!-- 的处理与“//”一样,但它会把-->视为注释的一部分。
  6. var mood = "happy", age="20"; 这种声明和赋值是最有效率的方法。因为这种组合在一起的语句,以减少整个脚本的执行时间。
  7. 变量命名:较长的变量名可以适当插入下划线,如“my_first_teacher”。函数名、方法名和对象属性名采用驼峰法命名,如”firstClassName”。注意构造函数命名,采用全部首字母大写命名法,如“FirstSchool()”
  8. 变量作用域,可以用var关键字设定。如果某个函数中使用了var,那这个变量就被视为一个局部变量,它只存在于这个函数的上下文中。反之,没有使用var,则这个变量被视为一个全局变量,如果脚本里已经存在一个和它同名的全局变量,这个函数就会改变那个全局变量的值。
function square (num) {    sum = num * num;   //此处未加var,sum是全局变量    return sum;}var sum = 50;        //定义全局变量sumvar numbers = square(20);   //运行函数,重新定义全局变量sum,会覆盖原来sum的值console.log(sum);           //输出400function square (num) {    var sum = num * num;    //定义局部变量sum    return sum;}var sum = 50;    //定义全局变量sumvar numbers = square(20);    //运行函数,会定义一个局部变量sum,但当函数运行结束,局部变量sum也会销毁console.log(sum);    //此时输出的是全局变量sum,输出50
  1. DOM中的“D”:一个网页就是一个文档对象。
  2. DOM中的“O”:JS中有三种对象,分别是用户自定义对象、内建对象(JS提供的对象,如Array,Object,Math和Date等)及宿主对象(由浏览器提供的对象,如window等,即BOM对象)。
  3. DOM中的”M:即是一个网页对应的一棵树,文档的一颗家谱树。
  4. 常用的三种节点类型:文本节点(textNode)、属性节点(attributeNode)和元素节点(elementNode);具体可以查看HTML中DOM解析篇1–nodeType\nodeValue\nodeName
  5. 获取元素的方法:

getElementById():返回一个对象object;
getElementsByTagName():返回一个对象数组;
getElementsByClassName():返回一个对象数组;该方法是HTML5 DOM中新增的方法,有部分浏览器还不适用,所以在使用前要记得检测该方法是否存在。

//下面的代码可以用已有的DOM方法实现getElementsByClassName()function getElementsByClassName (node, classname) {    if(node.getElementsByClassName) {        //使用现有方法        return node.getElementsByClassName(classname);    } else {        var results = new Array();        var elems = node.getElementsByTagName("*");        for(var i=0; i<elems.length; i++) {            if(elems[i].className.indexOf(classname) != -1) {                results[results.length] = elems[i];            }        }        return results;    }}//查找document中,类名是tips的所有节点var ss = getElementsByClassName(document, 'tips'); console.log(ss);

6.getAttribute()获取节点的属性,该方法不属于document对象,不能通过document对象调用,只能通过元素节点对象调用。
7.setAttribute()方法用来设置节点属性,同样不适用于document对象。注意:setAttribute()方法做出的修改不会反映在文档本身的源代码里。
因为DOM的工作模式:先加载文档的静态内容,再动态刷新,动态刷新不影响文档的静态内容。这正是DOM的威力:对页面内容进行刷新却不需要在浏览器里刷新页面。

原创粉丝点击