js知识点

Javascript:
是Netscape公司语言,基于对象和事件驱动
    和java的不同之处
    1、所属公司不一样,java是sun公司,现在是Orcale公司
    2、js是基于对象,java是面向对象
    3、js是由浏览器解释并执行,java是由jvm解释并执行
    4、js是弱类型的语言,java是强类型
    5、js是非严谨的,java是严谨的
    javascript运行在客户端
    
    Javascript的基本语法:
    1、变量
    通过var关键字定义变量,该变量可以赋予不同类型的常量
        var x=3;
        x="abc";
        特殊的常量:undefined
    2、语句
    if ,switch ,while, do while,for
        使用逻辑运算符进行布尔表达式链接的时候,需要短路与和短路或
        因为在js中,非0即为true,0为false,null为false
        
        js特有的语句:
        with():可以确定对象所使用的范围,在范围内,可以直接使用指定的对象的行为和属性
        for(变量 in 对象):可以对对象的属性及行为进行遍历
     3、数组:
      对于js的数组特点在于:该数组的长度是可变的,相对于java中的集合
      该数组中可以存放的元素类型是可以不同的
        
        格式:
          var arr=[3,true,"abc"];
            var arr=new Array();
            
            var arr=[[3,true,"abc"],[2]];
      4、函数
      通过function关键字定义函数
        a.一般函数
        function 函数名(形式参数){
            执行语句;
                return 返回值;
            }
            两个明确:
            1、明确该功能实现后的结果
                2、该功能在实现过程中是否有未知的内容参与运算
        b.动态函数
        使用的Function对象
            var show=new Function("x","y","return x+y;");
            动态函数的特点:可以将参数列表和方法体作为参数传递
  
        c.匿名函数
        一般函数的简写形式
            function(){}
            匿名函数通常可以用于事件的处理的
            如:
            window.οnlοad=function(){alert('onload over');}
                
             在函数使用时需要注意的部分:
             function show(){
              return "show run";
             }
             var method=show();
             var method=show;
             两句代码都是正确的,
             第一句表示的是show方法运行后的结果赋值给method变量
             第二句表示的是将show指向的对象的地址值赋给method,那么method也指向了该对象,那么就可以通过method();的形式来调用这给show方法
         -------------------------------------------------------
         js可以通过对象形式将数据进行封装
         首先对对象进行描述,通过函数来完成
         function Person(name,age){
          this.name=name;
          this.age=age;
         }
         var p=new Person("林青霞",12);
         alert(p["name"]+"...."+p.age);
         p.show=function(){
          alert("show run");
         }
       ------------------------------------------------------------------
       Javascript中已经定义好的一些对象
       1.String,Math,Date,Array,Function....
        这些对象都有一个属性叫做prototype原型
            prototype可以获取指定的对象引用
            可以通过该引用给已有的对象赋予一些新的功能
            
            那么在使用该对象的时候, 可以直接调用定义好的新功能
          function getMax(){
          var max=0;
            for(s in this){
            if(max<this[s])
                max=this[s];
            }
            return max;
          } 
         var arr=[9,2,8,2,6,8,7,4];
         arr.sort();//直接调用Array对象的sort方法对数组进行排序
         那么可不可以想调用sort方法一样调用getMax方法呢?
         就需要将getMax方法添加到Array对象当中
         
         Array.prototype.getMax=getMax;
         var x=arr.getMax();
         ------------------------------------------------------
         常见的全局方法
         parseInt(numstr,[radix]);
          如果指定了基数,那么numstr就会按照基数进制进行转换
         
         var x=6;
         alert(x.toString(2));//110 获取6的对应的二进制表现形式
         ----------------------------------------------
         javascript需要被浏览器所解释执行,就必须要将代码和html相结合
         1.通过定义<script>标签将js代码存入其中,并指定type属性,方便与浏览器启动指定的解析引擎
         2.也可以通过<script>标签,使用src属性链接一个指定的js文件进来
--------------------------------------------------------------------
 
DOM(document Object model) 文档对象模型
其实就是将一些标记型 的文档以及文档中内容当成对象
为什么要将这些文档以及其中的标签封装成对象呢?
因为可以在对象中定义其属性和行为,可以方便的操作这些对象
 
DOM在封装标记型文档时,有三层模型
DOM1:针对HTML1文档
DOM2:针对XML文档
DOM3:针对XML文档
 
HTML,XHTML,XML:这些都是标记型文档
 
DHTML:是多个技术的综合体,叫做动态的HTML
HTML:负责将数据进行标签的封装
css:负责标签的样式
dom:负责将标签以及标签中的数据封装成对象
javascript:负责通过程序设计方式来操作这些对象

标签之间存在着层次关系:
HTML
|---head
|---title
|---base
|---link
|---meta
|---style
|---script
|---body
|---div
|---form
|---input
|---select
|---span
|---a
|---table
|---tbody
|---tr
|---td
|---th
|---dl
|---dt
|---dd
通过这个标签层次,可以形象的看做是一个树形结构,也称标记型文档,加载进内存的是一颗DOM树
这些标签以及标签的数据都是这棵树上的节点

当标记型文档加载进内存,那么内存中有了一个对应的DOM树

DOM对标记型文档的解析有一个弊端就是文档过大,相对消耗资源,对于大型文档可以使用SAX解析

节点类型:
标签型节点:类型1
属性节点:类型2
文本型节点:类型3
注释型节点:类型8
document:类型9

注意:标签之间存在空行时,会出现一个空白的文本节点,在获取节点时一定要注意

节点的关系:
父节点:parentNode
子节点:childNodes:直接子节点,返回的是一个节点对象数组
兄弟节点:
上一个兄弟节点:previousSibling
下一个兄弟节点nextSibling

--------------------------------------------
获取可以通过节点的层次关系完成
也可以通过document对象完成
getElementById:通过ID属性值获取对应的节点对象,如果有多个ID值相同,获取到的是第一个Id所属对象
尽量保证ID的唯一性,返回的是一个对象
getElementsByName:
通过标签的name属性值获取对象,返回的是一堆对象,其实是一个对象数组
getElementsByTagName:即没有ID也没有name时,可以通过标签名来获取节点对象,返回的是一堆对象,其实是一个对象数组
大多数容器型标签都有此方法
         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值