VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > JavaScript教程 >
  • JavaScript总复习

一、基本特点:
    1、JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。
    2、是一种解释性脚本语言(代码不进行预编译)。
    3、主要用来向HTML(标准通用标记语言下的一个应用)页面添加交互行为。
    4、可以直接嵌入HTML页面,但写成单独的js文件有利于结构和行为的分离。
    5、跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行
(如Windows、Linux、Mac、Android、iOS等)。
    6、avascript脚本语言同其他语言一样,有它自身的基本数据类型,表达式和算术运算符及程序的基本程序框架。Javascript提供了四种基本的数据类型和两种特殊数据类型用来处理数据和文字。而变量提供存放信息的地方,表达式则可以完成较复杂的信息处理。
 
二、日常用途:
        1、嵌入动态文本于HTML页面。
        2、对浏览器事件做出响应。
        3、读写HTML元素。
        4、在数据被提交到服务器之前验证数据。
        5、检测访客的浏览器信息。
        6、控制cookies,包括创建和修改等。
        7、基于Node.js技术进行服务器端编程。
 
DAY 02:
javascript的放置和注释
 
  1.输出工具
     A.alert();
     B.document.write()
     C.prompt("","")
  2.javascript如何在html页面当中进行放置
     A.<script></script>
       ***************************************
       javascript可以在html页面当中的任何位置来进行调用,
       但是他们还是一个整体,是相互联系,相互影响。
        ***************************************
     B.可以在超链接或是重定向的位置调用javascript代码
       格式:"javascript:alert('我是超链接')"
       重定向格式:action="javascript:alert('我是表单')"
   3.在事件后面进行调用
        A.格式:onclick="alert('我是事件')"
        B.<script for="two" event="onclick">
            alert("我是DIV2");
            </script>
  4.调用外部javascript文件
       格式: <script src="2.js"></script>
 *******************************************************************
      在调用页面<script>标签对当中不能有任何代码在js脚本中不能出现<script>标签对但是他们还是一个整体,是相互联系,相互影响。
 ********************************************************************
  5.javascript注释:
     1.对付旧的浏览器
     <!--   -->
     2.真正注释符号。
      A.行内注释  //
      B.块注释/* */
 
DAY 04:
javascript变量和数据类型(下)
 
一、typeof 操作符
    他是用来检测数据类型的一元运算符,并且返回的结果始终是一个字符串。
 
二、数据类型
    1.初始类型
        Undefined
         指的就是变量创建后但是没有赋值,而变量的默认值就是undefined
        Null
         指的是什么都没有,仅仅是一个占位符。
        Number
     
        String
          用单双引号来说明,他所包围的值都可以是字符串。
          单双引号的用法:
          效率是一样的;只能成对出现,不能相互交叉使用;可以相互嵌套。
          还包括一些特殊的字符:
            \n   换行
             \t  制表符
             \b  空格
             \r  回车
             \’ ‘
             \”   “
             \   \
        Boolean
         只有两个特殊的值  true false
     2.引用类型
       object (class)
 
       类型                 值                typeof运算的结果    
     Undefined           undefined               "undefined"
       Null                null                    "object"
     String      在单双引号之间的值,特殊字符      "string"
     Boolean            true false                "boolean"          
 
DAY 05:
javascript变量和数据类型(下)
 
数据类型
    1.初始类型
        Undefined
         指的就是变量创建后但是没有赋值,而变量的默认值就是undefined
        Null
         指的是什么都没有,仅仅是一个占位符。
        Number
         包括整型和浮点型。支持二进制、八进制、十进制、十六进制。用科学计数法来表示,
         还包括一些特殊的值:
         Number.MAX_VALUE   最大值
         Number.MIN_VALUE   最小值
                
      String
          用单双引号来说明,他所包围的值都可以是字符串。       
      Boolean
         只有两个特殊的值  true false
     2.引用类型
         object (class)
         包含相关属性和方法的一个集合。
         new 关键字。
      var  obj=new  Object();
       
       类型                  值                  typeof运算的结果 
    Undefined           undefined               "undefined"
     Null                 null                    "object"
    String       在单双引号之间的值,特殊字符        "string"
     Boolean             true false                  "boolean" 
    Number           整型和浮点型,特殊值             "number"
 
DAY 06:
javascript运算符
 
一、运算符和操作数的组合就称为表达式。
二、javascript运算符
  
   (一) 算术运算符
        +  -   *  /   %   var++     ++var   var--   --var
        A.  +
          (1)  用于数值的运算
          (2)  用于字符串的连接
          ***************************
           任何的数据类型和字符串相加都是等于相加以后的字符串
          *************************           
        B. %
          (1)用于取一段范围的值
              eg:取偶数  \取奇数
          (2) 一般不用于小数,因为结果不确定。        
        C. var++   ++var
          ++在前面,他比较自私,会自己先加,然后再赋值。
          ++在后面,他比较无私,先赋值,然后自己再加。
 
(二) 关系运算符(比较运算符)
        <   >    <=   >=  ==   ===   !=  !==
(1)他运算的结果都是布尔值
(2)都是字符串的时候,他会先转换成ASCII码然后进行比较他们的第一个字母。
(3)都是数值的时候,他会正常比较
(4)当一个字符串,另一个是数值的时候,把字符串尝试转换成数值类型,然后进行比较,如果不能转换成数值类型,则会返回NaN,然后返回假
(5) undefined  null
(6)如果两个都是数值型字符串,那么他们也是只比较第一个
(7)如果一个数值和布尔值进行比较,会把布尔值转换为数值再进行比较,true为1,false为0
          A.  ==  只比较值是否相等
             (1)  比较字符串的时候是比较他们的ASCII码是否相等
             (2)  比较两个数值的时候是比较他们的数值是否相等
             (3)  比较函数的时候,判断他们的位置是否相等。
          B.  ===  不但比较值是否相等,还比较类型是否相等。
 
   (三) 赋值运算符
        =   +=   -=   *=  /=   %=
       A. +=
           var a=1;
            a+=3; a=a+3
          (1)  用于数值的相加再赋值
          (2)  用于字符串的连接再赋值
          ***************************
           任何的数据类型和字符串相加都是等于相加以后的字符串
          *************************
   (四) 逻辑运算符(布尔运算符)
        与 and &&      或 or ||       非not !
  
      A. &&
          if(a && b){
       alert("两个都是真的");
      }else{
       alert("至少有一个是假的")
      }
         运算符两边只要有一个是假,那么他的运算结果就是假,只有两个都为真的时候,运算结果
         才是真的。
 
       B.||
        if(a || b){
       alert("至少有一个是真的");
    }else{
       alert("两个都是假的")
    }
          运算符两边只要有一个是真的那么他就是真的,只有当两个都是假的时候,他才是假的。
 
       C.not !
          取反,假的变成真的,真的变成假的。
 
       (1)逻辑运算符可以对任何类型的数据进行运算但是在运算的时候,可以转换为对应的布尔值
          Undefined     false
          Null          false
          Boolean      就是本身的值
          Number       除了0以外都是真的
          String       除了空字符串意外都是真的
          对象         真的
 
       (2)类变量进行赋值
          var a= b && c
            如果一个运算数是对象,另一个是 Boolean 值,返回该对象。
            如果两个运算数都是对象,返回第二个对象。
            如果某个运算数是 null,返回 null。
            如果某个运算数是 NaN,返回 NaN。
            如果某个运算数是 undefined,发生错误。
          var a=b ||c
    如果一个运算数是对象,并且该对象左边的运算数值均为 false,则返回该对象。
    如果两个运算数都是对象,返回第一个对象。
    如果最后一个运算数是 null,并且其他运算数值均为 false,则返回 null。
    如果最后一个运算数是 NaN,并且其他运算数值均为 false,则返回 NaN。
    如果某个运算数是 undefined,发生错误。
 
   (五) 一元运算符
        typeof  +  -  delete  new   ++   --
       
        A. +
          正号、正数
        B.delete
          删除对象的方法或是属性      
        C.new
          用来创建一个对象
     
   (六) 特殊的运算符
 
     ,   ()      = ? :
    A. ,
     用来一次声明多个变量
  
    B.()
      (1) 运算的时候有优先级的作用
          a*(b-c)
      (2) 运行一段函数
   
    C.根据表达式的计算结果有条件的为变量赋值
      格式: var  变量=  Boolean expression?真值:假值
 
   (七) 位运算符
 
DAY 07:
javascript数据类型强制转换
 
一、转换为数值类型
    Number(参数) 把任何的类型转换为数值类型
    A.如果是布尔值,false为0,true为1
    B.如果是数字,转换成为本身。将无意义的后导0去掉。
    C.如果Null转换为0
    D.如果是undefined 转换为NaN  not a number
    E.如果对象则会先调用对象的 valueOf(),如果valueOf()返回的是NaN,然后再调用对象的               toString()
    F.如果是字符串
       1.如果字符串当中只有数字,转换为10进制(忽略前导0和后导0)
       2.如果是有效的规范的浮点型,转换为浮点值(忽略前导0和后导0)
       3.如果是空字符串,则转换为0
       4.如果是其他的值,返回NaN
  
    parseInt(参数1,参数2)  将字符串转换为整数
      A.如果一个字符串只包含数字,则以10进制的方式转换为整型。
      B.他会自动忽略字符串前面的空格,知道找到第一个非空的数值字符串,直到解析到第一个
        非数值的字符串结束。
      C.如果字符串的第一个字符不是空格、数字、-,那么返回NaN
      D.参数1
        八进制                 十进制           十六进制
    0 后面的数字不能超过7       0x              0-9   a-f
         参数2,
        控制输出模式  2-32
     
    parseFloat() 将字符串转换为浮点数
     A.字符串当中的.只有第一个有效,其他的都是无效的。
     B.如果字符串是一个有效的整数,他返回的是整数,不会返回浮点数。       
       
二、转换为字符串类型
  
   1.String(参数) 可以将任何的类型转换为字符串
      null和undefined:  也都会转换为字符串,分别是 null和undefined
      布尔类型:会返回true 和false
       数值类型:本身的字符串
 
    2.toString()
       调用的格式  对象.toString()
       作用是将对象以字符串的方式来表示
        array.toString()     由,分割的字符串
        Boolean.toString()   两个值  true false
        String.toString()    返回本身
        Number.toString(参数)    返回本身的字符串形式
           控制输出模式 :2-32
     
       注意:null和undefined没有toString()方法
 
三、转换为布尔类型
    Boolean()  可以将任何类型的值转换为布尔值
      转换为假:  ""、 0、 NaN 、undefined、 false
      其他的全部都转换为真。
DAY 08:
javascript数据类型隐式转换
一、函数类
    isNaN()
    该函数会对参数进行隐式的Number()转换,如果转换不成功则返回true;
    alert()
    输出的内容隐式的转换为字符串
 
二、运算符类
 
   1.算数运算符
   -  *   /  %
   如果操作数不是数值,将会隐式的调用Number()函数,按照这个函数的转换规则进行转换,
   如果转换不成功,整个表达式返回NaN
 
   +
   如果操作数都是数值,然后进行相加
   任何数据类型和字符串相加,都会隐私的调用他们的toString()方法,然后返回他们拼接的结果。
   如果操作数都是布尔值,那么进行Number()转换,false为0,true为1,进行相加。
 
   2.关系运算符
    关系运算符的操作数可以是任何类型,如果操作数不是数值类型,将会隐式的转换
 
     (1)他运算的结果都是布尔值
     (2)都是字符串的时候,他会先隐式转换成ASCII码然后进行比较他们的第一个字母。
     (3)都是数值的时候,他会正常比较
     (4)当一个字符串,另一个是数值的时候,把字符串尝试转换成Number()数值类型,然后进行比较,如果不能转换成数值类型,则会返回NaN,然后返回假
     (5) undefined == null
     (6)如果两个都是数值型字符串,那么他们隐式转换成ASCII码,也是只比较第一个
     (7)如果一个数值和布尔值进行比较,会把布尔值隐式转换为数值再进行比较,true为1,            false为  0
 
    3.等性运算符 ==  !=
      会对操作数隐式的转换后再比较值
      (1)如果其中至少有一个是布尔值,那么会隐式的调用Number()进行转换,然后比较。
       (2)如果一个为字符串。另一个为数值,那么会隐式的调用Number()对字符串进行转换,如果转换不成功,则返回false;
       (3) undefined == null
          (a)  比较字符串的时候是比较他们的ASCII码是否相等
          (b)  比较两个数值的时候是比较他们的数值是否相等
          (c)  比较函数的时候,判断他们的位置是否相等。
      
     4.逻辑运算符
       A. 放在表达式里面用于判断。
       B. 给变量赋值
         var a= b && c
       如果一个运算数是对象,另一个是隐式的调用Boolean()函数,返回该对象。
       如果两个运算数都是对象,返回第二个对象。
       如果某个运算数是 null,返回 null。
       如果某个运算数是 NaN,返回 NaN。
       如果某个运算数是 undefined,发生错误。
         
          var a=b ||c
       如果一个运算数是对象,并且该对象左边的运算数隐式的调用Boolean()函数 值为false,则返回该对象。
       如果两个运算数都是对象,返回第一个对象。
       如果最后一个运算数是 null,并且其他运算数值均为 false,则返回 null。
       如果最后一个运算数是 NaN,并且其他运算数值均为 false,则返回 NaN。
       如果某个运算数是 undefined,发生错误。
         
三、语句类
 
   if(表达式){
 
    }else{
 
    }
    
   格式: var  变量=  Boolean expression?真值:假值
 
    while(){
 
    }
    if语句和三元表达式里面的表达式会隐式的调用Boolean()函数,按照这个函数的转换规则,转换 为相应的布尔 值 
    
DAY 09:
javascript流程控制
流程:就是程序代码的执行顺序。
流程控制:通过  规定的语句   让程序代码  有条件的   按照一定的方式   执行。
 
一、顺序结构
    按照书写顺序来执行,是程序中最基本的流程结构。
二、选择结构(分支结构、条件结构)
    根据给定的条件有选择的执行形相应的语句。
  (1)   if    else if     else
    1.单路分支
      //条件可以是表达式也可以是任何的数据类型
      //大括号会把他里面的代码当作一个整体来运行,如果只有一条语句,可以省略大括号
      if(条件){
         条件成立执行的语句
       }
     2.双路分支
 
       if(条件){
         条件成立的时候执行的代码
    }else{
          条件不成立的时候执行的代码
    }
      3.多路分支
       
       if(条件1){
         条件1成立执行的代码
    }else  if(条件2){
         条件2成立执行的代码
    }else  if(条件3){
         条件3成立执行的代码
    }......else{
           如果上述条件都不成立执行的代码
    }
       4.嵌套分支
         if(条件1){
            if(){
        }else  if(){
 
        }....
         
    }else  if(条件2){
         条件2成立执行的代码
    }else  if(条件3){
         条件3成立执行的代码
    }......else{
           如果上述条件都不成立执行的代码
    }
 
(2)
        switch(变量任何的数据类型){
           case 值1:
           表达式1;
           break;
             case 值2:
           表达式3;
           break;
            .........
           defalut:
            表达式
          }
     多个选择进行相应的匹配
  *************************************************
   1.当判断某种范围的时候最好用if语句,当判断单个值时候用switch
   2.条件满足的情况不可以重复,会发生不可预期的错误。
  *************************************************
三、循环结构
 
DAY 10:
javascript流程控制-循环结构
在给定的条件满足的情况下,反复的执行同一段代码。
 
1.for
  for(变量=初始值;变量<=结束值;变化值){
    循环体
   }
 
2.while
   当条件满足的时候,执行循环体,当不满足的时候退出循环
   while(表达式){
      循环体     
    }
 
3.do{
   }while(表达式)
 
 先最少执行一次,再进行条件的判断,如果条件满足继续执行,如果不满足则退出循环。
************************************************
1.do{}while   和while的区别
  while:当条件满足的时候,执行循环体,当不满足的时候退出循环,先判断后执行。
  do{}while:先最少执行一次,再进行条件的判断,如果条件满足继续执行,如果不满足则退出循环。
 
2.for  和while的区别
  for一般是用于循环指定的次数
  while是根据条件的真假来循环,当真的时候进行循环,假的时候退出循环。
************************************************
  1. for in
 
DAY 11:
javascript流程控制-跳转语句、with语句
 一、跳转语句
     在循环控制语句中,当 满足指定条件 的时候,退出循环 或者是退出 当前 循环的语句。 
     1.break;
      格式:break;
      跳出并且终止循环,如果后面有代码,则继续往下执行。
     2.continue;
       格式:continue;
      跳出并且终止当前的循环,如果下个值仍满足循环条件,则继续循环。
     ***********************************************************
      break:
       A.switch,指的是当满足某个条件后,退出switch语句
       B.用在循环语句当中,跳出并且终止循环,如果后面有代码,则继续往下执行。
      continue:
        A.只能用在循环语句当中, 跳出并且终止当前的循环,如果下个值仍满足循环条件,则继续           循  环。
        B.最好用适当的语句代替continue  
     ***********************************************************
 
二、标签语句:
 
   用来退出多层循环
  
   格式:
       标签名:语句;
   注意:标签名只可以作用于break 或continue
 三、
   with(){
     }
  用于设置代码在对象中的作用域。
*************************************************
不建议使用。
*************************************************
 
DAY 12:
javascript函数的声明和调用
   将完成某一特定功能的代码集合起来,可以重复使用的代码块。
 
一、函数的声明方式(创建)
 
   A.基本语法
   function  关键字
   function 函数名([参数1],[参数2]....){
      函数体
      [retrun]  //返回值
    }
 
    B.字面量定义的形式(匿名函数)
     var 变量=function ([参数1],[参数2]....){
         函数体
        [retrun]  //返回值
       }
 
    C.以对象的形式来声明
      new 关键字。
      var 变量=new Function([参数1],[参数2]...,"函数体");
 
二、函数的调用方式:
   
    A.函数名() 、变量名();
    B.(function  () {alert("后盾网");})();
 
三、两种声明方式的区别
 
   1.如果两个函数的命名相同,后面的将会覆盖前面的函数。  
   2.以基本语法声明的函数,会在代码运行的时候,提前加载到内存当中,以供以后使用,但是以字面量形式命名的函数,会在执行到的时候,才进行赋值。
   3.在不同的<script></script>块中的函数,使用和调用的时候,应该先定义,后执行。   
   
DAY 13:
javascript函数的参数和return语句
 
一、参数(最多是25)
    可以动态的改变函数体内对应的变量的类型或值,使同一函数体得到不同的结果。
    形参:在定义函数的时候,函数括号中定义的变量叫做形参。
    实参:调用函数的时候,在括号中传入的变量或值叫做实参。
 
   1.参数的类型
     可以是任何的数据类型      
   2.参数的个数(最多是25)
     A.实参和形参数量相等,一一对应。
     B.形参的数量多于实参
       ************************************************
       不会报错,但是多出的参数他的值,会自动赋值为undefined
       ************************************************
     C.实参的数量多于形参
         ************************************************
       不会报错,但是要得到多出的实参的值,要用arguments对象
       ************************************************      
二、Arguments对象
   每创建一个函数,该函数就会隐式创建一个arguments对象,他包含有实际传入参数的信息。
    1.length   检测实际传入参数的个数
    2.callee   对本身的调用
    访问传入参数的具体的值。([下标])
 
三、函数重载
   同一个函数因为参数的类型或数量不同,可以对应多个函数的实现,每种实现对应一个函数体。
 
四、return 语句
   一、停止并且跳出当前的函数
        1.在ruturn 语句后面的函数体内所有内容都不会输出。
        2.在函数体内可以有多个return语句,但是只会执行一个。(判断语句)
   二、给函数返回一个值  return [返回值];
       1.返回值可以是任何的数据类型
       2.只能返回一个返回值。
       3.如果函数没有返回值,那么这个函数的值就会自动的赋值为undefined
      
      
 
DAY 14:
javascript解析顺序和变量作用域
作用域:指的就是一段代码的作用范围。
 
一、变量的作用域
    1.全局变量
      在代码中任何地方都能够访问得到的变量,拥有全局的作用域。
        A.最外层函数外面定义的变量。
        B.没有定义直接赋值的变量,拥有全局属性。
    2.局部变量
      只能在固定的代码片段(函数片段中)中访问得到。
        A.函数内部定义的变量,就是局部变量。
        B.参数也是局部变量。        
  ******************************************
   可以提高程序的逻辑性和安全性,减少名字的冲突。
  ******************************************
    
二、javascript预解析顺序
 
    一、<Script></script>块依次解析。
    二、解析代码运行的环境。
    三、对标识符(关键字)(var function )进行解析,解析到相应的环境下
    四、如果还有<Script></script>块再按照上面的步骤依次解析
 
三、名词解释
 
  (1) 环境:
  
   1.宿主环境   
   2.执行环境    
     执行的环境决定了变量和函数的访问权限。
      A.全局环境
      B.函数环境
      c.eval();
  
 (2)作用域
   一段代码的作用范围。
 
 (3)作用域链
    在一个执行环境中有权访问的变量和函数能够有序有机的进行访问
 
  
 
   
DAY 15:
javascript回调函数、递归函数
 
一、回调函数
    通过函数的指针来调用函数。
    (把一个函数的指针做为另一个函数的参数,当调用这个参数的时候,这个函数就叫做回调函数。)
    1.通过指针来调用。
    2.匿名方法
    3.定义个调用同时进行
 
二、递归函数
    在函数内部直接或间接的调用自己。
 
三、内嵌函数(闭包)
 
DAY 16:
javascript 内置顶层函数
 
名词解释:
1.函数
2.内置:  ECMAscript 
  内置函数:ECMAscript 自带的函数  Number() 
  宿主函数: BOM    DOM   alert()   prompt()   confirm();
  //confirm()  弹出一个带有确定和取消按钮的一个对话框,确定返回真,取消返回假。
 
3.顶层 
   字符串函数:字符串.函数() 
   数组函数
   顶层对象的函数,可以作用于任何对象。
 
内置 顶层 函数
  1.escape()   对字符串进行编码
  2.unescape()   对编码的字符串进行解码
  3.Number()  转换成数值类型
  4.String()   转换成字符串类型  
  5.Boolean()  转换成布尔类型
  6.parseInt()  将字符串转换为整型
  7.parseFloat()  转换为小数
  8.isNaN()    判断一个数能否转换为数值类型。
  9.isFinite()   判断一个数是否为有穷的数字。将不是有穷的数字或不能转换为数值类型的数返回假
  10.eval()  将 字符串 转换成javascript命令执行(必须符合javascript语法规范,否则会出错)。
 IE:
    eval()   在当前作用域生效
    window.eval()  在当前作用域生效
    execScript()
 FF(火狐浏览器):
    eval()   在当前作用域生效
    window.eval()  在全局生效
 
DAY 17:
javascript数组
    数组是一个可以存储 一组 或是 一系列 相关数据 的  容器。
一、为什么要使用数组。
   (1)为了解决大量相关数据的存储和使用的问题。
   (2)模拟真是的世界。
二、如何创建数组
  (1) 通过对象的方式来创建。
      var a=new Array();   
     A.直接赋值
      var a=new Array(元素1,元素2,元素3,元素4,........)
      **********************************************
       var a=new Array(数值)
       如果只有一个元素,并且这个元素是数值类型的,那么他就是指定数组的长度。
       并且他的值都是undefined
       数组的属性:length属性     
      **********************************************
     B.声明以后再赋值
       var a=new Array();
       a[0]=1;
       a[2]=2; 
       a[0]=3;
 
   (2)隐形声明的方式
      var a=[];
      A.直接赋值:
      var a=[1,2,3,4];  
      B.声明以后再赋值
      var a=[];
       a[0]=1;
       a[1]=2; 
       a[2]=3;
     ****************************************************************
     javascript数组可以存储任何类型的值。
    ****************************************************************
三、访问数组的元素
     通过数组的(中括号)下标访问。
   ***************************************************
    数组下标从0开始,他的最大值,是length属性-1
   ***************************************************
四、遍历数组的元素
    (1) for  循环
    (2) while();
    (3) for in
     有两个作用:
       第一:用于数组的遍历
       第二:用于对象属性的遍历
 
DAY 18:
javascript数组(二)
   数组的分类:
1.下标的类型
  A.下标是数字的类型的(索引数组)    
  B.下标是字符串类型的(关联数组)
  1. 维度来分类 
  A.一维数组   
  B.二维数组   
声明二维数组:
      //  var arr=[[1,2,3],[4,5,6]];
      //  alert(arr[1][1])
注意:
1.可以存储任何类型的数据
2.只支持一维数组。
3.长度可变。
4.如果是索引数组,下标始终从0开始,如果指定了长度,但是没有赋值,他的值就会自动赋值为  undefined;
  
DAY 19:
javascript对象基础
一、名词解释:
     1.基于对象
      一切皆对象,以对象的概念来编程。
     2.面向对象编程(oop  Object oriented  programming)      
       A.对象
      就是人们要研究的任何事物,不仅能表示具体事物,还能表示抽象的规则,计划或事件。属性的无序集合,每个属性可以存一个值(原始值,对象,函数)    
       B.对象的属性和行为
         属性:用数据值来描述他的状态
         行为:用来改变对象行为的方法
       C.类 
      具有相同或相似的性质的对象的抽象就是类。对象的抽象,就是类,类的具体化(实例化)   就叫做对象
 
二、创建对象
  1.构造函数方法:
      function fun1 () {    }
       var obj=new fun1();
       alert(typeof obj)
  2.Object方法
      var obj=new Object();
  3.json方法(javascript object notation) 原生格式
      var obj={};
     alert(typeof obj);
 
三、如何添加属性和方法
     如果属性的值是函数,我们叫做他是对象的方法,否则叫做是属性。
    1.构造方法
       A.声明的时候添加    
       B.声明以后再添加
    2.json方法
       A.声明的时候添加
    var obj={属性名:属性值,属性名2:属性值2,属性名3:属性值3,......};   
       B.声明以后再添加
      
四、访问对象的属性和方法:
    引用值.属性
    引用值.属性();
 
五、如何销毁对象
    javascript自己的垃圾回收机制,就是在对象没有引用的时候释放内存(销毁);
    对象=null;
 
六、如何删除对象的属性
   delete
    
DAY 20:
javascript对象的遍历、内存分布和封装特性\
 
一、javascript对象遍历
   1.javascript属性访问
      对象.属性
      对象[属性]  //字符串格式
   2.javascript属性遍历
      for in
 
二、内存分布
三、对象的特性之封装
    把对象所有的组成部分组合起来,尽可能的隐藏对象的部分细节,使其受到保护。只保留有限的接口和外部发生联系。
 
    一、工厂函数
    二、构造函数
    三、prototype方法
    四、混合方法
     
DAY 21:
javascript对象的继承和Object对象
    对象的一个类可以从现有的类中派生,并且拥有现有的类的方法或是属性,这和过程叫做继承。被继承的类叫做父类或是基类,继承的类叫做子类。
    (一个对象拥有另一个对象的属性和方法)
优点: 
  提高代码的重用性;提高代码的可维护性;提高代码的逻辑性
 
  • Object对象
    var obj=new Object()
     属性:
     1.constructor 原型
       对创建对象的函数的引用(指针)。
     2.//Prototype
**********************************************
  对该函数对象的对象原型的引用。是函数对象的默认属性
**********************************************
         A.对象的共享属性存放到代码段当中。
         B.可以实现继承。
 方法:
    A。hasOwnProperty(property)
         判断对象是否有某个特定的属性
    B.IsPrototypeOf(object)
       判断该对象是否为另一个对象的原型。(用来检测对象的类型)
    c.运算符
      instanceof
二、继承
  1.原型继承
  2.对象冒充的形式
    A.call
       obj1.fun.call(obj2,参数1......)
    B.apply
      obj1.fun.call(obj2,[参数1,参数2....])
让对象1的方法冒充成对象2的方法。
 
DAY 22:
对象的继承顺序、分类和内置Math对象
 
一、对象的继承顺序
     Object.prototype.say=function  () {
       alert("我是顶层的方法");
    }
    function person () {
        this.say=function  () {
           alert("我是父类的方法");
        }
    }
    person.prototype.say=function  () {
         alert("我是父类原型的方法");
    }
    function study () {
    this.say=function  () {
       alert("本身的方法");
    }  
    }
    study.prototype=new person();
     study.prototype.say=function  () {
       alert("本身原型的方法");
     }
    var zhangsan=new study ();
    alert(zhangsan.say)
 
二、对象的分类
  1.内置对象
    Global
    Math
  2.本地对象
    Array
    Number
    String
    Boolean
    Function
    RegExp
 
3.宿主对象
     DOM
     BOM
  
 三、Math对象  
     格式: Math.方法(参数) 
     1.取绝对值
       Math.abs();
     2.取近似整数
         //Math.round()  四舍五入
         //Math.floor()  对数进行下取舍
         //Math.ceil()  对数进行上取舍
     3.取最大值或最小值
       Math.max(参数....)
       Math.min(参数.....)
     4.取随机数
    Math.random();
 
DAY 23:
javascript字符串对象
 
一、属性
    1.length
      计算字符串的长度(不区分中英文)
     2.constructor
      对象的构造函数
 
二、方法
   (1)获取类型
      1.myString.charAt(num)
        返回在指定位置的字符。
      2.myString.charCodeAt(num)
         返回指定位置的字符的Unicode编码
      3. String.fromCharCode()
          接受一个或多个指定的Unicode值,然后返回一个或多个字符串。 
  
   (2)查找类型
      1.myString.indexOf()
      返回某个指定的字符串,在字符串中首次出现的位置
      2. myString.lastIndexOf()
        返回一个字符串值首次出现的位置
      3. myString.match()
        在字符串中检索指定的值,返回的值就是指定的类型(值)
      4.search()
        只能作用于正则。
      5. myString.replace()
         将字符串中的一些字符替换为另外一些字符。
 
    (3) 截取类型
      1.myString.slice(start,end)
        从指定的开始位置,到结束位置(不包括)的所有字符串。如果不指定结束位置,则从指定的开始位置,取到结尾    
      2.substring(start,end)
        从指定的开始位置,到结束位置(不包括)的所有字符串。如果不指定结束位置,则从 指定的开始位置,取到结尾
      3.substr(start,length)
        从指定的位置开始取指定长度的字符串。如果没有指定长度,从指定开始的位置取到       结尾。
   *********************************************************************
    slice(start,end)  vs  substring(start,end)
    slice参数可以是负数,如果是负数,从-1开始指的是字符串结尾。
    substring参数是负数的时候,会自动转换为0 *********************************************************************
 
(5)转换类型
 1.  split("分割位置",[指定的长度])
     将一个字符串分割成数组
 2.toLowerCase();
      用于把字符串转换为小写。
 3.toUpperCase()
      将字符串转换为大写
 
(6) 样式类型
1.fontcolor()
   给字符串指定颜色,十六进制表示、red、rgb(255,0,0)
2.fontsize()
  指定字符串的大小 (1-7)
 
DAY 24:
javascript数组对象
一、属性
   1.length
     设置或返回数组元素的数目。
   2.constructor
      返回构造函数的引用
 
 
二、方法
    A.删除或添加类
      1. myarr.push(数组元素......)
          向数组的末尾添加新的元素,返回值是新数组的长度。
          可以一次添加多个元素
      2. myarr.unshift(数组元素.....)
          向数组的开头加入新的元素,返回值是新数组的长度
           可以一次添加多个元素
      3. myarr.pop()
           删除数组的最后一个元素,返回删除的元素
      4. myarr.shift()
           删除数组的第一个元素,返回删除的元素
      5.万能的添加删除函数
         myarr.splice(index,数量,添加的元素.....)
         (1)index   从何处开始添加或删除,必须是数值类型(数组的下标)
         (2) 数量    规定了删除的个数,如果是0,则不删除
         (3)  需要添加的元素,可以当作替换的元素
           ************************************
            如果有删除的元素,返回删除的元素
           ************************************
     B.数组的转换
       mystr.split()
       myarr.join([分隔符])
       把数组元素按照指定分隔符组合成一个字符串,如果没有指定分隔符,默认是用“,”     返回结果就是组合成的字符串
     C.数组的分割
      myarr.slice()      
        从截取指定的开始位置,到结束位置(不包括)的元素。如果不指定结束位置,则从 指定的开始位置,取到结尾(数组的下标)
        支持负数(-1开头)  返回新数组。    
    D.排序
       冒泡排序
     myarr.sort()
     对数组进行排序,如果没有参数,则按照字母的编码进行排序,如果要按照其他的顺序    来排序,要提供一个函数。
    会提供两个参数(a,b)
    a<b  a在b前
    a=b
    a<b
 
  F.数组的连接
   myarr.concat()
   连接两个或更多的数组,并返回新数组,但是对原数组没有任何影响.
  G.自定义一个函数(删除数组的重复元素)
DAY 25:
javascript浏览器对象模型-windwo对象(上)
    BOM    Browser  Object Model
window对象 是BOM中所有对象的核心
 一、属性
    1.(位置类型-获得浏览器的位置)
     IE:
       window.screenLeft
       可以获得浏览器距屏幕左上角的左边距 
        window.screenTop
       可以获得浏览器距屏幕左上角的上边距
     FF: 
        alert(screenX) 
         alert(screenY)
       (获得浏览器的尺寸)
     FF:window.innerWidth  获得窗口的宽度
         window.innerHeight  获得窗口的高度
 
    2.关系类型
      A.parent返回父窗口
      B.top   返回顶层窗口
      C.self===window
   
   3.stutas  设置窗口状态栏的文本
 
  二、方法
 
   1.窗体控制
    A.对窗体的移动
    window.moveBy(x,y)  相对于当前位置沿着X\Y轴移动指定的像素,如负数是反方向
    moveTo(x,y)  相对于浏览器的左上角沿着X\Y轴移动到指定的像素,如负数是反    方向
 
    B.窗体尺寸的改变 
    resizeBy(x,y)  相对于当前窗体的大小,调整宽度和高度
    resizeTo(x,y)  把窗体调整为指定宽度和高度
  
DAY 26:
javascript浏览器对象模型-windwo对象(下)
 
    BOM    Browser  Object Model
     window对象 是BOM中所有对象的核心。
 
   一、属性
    1.(位置类型-获得浏览器的位置)
      IE:
       window.screenLeft
       可以获得浏览器距屏幕左上角的左边距 
        window.screenTop
       可以获得浏览器距屏幕左上角的上边距
 
      FF: 
        alert(screenX) 
         alert(screenY)
       (获得浏览器的尺寸)
 
      FF:window.innerWidth  获得窗口的宽度
         window.innerHeight  获得窗口的高度
 
    2.关系类型
      A.parent返回父窗口
      B.top   返回顶层窗口
      C.self===window
      D.opener  开启者
 
    3.stutas  设置窗口状态栏的文本
 
  二、方法
 
   1.窗体控制
    A.对窗体的移动
    window.moveBy(x,y)  相对于当前位置沿着X\Y轴移动指定的像素,如负数是反方向
    moveTo(x,y)  相对于浏览器的左上角沿着X\Y轴移动到指定的像素,如负数是反    方向
    B.窗体尺寸的改变  
    resizeBy(x,y)  相对于当前窗体的大小,调整宽度和高度
    resizeTo(x,y)  把窗体调整为指定宽度和高度
 
  2.对窗体滚动条的控制
   scrollBy(x,y) 相对于当前滚动条的位置移动的像素(前提有滚动条)
   scrollTo(x,y) 相对于当前窗口的高度或宽度,移动到指定的像素
 
  3.时间间隔的函数
    setInterval("函数或者代码串",指定的时间(毫秒))  按照指定的周期(毫秒)不断的执行函   数或是代码串
 
   clearInterval()
   setTimeout("函数或者代码串",指定的时间(毫秒))  在指定的毫秒数后只执行一次函数或代码。 
   clearTimeout()
 
   4.打开新的窗口
    open(url,name,feafurse,replace) 通过脚本打开新的窗口
 
DAY 27:
javascript-History、Location、Screnn对象实例讲解
 
一、history对象
    包含浏览器访问过的url
    1.属性
      length  返回浏览器历史记录的数量
    2.方法
     back() 后退
     forward()  前进
     go(number)  如果参数是正数,那么就是前进相应的数目,如果是负数那么反之,如果是       0那么就是刷新
 
二、location对象  包含有当前url的相关信息
    1.属性
      href     设置或 返回完整的url
      search   返回url?后面的查询部分
    2.方法
      assign()   加载新的文档
      reload(boolean)   重新加载文档, 当参数是true,任何时候都会重新加载,false的时候,只有在文档改变的时候才会加载,否则直接读取内存当中的。
      replace() 用新的文档代替当前的文档  (没有历史记录)
 
三、screen对象
    记录了客户端显示屏的信息 
     属性:
     availHeight   返回显示屏幕的高度 (除 Windows 任务栏之外)。
     availWidth    返回显示屏幕的宽度 (除 Windows 任务栏之外)。
      height       返回显示屏幕的高度。
      width        返回显示屏幕的宽度。
 
DAY 28:
javascript-document对象详解
DOM  document(html xml) object modle
document对象(DOM核心对象)
作用:
  1.内容 innerHTML
  2.属性
  3.样式
 
document对象
一、属性
  title  返回或设置当前文档的标题
  URL    返回当前文档的url
  bgColor 设置文档的背景色
  fgColor  设置文档的前景色(设置文字颜色)
二、方法
   getElementById(idname)  返回拥有指定id的(第一个)对象的引用
   getElementsByTagName(tagname)  返回带有指定标签名的对象的集合
   getElementsByName(name)  返回带有指定name指定名称的对象的集合
   write()
 
DAY 29:
javascript-document对象详解(下)
 
二、方法
   getElementById(idname)  返回拥有指定id的(第一个)对象的引用
   getElementsByTagName(tagname)  返回带有指定标签名的对象的集合
   getElementsByName(name)  返回带有指定name指定名称的对象的集合
   **************************************************************
   getElementsByName(name)是不兼容的。
   如果是IE:
   如果该对象的标准属性包含有name,那么可以正确的使用。否则不可以使用。
   如果是FF:
   该方法可以适用于任何情况。
   结论:主要是适用于表单。
   **************************************************************
   getElementsByClassName()返回带有指定classname指定名称的对象的集合  
 
*********************************************************************
    不兼容,可以自己写一个兼容性函数  *********************************************************************
 
三、dcoument对象的集合
   A.all   所有元素的集合
   B.forms  返回对文档中所有form对象的引用
   通过集合来访问相应的对象
     1.通过下标的形式    
     2.通过name形式
   C. anchors 返回对文档中所有anchors 对象的引用
   D.images  返回对文档中所有image 对象的引用
   F.links   返回对文档中所有area 对象和link对象的引用
 
DAY 30:
javascript-对文档对象的内容、属性、样式的操作(上)
一、操作内容
    1.innerHTML  用来设置或获取对象起始和激素标签内的内容(识别html标签) 
    2.innerText  用来设置或获取对象起始和激素标签内的内容 (IE)
      textContent用来设置或获取对象起始和激素标签内的内容 (FF)
    3.outerHTML  用来设置或获取包括本对象在内起始和激素标签内的内容(识别html标签) 
      outerText  用来设置或获取包括本对象在内起始和激素标签内的内容
 
二、操作属性
    1.直接操作
      对象.属性 
      对象.属性=值  (设置、获取、添加属性(属性值))
    2.
      getAttribute("属性")  获取给定的属性的值
      setAttribute("属性","值")  设置或是添加属性
 
三、操作样式
   1.行内样式
     对象.style.属性
     对象.style.属性=值   (设置、获取、添加属性)
     ****************************************************
     遇到属性是"-"链接的,要将"-"去掉,后面的单词的首字母大写
     ****************************************************
   2.css层叠样式
   3.行内样式和css层叠样式通用的方式
      
DAY 31:
javascript-对文档对象的内容、属性、样式的操作(下)
 
一、css层叠样式的操作
    1>通过ID来更改样式
    2>通过className更改样式
     *******************************************
      适合批量更改
     *******************************************
   
3>更改或者获取或者设置某个属性的值
       **************************************************************
      document.styleSheets[下标].rules[下标].style.属性
      document.styleSheets[下标].rules[下标].style.属性=值
     document.styleSheets   样式表的集合
     document.styleSheets[0].rules   样式规则的列表
     document.styleSheets[0].rules.style  样式规则的集合
     document.styleSheets[下标].rules[下标].style.属性
       适用于IE
      **************************************************************
      document.styleSheets[下标].cssRules[下标].style.属性
      document.styleSheets[下标].cssRules[下标].style.属性=值
       适用于FF
     ***************************************************************
 
   4> 动态的添加删除css样式规则
     document.styleSheets[下标].insertRule("选择器{属性:值}",位置)                           
     document.styleSheets[下标].addRule("选择器","属性:值",位置)   IE                                  removeRule(位置)   IE
 
二、行内样式和css层叠样式通用的方式   
    对象.currentStyle.属性  IE   用来获得实际的样式属性
    getComputedStyle(对象,null)   FF  用来获得实际的样式属性
   *******************************
     只能获取不能设置
   *******************************
   
DAY 32:
javascript-对表单的操作实例讲解(上)
 
一、获得表单引用
    1>通过直接定位的方式来获取
      document.getElementById();
      document.getElementsByName();
      document.getElementsByTagName();
    2>通过集合的方式来获取引用
      document.forms[下标]
      document.forms["name"]
      document.forms.name
    3>通过name直接获取“(只适用于表单)
      document.name
 
二、获得表单元素的引用
    1>直接获取
      document.getElementById();
      document.getElementsByName();
      document.getElementsByTagName();
    2>通过集合来获取
       表单对象.elements  获得表单里面所有元素的集合
       表单对象.elements[下标]
       表单对象.elements["name"]
       表单对象.elements.name
    3>直接通过name的形式  
      表单对象.name
 
三、表单元素共同的属性和方法
    1>获取表单元素的值
      表单元素对象.value   获取或是设置值
    2>属性
      disabled  获取或设置表单控件是否禁用 true false
       form   指向包含本元素的表单的引用
    3>方法
      blur()失去焦点
      focus()  获得焦点
 
DAY 33:
javascript-对表单的操作实例讲解(中)
 
一、文本域
   <input type="text" >
   ***********************************
     操作文本域的值
     value 属性     设置或者获取值
   ***********************************
二、单选按钮
   *******************************************
    checked  返回或者设置单选的选中状态
             true 选中     false 未选中
    value 属性 获取选中的值,必须先判断选中状态。
   *******************************************
三、多选按钮
   *******************************************
    checked  返回或者设置单选的选中状态
             true 选中     false 未选中
    value 属性 获取选中的值,必须先判断选中状态。
   *******************************************
四、下拉框
   ************************************************
    selected  设置或返回下拉框的选中状态
                true 选中     false 未选中
    selectedIndex  设置或返回下拉框被选中的索引号
   ************************************************
 
DAY 34:
javascript-对表单的操作实例讲解(下)
 
五、文本区域
  ***************************************
   <textarea></textarea>
    value 操作值
  ***************************************
六、验证表单
   1.事件
     onsubmit  当表单提交的时候触发的事件
     onblur
     obfocus
     onchange
   2.return false;  阻止事件的默认行为(适用于所有事件)
七。提交方法
   表单的方法
   表单对象.submit()
 
DAY 35:
javascript-节点属性详解
 
根据 DOM,HTML 文档中的每个成分都是一个节点。
DOM 是这样规定的:
    整个文档是一个文档节点
    每个 HTML 标签是一个元素节点
    包含在 HTML 元素中的文本是文本节点
    每一个 HTML 属性是一个属性节点
    注释属于注释节点
 
一、如何获得节点引用
    1.旧的获取节点引用方式
      getElementById()
      getElementByTagName()
      getElementByName()
 *******************************************
 劣势:
  1.浪费内存
  2.逻辑性不强
 *******************************************
    2.通过节点  关系属性 获得节点的引用
      对象.parentNode  获得父节点的引用
      对象.childNodes  获得子节点的集合
      对象.firstChild  获得第一个子节点
      对象.lastChild   获得第一个子节点\
      对象.nextSibling 获得下一个兄弟节点的引用
      对象.previousSibling 获得上一个兄弟节点的引用
****************************************************************
劣势:兼容性不好。
****************************************************************
     
二、节点的信息(属性)
             节点类型           节点名字        节点值
            nodeType(数值)       nodeName      nodeValue
 
元素节点         1                标签名         null  
属性节点         2                属性名        属性值
文本节点         3                 #text         文本
注释节点         8                 #comment      注释的文字
文档节点         9                 #document     null
 
三、兼容性的方法
 
DAY 36:
javascript-节点的增、删、改、查实例讲解
 
一、创建节点
    1>创建元素节点
      document.createElement("元素标签名");
    2>创建属性节点
       document.createAttribute("属性名");
       对象.属性="属性值"
       对象.setAttribute(属性名,属性值)
       对象.getAttribute(属性名,属性值)
    3>创建文本节点
       对象.innerHTML="";
       document.createTextNode("文本");
 
二、追加到页面当中
    父对象.appendChild(追加的对象)  插入到最后
    父对象.insertBefore(要插入的对象,之前的对象)  插入到最后
 
三、修改(替换)节点
   父对象.replaceChild(要修改的对象,被修改的);
四、删除节点
   父对象.removeChild(删除的对象)
如果确定要删除节点,最好也清空内存  对象=null;
 
DAY 37:
javascript事件基础和事件绑定
 
一、事件驱动
    1.事件
      javascript侦测到的用户的操作或是页面的一些行为(怎么发生的)
    2.事件源
      引发事件的元素。(发生在谁的身上)
    2.事件处理程序
      对事件处理的程序或是函数 (发生了什么事)
 
二、事件的分类
  1.鼠标事件    
    onclick
    ondblclick
    onmousedowm
    onmouseup
    onmousemove
    onmouseover
    onmouseout
 2.键盘事件
    onkeyup
    onkeydown
    onkeypress   鼠标按下或按住
 3.表单事件
    onsubmit
    onblur
    onfoucs
    onchange
 4.页面事件
    onload
    onunload
    onbeforeunload
 
三、如何绑定事件
  1.在脚本中绑定
  2.直接在HTML元素绑定
  3.<script for="two" event="onclick">
    alert("我是DIV2");
     </script>
四、同一个事件绑定多个事件处理程序
   1.自己写的
   2.IE:
     对象.attachEvent("事件(on)","处理程序")  添加
     对象.dettachEvent("事件(on)","处理程序")  删除
     FF:
     对象.addEventListener("事件(on)","处理程序",布尔值)   添加
     对象.removeEventListener("事件","处理程序",布尔值)  删除
  
DAY 38:
javascript事件对象实例讲解
 
一、事件对象
    用来记录一些事件发生时的相关的信息的对象
    1.只有当事件发生的时候才产生,只能在处理函数内部访问
    2.处理函数运行结束后自动销毁。
 
二、如何获取事件对象
    IE:window.event
    FF:对象.on事件=function (e){}
  
三、事件对象的属性
    1.关于鼠标事件的事件对象
     相对于浏览器位置的
     clientX  当鼠标事件发生的时候,鼠标相对于浏览器X轴的位置
     clientY  当鼠标事件发生的时候,鼠标相对于浏览器Y轴的位置
 
     相对于屏幕位置的
     screenX   当鼠标事件发生的时候,鼠标相对于屏幕X轴的位置
     screenY
 
     相对于事件源的位置
     IE:
        offsetX   当鼠标事件发生的时候,鼠标相对于事件源X轴的位置
        offsetY
     FF:
        layerX   当鼠标事件发生的时候,鼠标相对于事件源X轴的位置
        laterY
 
   2.关于键盘事件的事件对象
       keyCode  获得键盘码
       空格:32   回车13  左上右下:37 38 39 40
       altKey   判断alt键是否被按下  按下是true 反之是false   布尔值
   
     ctrlKey
     shiftKey
     type   用来检测事件的类型主要是用于多个事件通用一个事件处理程序的时候
 
DAY 39:
javascript事件流讲解和实例应用
    当页面元素触发事件的时候,该元素的容器以及整个页面都会按照特定顺序相应该元素的触发事件,事件传播的顺序叫做事件流程。
 
一、事件流的分类
    1.冒泡型事件(所有的浏览器都支持)      
        由明确的事件源到最不确定的事件源依次向上触发。
    2.捕获型事件(IE不支持 w3c标准 火狐)
        不确定的事件源到明确的事件源一次向下触发。
        addEventListener(事件,处理函数,false)
        addEventListener(事件,处理函数,true)
 
二、阻止事件流  
    IE:   事件对象.cancelBubble=true;  
    FF:   事件对象.stopPropagation();
 
三、目标事件源的对象
    IE:事件对象.srcElement
    FF:事件对象.target
         
 
   
 
 
 
    
 
 
   
    
 
 
 
 
 
 
 


相关教程