视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
JavaScript详解
2025-09-25 17:39:53 责编:小OO
文档
JavaScript详解

JavaScript是NetScape开发的一种基于客户端浏览器,面向对象,时间驱动的网页脚本语言.

    JavaScript特点: 

简单,易学,易用.

跨平台;IE;Navigator

符合ECMA(欧洲计算机制造协会)标准,可移植性.

时间驱动式的脚本程序设计思想.

动态,交互式的操作方式. 

JavaScript的格式:

    JavaScript区分大小写.

    JavaScript脚本程序须嵌入在HTML文件中.

    每行写一条脚本语句.

    语句末尾可以加分号.

    JavaScript脚本程序可以保存为一个外部文件, 但其中不能包含标签.

    document.write("HelloWorld!!!");

请单击

    声明变量: var stdId ;

    定义在函数外的变量都是全局变量.

    在函数里边使用var定义变量,该变量时局部变量, 如果不加var是全局变量. 

with关键字:

with语句: (对象操作语句)

功能: 为一段程序建立默认对象.

规格是: with(<对象>){

<语句组>

}

例: with(document)

    {

     write("

    ");

         write("

  • hello
  • ")

         write("

  • world
  • ")

    write("

")

}

for..in语句: 重复执行指定对象的所有属性:

格式:

for(变量in对象){

<语句组>

}

例: for(var i in obj)

    {

     str += objString + "." + i + " = " + obj[i] + "
";

}

此处i表示属性, obj[i]表示属性值.

其他语句与我们学习过的高级语言(如Java)相似, 比如if…else, for(), switch, break,continue等等. 所以不再赘述. 

JavaScript提供的默认对象:

--日期对象: 

    格式: 日期对象名称=new Date([日期参数])

    日期参数: 1. 省略(最常用的);

             2.英文-数值格式: 月,日,公元年[时:分:秒]

        如: today=new Date("October,1,2008 12:00:00")

            3.数值格式: 公元年,月, 日,[时,分,秒]

如: today=new Date(2008,10,1)

--数组对象: 

    建立数组对象: 

    格式1: 数组对象名称=new Array([元素个数])

    格式2: 数组对象名称=new Array([[元素1][,元素2, …]])

    建议使用: 格式3: 数组对象名称=[元素1,元素2, …]

    对于不加参数的构造函数, 可以将后面的括号省掉.

    数组对象的属性: length表示数组的长度. 

    数组对象的方法: 格式: 数组对象名称.方法([参数])

    join([分隔符])数组元素组合为字符串.

    toString(): 以字符串表示数组. 

    reverse()数组反转.

    valueOf()返回数组值. 

JavaScript的二维数组: 

    数组的数组. 

字符串对象:

建立字符串对象:

    格式:字符串对象名称=new String(字符串常量)

    格式:字符串变量名称="字符串常量"

字符串对象的属性:

    格式: 字符串对象名称.属性

    属性:length字符串长度.

字符串对象的方法:

    格式:字符串对象名称.方法。

字符串的方法:

charAt(索引)

indexOf("字串"[,索引])

lastIndexOf("字串"[,索引])

replace("字串1字串2")

search("字串")

substring(索引i[,索引j])

等等

JavaScript中没有类的概念. 

自定义对象:

--构造函数定义对象类型.

--建立对象实例.

动态定义对象属性

--构造函数定义对象方法名.

--建立方法的描述函数.

例: 

function member(name,gender)

{

    this.name = name;

    this.gender=gender;

    this.display=display; //指定member对象的display方法.

}

function display()

{

    var str = this.name + ":" + this.gender;

document.writeln(str + "
");

}

事件处理程序:

浏览响应某个事件, 实现用户的交互操作而进行的处理(过程). 

    事件处理程序的调用: 浏览器等待用户的交互操作,并在事件发生时,自动调用事件处理程序(函数), 完成事件处理过程. 

    定时器: 用以指定在一段特定的时间后执行某段程序. 

    setTimeout():

    格式: 

    [定时器对象名=]setTimeout("<表达式>",毫秒)

功能: 执行<表达式>一次. 

    setInterval():

    格式:

    [定时器对象名=]setInterval("<表达式>毫秒)

    功能: 重复执行<表达式>, 直至窗口,框架被关闭或执行clearInterval.

    clearInterval(): 终止定时器. 

    格式:

    clearInterval(定时器对象名)

JavaScript内置对象:

--文件对象(重要)

--锚点对象

--链接对象

--框架对象

--表单对象(重要)

--位置对象

窗口对象:

    格式:

[window.]属性

[window.]方法(参数)

opener.属性

opener.方法(参数)

窗口名称.方法(参数)

self.属性

self.方法(参数)

parent.属性

parent.方法(参数)

top.属性

top.方法(参数)

窗口名称.属性 

屏幕对象: 

--描述屏幕的现实及颜色属性. 

屏幕对象的属性: 

--格式:screen.属性. 

绑定事件的两种方法: 

    1)

2)

事件对象:

    当时间发生时,浏览器自动建立该对象并包含该事件的类型,鼠标坐标等. 

事件对象的属性

格式: event.属性

历史对象:

    用以存储客户端最近访问的网址清单. 格式:

history.属性

history.方法(参数)

位置对象:

用来代表特定窗口的URL信息.

格式:

location.属性

location.方法(参数)

文件对象: 代表当前HTML对象, 是由标签组成的, 对每个HTML文件会自动建立一个文件对象. 

    格式:

    document.属性.

    document.方法(参数)

链接对象

--网页中的链接均会被自动看做链接对象, 并依顺序, 分别表示为document.links[0], document.links[1]…

定义链接对象的格式:

字串.link(属性)

Cookie对象:

是一种以文件(Cookie)的形式保存在客户端硬盘的Cookies文件夹中的用户数据信息(Cookie数据). Cookie文件由所访问的Web站点建立, 以长久的保存客户端与Web站点间的会话数据, 并且该Cookie数据只允许被所访问的Web站点进行读取. 

Cookie文件的格式:

NS: Cookie.txt

IE: 用户名@域名.txt

写入Cookie:

格式:

document.cookie = "关键字 = 值 [; expires = 有效日期][;…]"

备注:

1. 有效日期格式: Wdy,DD-Mon-YY HH:MM:SS GMT

2. Wdy/Mon: 英文星期/月份

3. 还包含path, domain, secure属性.

4. 每个Web站点(domain)可建立20个Cookie数据;

5. 每个浏览器可存储300个Cookie数据, 4K字节

6. 客户有权禁止Cookie数据的写入

检查Cookie是否真正的写入到客户端硬盘上:

首先删除IE所有的Cookies

方法:

工具->Internet选项->删除Cookies, 输出文件

保存历史记录在:

C:\\Documents and Settings\ame\\Local Settings\\Temporary Internet Files(win2000)

C:\\Documents and Settings\ame\\Cookies(XP,2003)

有两种类型的cookie:

1)持久性的cookie, 会被保存到客户端的硬盘上.

2)会话Cookie, 不会存储到客户端的硬盘上, 而是放在浏览器进程所处的内存当中, 当浏览器关闭则该会话cookie就销毁了. 

在JavaScript中函数的本质就是一个对象

例:

function add(number)

{

    alert(number + 20);

}

等同于如下的形式:

 var add = function(number)

{

        alert(number + 20);

}

当多个函数的名字相同时, 所对应的对象指向最后定义的一个.

在JavaScript中, 没有方法(函数)的概念. 

在JavaScript中有一个Function(首字母是大写的)对象, 所有定义的函数都是Function对象类型的. 

Function最后的一个参数是函数体的内容,之前的参数作为成员变量. 

例如: var add = new Function("number

add(20);调用定义的函数add. 

在JavaScript中,每一个函数都有一个隐含的对象arguments, 表示给函数实际(不受声明参数的影响)传递的参数. arguments.length表示实际给函数赋值的个数. JavaScript不支持函数的重载, 但是可以使用arguments属性模拟出函数的重载

function add(number1, number2)

{

    alert(arguments[0]);

    alert(arguments[1]);

    alert(arguments[2]);

}

add(2,3,4)

每一个函数都有一个length属性,表示它期望接受的参数的个数. arguments表示实际接受的参数的个数. 

    JavaScript中有五种原始数据类型: Undefined, Null, Boolean, Number以及String. 

任何变量如果只声明却不给其赋值, 那么该变量就是undefined. 

对于Undefined类型只有一个值那就是undefined. 

Null数据类型的值只有一个: null.

在JavaScript中只要表达式不返回undefined和null, 那么表达式就真. 

Boolean数据类型的值由两个: true和false. 

在Javascript中没有char数据类型, 对于字符串,可以使用"'"(单引号)或双引号定义. 

可以使用typeof [变量名] 来查看对应变量的原始值. 其返回值有五个: undefined, boolean, string, number, object. 

也可以按如下的方法定义字符串: 

var s = new String("helloWord"); //

此时alert(typeof s)输出object. 

在JavaScript中, 如果函数没有声明返回值, 那么会返回undefined. 

null与undefined的关系: undefined实际上是从null派生出来的. 

强制类型转换: 在Javascript中, 有三种强制类型转换. 

Boolean(value), Number(value), String(value). 

在JavaScript中, 对于函数中定义的变量来说, 加var表示局部变量, 不加var表示全局变量. 

JavaScript中,所有对象都是从object对象继承过来的. Object中的属性时不可枚举的(propertyIsEnumerable返回false)

对于object对象, 其prototype属性时不可枚举的, (可以通过object.propertyIsEnumerable检测)

在JavaScript中, 可以动态的添加对象的属性, 也可以动态删除对象的属性. 

var object = new Object();

alert(object.username);

object["username"]="helloworld";

alert(object.username);

delete object.username;//username属性已经从object对象中删除了.

alert(object.username);

定义对象的另外一种方式: (更常用的必须掌握的方式). 

var object = {username:"张山", address: "山东"}

alert(object.username);

alert(object.address); 

Javascript中的数组: 第一种方式

var array = new Array();

array.push(1);

array.push(2);

array.push(3);

alert(array.length);

第二种方式:

var array = [1,3,25]; 

数组的sort()方法: 对数组的内容进行排序. 例子如下: 

结果如下: 

原因: sort是按照每个字母进行排序的,并不是根据大小. 

对于JavaScript数组的sort方法来说,它会线将待排序的内容转化为字符串(调用头toString()方法), 按照字符串的先后顺序进行排序. 

可以通过如下的方法增强sort()的功能:

JavaScript中有匿名函数的概念: 只能够在定义的地方使用. 

JavaScript中定义对象的几种方式(JavaScript中只有对象的概念, 没有类的概念): 

1)基于已有的对象扩充其属性. 

    

缺点: 每次只能使用一个对象, 如果要使用更多对象, 需要重新定义. 

2) 工厂方式: 

缺点: 

    每个对象都有方法的备份,因此造成资源的浪费. 

改进: 让一个函数让多个对象共享

    

3)构造函数方式

4)原型("prototype")方式:

 

单纯的使用原型方式的缺点: 

①不能够在构造函数中传参数,只能在对象生成后再去改变属性值. 

②会导致程序出错. 

对于使用原型定义的对象, 多个对象的属性时共享的. 

使用原型方式生成对象, 那么生成的所有对象共享原原型中的属性, 这样一个对象改变了该属性也会反映到其他对象当中. 

改进方式: 使用原型+构造函数方式来定义对象, 对象之间的属性互不干扰, 各个对象间共享同一个方法. 

5)动态原型方式: 在构造函数中通过标识量让所有对象共享一个方法, 而每个对象拥有自己的属性. 

JavaScript中的继承

1)对象冒充的方式. 

该种方法可以实现多继承. 但是不推荐.

2)call方法方式: 

call是Function对象中的方法, 因此我们定义每个函数都用于该方法. 可以通过函数名来调用call方法, call方法的第一个参数会被传递给函数中的this, 从第二个参数开始, 注意赋值给函数中的参数. 

3) 通过apply方法: 

4)原型链方式: 

5)使用混合方式. 

jsUnit详解

JavaScript的编码规范: 通常在JavaScript不希望外界访问的成员和方法名以下划线开始. 

jsUnit测试函数的要遵循的规则与Junit3.8类似(比如说测试函数名以test开头等)

对于JsUnit来说, 其setUp和tearDown方法与Junit的运行原理是不同的, Junit中的setUp和tearDown之间是没有关系的, 也就是说不同的测试方法运行在不同的测试对象之中, 而JsUnit的各个测试函数是运行在同一个测试页面中. 因此, setUp和tearDown会针对同一个变量进行操作 下载本文

显示全文
专题