JS简介

1. 《Java script DOM编程艺术》

  之前学习JS是看的《Java script DOM 编程艺术》,以下博客根据此书笔记进行一个总结

 

 

2. JS 语言基础

  js是一门解释性语言,不区分大小写

  变量:不强制提前声明变量,可直接使用(自动声明),但不推荐。

    var var1Name=num, var2Name=”str”; (也可分开)

  变量名:不允许有空格或其他标点符号($除外)

  数据类型javascript-弱类型语言,不需要进行类型声明。

    字符串:包括在双引号或单引号中

     数值:给变量赋值,可以是整数、任意位小数、负数等都可以。

     布尔值 ture false  不加引号

     数组 var arrayName = Array(size);  也可以不指定大小,

      赋值arrayName[index] = element; var arrayName = Array(   ,   ,  , ...); 或者 var arrayName = [   ,   ,   , ...];  var arrayName = [ ];

        数组中各个值的数据类型可以不一样,还可以是变量;可以赋值为另一个数组中的元素; 可以包含其他数组;

      填充数组:关联数组。将数组的下标用字符串来代替,为数组进行赋值。

        

    对象:相比数组的数字下标可以提高可读性,使代码文字上更有意义

      自定义对象:

        var name = new objName;

      var objName = Object();    

      var bojName = { };

           objName.propertyName = value;

      var objName = {propertyName:value,  propertyName:value};

    预定义对象

    (内建对象):

         数组(使用new关键字去初始化一个数组时,其实在船建一个Array对象的新 实例);

           属性: lengthvar beatles = new Array();

         Math, Date等:

           Var num = Math.round(num);

           var current_date = new Date();   getDay(), getHours(), getMonth() ...

       (宿主对象):不是有Javascript提供而是由它的运行环境,具体到web应用,就是由浏览器提供的。

         From, Image, Element等,可以通过这些对象获得关于网页上表单、图像和各种表单元素等信息。document可以获取网页上任何一个元素的信息。

  函数 function name(arguments){ statements (return ... ) ;

    function函数声明,没有返回值声明

 

3. DOM

D:document, 当创建了一个网页并把它加载到WEB浏览器中时,DOM就在幕后把编写的网页文档转换成一个文档对象

O:object,用户自定义对象、内建对象、宿主对象。

M:model,模型,事物的表现形式。DOM代表着加载到浏览器窗口的当前网页。浏览器提供了网页的模型,我们通过JS去读取。DOM把一份文档表示为一棵树。

 

节点:

元素节点:标签的名字就是元素的名字。

文本节点:元素包含的文本。在XHTML文档里,文本节点总是被包含在元素节点的内部。

属性节点:用来对元素做出更具体的描述。

   获取DOM元素:

    getElementById(id): document对象特有的方法。id应该放在单引号或双引号里。只有一个参数,返回一个对象,对象对应document对象里唯一的对象。

    getElementByTagName(): 只有一个参数,返回一个对象数组。即使在整个文档里这个标签值有一个元素,也返回一个长度为1的数组。允许通配符作为参数(“*”)。

    getElementByClassName: 只接受一个参数,返回一个具有相同类名的元素的数组。(“classname1 classname2”),只一个参数,但允许指定多个类名,在一个参数里用空格隔开。

   获取和设置元素属性:

    getAttribute(): Object.getAttribute(attribute); 通过元素节点调用;目标对象没有目标属性,返回null;

    setAttribute():Object.setAttribute(attribute, value); P.S: 源代码并没有改变!

      

    初学常见BUG:

      BUG:js代码未正确执行。

      1. <script>标签写到</body>上面,JS是解释型语言,边加载边解释,只有目标对象被加载到DOM树以后才能获取和操作。
      2. 将代码写到widow.onload = function() {   }函数中
        1.   

 

4. 事件处理函数/扩展函数

作用:在特定事件发生是调用特定的JS代码。

工作机制:事件发生,相应的JS代码执行。被调用的JS代码可以有返回值,返回值被事件处理函数接收。

  onmouseover:在鼠标指针悬停在某个元素上触发动作;

  onmouseout:在鼠标离开某个元素是触发动作;

  onclick:在用户点击某个连接时触发动作。

  扩展函数:目标-网页切换文本。

     新的DOM属性:

       childNodes属性: 获取任何一个元素的所有(所有类型的)子元素。

         var body_element = document.getElementByTagName(“body”)[0];

         var body_children = body_element.childNodes; // 即为body全体子元素的数组

         PS:文档树的节点类型并非只有元素结点一种。事实上,文档里几乎每一样东西都是一个节点,甚至空格和换行符

       nodeType属性:让我们知道我们正在与哪一种结点打交道。

         PS:nodeType的属性值:

      nodeValue属性:用来得到和设置一个节点的值;node.nodevalue

         元素节点,比如p结点本身的nodeValue属性是一个空值nullp元素所包含的文本的值是另一种结点,是p元素的第一个子节点。

         Eg: alert(descrption.childNodes[o].nodeValue);

       firstChildlastChild属性:childNodes数组的第一个和最后一个元素

         node.firstChild = node.chilNodes[0];

node.lastNode = node.childNodes[node.childNodes.length-1];

 

5. 使用JS动态创建标记

  以动态的方式实时创建标记其实并不是在创建标记,而是在改变DOM节点树。关键是一定要从DOM的角度去思考问题。

  createElement方法:使用DOM方法添加元素节点。

  1. 创建一个新元素document.creatElement(nodeName);

a) 创建的新元素还不能影响页面表现,此时这个元素已经存在了,但还不是DOM节点树的组成部分,这种情况称为文档碎片。必须将这个元素插入文档。不过它已经想其他任何结点有了自己的DOM属性。

b) appendChild方法:把新创建的结点插入文档的节点树,即可以让它称为文档中某个现有结点的字节点。Parent.appendChild(childNode)

1) 获得父节点

2) 调用appendChild方法;

3) 

C) createTextNode方法:创建文本结点。(createElement创建的是一个空白的元素。) document.createTextNode(text);

1) 创建出来的文本节点还未被插入文档的节点树。

2) 使用appendChild方法把文本结点插入现有元素的子节点。

3) 

4) 

6. AJAX : 用于概括异步加载页面内容的技术

  大量的页面刷新:用户点击了某个链接,请求发送会服务器,然后服务器根据用户的操作再返回新页面。重新刷新和重新加载整个页面。

  Ajax可以做到只更新页面中的一小部分。是只有一小部分区域会更新,不必再次加载更个页面。

  对页面的请求异步方式发送到服务器。而服务器不会用整个页面来响应请求,会在后台处理请求,于此同时用户还能继续浏览页面并与页面交互。脚本则可以按需加载和创建页面内容,而不会打断用户的浏览体验。利用Ajaxwe应用额可以呈现出功能丰富、交互敏捷、类似桌面应用般的体验。

  适用范围:依赖JavaScript。所以可能会有浏览器不支持它,而搜索引擎也不会抓取到有关内容。

  XMLHttpRequest对象:Ajax技术的核心

  这个对象充当着浏览器脚本(客户端)与服务器之间的中间人的角色。以往的请求都由浏览器发出,而JavaScript可以通过这个对象自己发送请求,同时自己处理请求。

 

7. CSS和DOM

style属性:包含元素样式信息,查询这个属性返回一个对象。

  文档中每个元素都是对象,每个对象有各种属性。告诉节点树上位置信息的属性(parentNode, nextSibling, previousSibling, chilNodes, firstChild, lastChild属性等,指示文档中各节点之间的关系信息。包含元素本身信息(nodeTpe, nodeName);

获取样式:Element.style.styleName;

设置样式:Element.style.property = value;

posted @ 2019-03-20 19:10  张叉叉儿  阅读(432)  评论(0编辑  收藏  举报