1 链接
function over(object)
{
object.color = "red";
}
function out(object)
{
object.color = "blue";
}
<font style="CURSOR:hand" οnclick="window.location.href='www.google.com'" οnmοuseοver="over(this)" οnmοuseοut="out(this)"> GOOGLE</font> 这里this表示font的对象 location 为位置对象
2 定时器
var sec = 5;
var timeId = setInterval("count();", 1000); //每隔一秒执行count()
function count()
{
if(sec>0)
{
//setTimeout("alert('OK!');", 7000); //7秒钟后执行,第一参数以字符串来调用函数
document.getElementById("num").innerHTML = sec--; //id为num的内嵌的HTML文本的值+1
}
else
{
clearInterval(timeId);
location.href="www.google.com";
}
}
function stopCount()
{
clearInterval(timeId);
}
3 返回
<a href="#" οnclick="history.back();return false;">返回</a>
(window.hitory.back(-1))
4 获得焦点
<body οnlοad="document.forms[0].elements[0].focus();">
5 两种类型cookie
1)持久性cookie,会被存储到客户端的硬盘上
2)会话cookie,不会存储到客户端的硬盘上,而是放在浏览器进程所处的内存当中,当关闭浏览器时自动销毁(session)
6 收缩列表
function turn()
{
var m = document.getElementById("change"); /button
var n = document.getElementById("table");
if(m.value == "收缩")
{
n.style.display = "none"; //CSS
m.value = "展开 ";
}
else
{
n.style.display = "block";
m.value = "收缩";
}
}
7 全选checkBox
function selectAll()
{
var s = document.getElementsByName("checkbox");
var m = document.getElementsByName("all")[0];
if(m.checked)
{
for(var i = 0; i < s.length; i++)
{
s[i].checked = true;
}
}
else
{
for(var i = 0; i < s.length; i++)
{
s[i].checked = false;
}
}
}
8 所有函数都是Function。Function对象接收的所有参数都是字符串类型的,其中最后一个参数就是要执行的函数体,而前面的参数则是函数真正需要接收的参数。
new Function("name", "name1", "alert();")
每个函数都有一个隐含对象arguments (数组),表示给函数实际传递的参数,都有一个length属性,表示该函数期望接收的函数参数的格式。
9 javascript有五种原始数据类型:Undefined(值:undefined,如果没有声明返回值,变量未定义,则返回undefined),Nul(null undefined是null中派生出来的),Boolean(false,true),Number(),String(string)
typeof + 变量名字:用于变量的数据类型,返回值(5个):undefined,boolean,number,string,object(对象,均继承自Object)
三种强制装换:Boolean(value) Number(value) String(value)
10 在函数中定义的变量,加var表示局部变量,不加var表示全局变量
11 可以动态添加对象的属性。
var object = new Object;
object.username = "jomedy"; //添加属性 /
delete object.username; // 删除object类的username的属性
12 定义数组 调用sort方法,传入比较规则,可以排序
1)var array = new Array(); array.push(1);
2) var array = [1,3];
12:var object = {username : "zhangsan", password : "123"}; //添加对象
13 工厂方式创建对象
function createObject(username)
{
var object = new Object();
object.username = "zhangsan";
object.get = function()
{
alert(this.username);
}
return object;
}
var object = createObject();
object.get();
//让一个函数被多个对象所共享,而不是每一个对象拥有一个函数对象
function get()
{
alert(this.username);
}
function createObject(username)
{
var object = new Object();
object.username = username;
object.get = get;
return object;
}
var object = createObject();
object.get();
14 构造函数创建对象
15 原型prototype创建对象 (看网摘里有)
如果使用原型方式对象,那么生成的所有对象会共享原型中的属性,这样一个对象改变了该属性也会反映到其他属性中。(注意:基本数据类型不是)
16 原型+构造函数创建对象
对象之间的属性互不干扰
17 动态原型创建对象
在构造函数中通过一个标志量,让所有对象共享一个方法,而每个对象拥有自己的属性
18 继承(看网摘里有)
1)对象冒充
2)call方法,是Function对象中的方法,因此我们定义的每个函数都拥有该方法,可以通过函数名来调用该方法,call方法的第一个参数会被传递给函数中的this,从第2个参数开始,逐一赋值给函数中的参数。
3)apply方法,与call类似,但第2个参数,是一个数组
eg function Child(username, password)
{
Parant.apply(this, new Array(username));
this.password = password;
this.sayHello = function()
{
alert(this.password);
}
}
4)原型链(无法给构造函数传递参数)
5)混合方式
19 对于JsUnit来说,其setUp和tearDown方法与JUnit的运行原理是不同的,JUnit中的setUp和tearDown之间是没有关系的,也就是说不同的testCase运行在不同的测试对象之中,而JsUnit的各个testCase是运行在同一个测试页面中,因此setUp和tearDown会针对同一个变量进行操作。
setUpPage函数只执行一次(在页面加载后),类似于JUnit的@beforeClass (注意:无@afterClass对应的函数)
setUpPageStatus = "complete" 必须放在setUpPage函数的最后一行,告诉JSUnit已经执行完毕