zoukankan      html  css  js  c++  java
  • JavaScript&DOM

    前段时间看了一本关于JavaScript和DOM的书,初步整理了一点知识点,不完善,后面再加。纯私人整理,有错误欢迎指出。

    1. 永远不要假设ajax(javascript)一定可用。
    2. W3C推出的标准化DOM可以让任何一种程序设计语言 对 使用任何一种标记语言编写出来的 任何一份文档 进行操控。
    3. DOM:一个与系统平台和编程语言无关的接口,程序和脚本可以通过这个接口动态的访问和修改文档的内容。
    4. 用javascript编写的代码必须通过HTML/XHTML文档才能执行。
    5. 程序设计语言分为解释型和编译型两种:编译型需要编译器,如java和C++这种。解释型web中的javascript解释器将直接读入并执行源代码。
    6. js是弱类型语言:可以在任何阶段改变变量的数据类型。用单引号和双引号都可以。
    7. 可以把三种数据类型混在一起存入一个数组
            var lennon = ["john" , 1980 , false];
         数组中的任何一个元素都可以把一个数组当做他的值。
    8. 传统数组会自动匹配下标,但是也可以定义下标,不局限与整数,这样增加了可读性(a["name"] = "John"),但是不推荐这样,因为相当于在修改Array的属性,这样不如用Object。
    9. Object还是不错的,a.name = "John",还可以beatles.vocalist.name = "John"。
    10. DOM的基本构成是元素节点。
    11. 继承是CSS技术中心的一项强大的功能,节点树上的各个元素将继承其父元素的样式属性。
    12. typeof操作符可以告诉我们他的操作数是一个什么类型的。
    13. 刚刚实验了 一下,新增的getElementsByClassName(),可以通过类名获取元素,参数中的类名可以少于实际类的个数和顺序,而且可以组合使用,ById,ByTagName,不局限与只用document。
    14. 用typeof判断的getElementById,getElementsByTagName等这些都是object类型,ByTagName和ByClass是对象数组,Array返回的也是object类型。
    15. if(something) 与 if(something != null) 完全等价。
    16. setAttribute完成两步:1)创建属性 2)设置值 ; 此方法刷新DOM,但是不改变静态页面。
    17. 用DOM可以避免一些兼容性问题,因为DOM是适用于多种环境和多种语言的通用API。
    18. function (object) {} 当前节点为参数时,用this代指,对于onclick事件处理函数,可以用return false 阻止默认事件的发生
    19. window.onload = <函数名>; 加载函数<函数名>
    20. <p>this is a jok <p/> 这里引入一个nodeValue的概念,就是节点值,如果要指向<p>标签中的文本,要指向<p>标签的一个子元素节点的文本,而不是<p>的文本。
    21. nodeValue用于检索节点的值&设置节点的值
    22. 平稳退化:禁用JS时,不影响基本使用
            1)用"javascript"伪协议&内嵌事件处理函数<onclick="">的做法不好。
            2)给事件加一些真实值。比如将<a>中的href值设置为真实值,这样,即使js被禁用,功能依然能用,只不过用户体验差一点。
    23. 分离JavaScript:把内嵌事件处理函数也放到外部文件中去,这样就能在外部文件中将js事件添加到HTML文件中的元素中。【我猜想JQuery中的 $().on();是一种javascript分离。】
    24. 向后兼容:这里有一个概念叫对象检测。if(!document.getElementById) return false ; 用逻辑非判断,方法体简单明了。判断对象是<方法名>,不能是<方法名>(),这样返回的是方法的结果。
    25. 性能考虑:脚本对Web应用的影响
            1)尽量少访问DOM和减少标记,在多个函数都会取得一组类似元素的情况下,考虑重构代码,把搜索的结果存放在一个全局变量中;把一组元素直接以参数的形式传递给函数。
            2)尽量减少不必要的标记。
            3)减少页面加载时发送的请求数量,尽量将js合并,放在<body>的结尾处。
            4)压缩脚本,将不必要的空格和注释删除,生成min版本。
    26. get/setAttribute方法是元素节点调用,来配置和获取属性节点的值。
    27. nodeValue是配置和获取文本节点的值。
    28. childNodes:我试过了,书上说会获取所有的子节点,但是只有元素节点和文本节点,文本节点多包在元素节点两侧,由空格和回车引起的。
    29. createElement:创建元素节点
            appendChild:插入DOM树中
           createTextNode:创建文本节点
           nextSibling:下一个子节点
            insertBefore:在某节点之前插入
    30. XMLHttpRequest:脚本与服务器之间的中间人,JS可以通过这个对象来发送请求和处理相应。对象返回里面有两个属性,一个是responseText,保存的是文本,一个是responseXML,保存的是DocumentFragment对象。脚本中的ajax不会等待send的响应,而是会继续执行。
    31. 属性节点和文本节点的子元素不允许是元素节点。
    32. 文档中的每个元素都是一个对象,每个元素都有一个style属性,他们也是一个对象。


  • 相关阅读:
    osgearth 编译日志
    osg Error osgearth_viewerd fails with "Loaded scene graph does not contain a MapNode
    多自由度机械臂模拟-吊绳伸缩
    多自由度机械臂模拟7
    osgViewer
    多自由度机械臂模拟6
    多自由度机械臂模拟5
    多自由度机械臂模拟4
    多自由度机械臂模拟3
    多自由度机械臂模拟2
  • 原文地址:https://www.cnblogs.com/embraceU/p/9235321.html
Copyright © 2011-2022 走看看