JavaScript学习笔记之JS对象
默认对象
日期对象Date,
格式:日期对象名称=newDate([日期参数])
日期参数:
1.省略(最常用);
2.英文-数值格式:月日,公元年[时:分:秒]
如:today=newDate("October1,200812:00:00")
3.数值格式:公元年,月,日,[时,分,秒]
如:today=newDate(2008,10,1)
日期对象的方法:
格式:日期对象名称.方法([参数])
使用例子:
<body>
<scripttype="text/javascript">
vardate=newDate();//JS中默认提供的对象
document.writeln("现在时刻:"+(date.getYear()+1900)+"年"
+(date.getMonth()+1)+"月"+date.getDate()
+"日"+",星期"+date.getDay()+",时间:"//星期天会是0,需要进一步处理,这里先不处理
+date.getHours()+":"+date.getMinutes()+":"+date.getSeconds());
</script>
</body>
输出:
现在时刻:2014年4月21日,星期1,时间:14:7:53
数组对象
数组对象的作用是:使用单独的变量名来存储一系列的值。
JavaScript的数组有两点特殊性:
1.数组长度不定,可以自动扩容;
2.数组中存放的数据类型可以不统一,即可以混存不同的数据类型。
建立数组对象的多种格式:
newArray();
返回的数组为空,length字段为0。
newArray(size);
参数size是期望的数组元素个数。返回的数组,length字段将被设为size的值。该构造函数将返回具有指定个数、元素为undefined的数组。
newArray(element0,element1,...,elementn);
该构造函数将用参数指定的值初始化数组,数组的length字段会被设置为参数的个数。
数组对象名称=[元素1[,元素2,...]]
(注意这里使用的是方括号)。
当把构造函数作为函数调用,不使用new运算符时,它的行为与使用new运算符调用它时的行为完全一样。
还可以创建二维数组。
Array对象的方法可以参见:http://www.w3school.com.cn/jsref/jsref_obj_array.asp
数组对象使用实例:
<!DOCTYPEhtml>
<html>
<head>
<title>arrayTest.html</title>
<metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">
<metahttp-equiv="description"content="thisismypage">
<metahttp-equiv="content-type"content="text/html;charset=UTF-8">
<!--<linkrel="stylesheet"type="text/css"href="./styles.css">-->
</head>
<body>
<scripttype="text/javascript">
//varfruits=newArray("Apple","Banana","Pear");
varfruits=["苹果","香蕉","梨"];//推荐使用
//可以动态添加元素
fruits.push("西瓜");
fruits.push("橙子");
for(vari=0;i<fruits.length;++i)
{
document.writeln("fruit["+i+"]="+fruits[i]+"<br/>");
}
//数组的一些方法测试
with(document)
{
write("<ul>");
write("<li>"+fruits.join()+"</li>");//默认使用逗号来分隔
write("<li>"+fruits.join(";")+"</li>");
write("<li>"+fruits.toString()+"</li>");
write("<li>"+fruits.reverse().join()+"</li>");
write("<li>"+fruits.valueOf()+"</li>");
//说明上面的reverse实际上是改变了数组本身
write("</ul>");
}
//二维数组
varpeople=newArray(3);
people[0]=newArray(1,"zhangsan","lisi");
people[1]=newArray(2,"Jack","Lucy");
people[2]=newArray(3,"Xiaoming","Xiaohong");
//注意数据类型可以混合使用
//遍历二维数组
for(vari=0;i<people.length;++i)
{
for(varj=0;j<people[i].length;++j)
{
document.write("people["+i+"]["+j+"]="+people[i][j]+"<br/>");
}
document.write("<br/>");
}
</script>
</body>
</html>
字符串对象
建立字符串对象:
格式:字符串对象名称=newString(字符串常量)
格式:字符串变量名称="字符串常量"
一个验证Email的例子:
<!DOCTYPEhtml>
<html>
<head>
<title>emailConfirm.html</title>
<metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">
<metahttp-equiv="description"content="thisismypage">
<metahttp-equiv="content-type"content="text/html;charset=UTF-8">
<!--<linkrel="stylesheet"type="text/css"href="./styles.css">-->
<scripttype="text/javascript">
functionisEmail()
{
varemailValue=document.getElementsByName("email")[0].value;
if(-1==emailValue.indexOf("@"))
{
alert("请填写正确的Email地址");
}
else
{
alert("Ok");
}
}
</script>
</head>
<body>
<form>
email:<inputtype="text"name="email"><br/>
<inputtype="button"value="check"onclick="isEmail()">
</form>
</body>
</html>
自定义对象
前面讲函数的时候讲过一个例子,现在这里再讲一下这个例子:
<!DOCTYPEhtml>
<html>
<head>
<title>objectTest.html</title>
<metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">
<metahttp-equiv="description"content="thisismypage">
<metahttp-equiv="content-type"content="text/html;charset=UTF-8">
<!--<linkrel="stylesheet"type="text/css"href="./styles.css">-->
</head>
<body>
<scripttype="text/javascript">
//定义对象的一种方式:通过构造函数
functionmember(name,gender)
{
//属性
this.name=name;
this.gender=gender;
//方法
this.display=display;//指定member对象的display方法
}
functiondisplay()
{
varstr=this.name+":"+this.gender;
//这个display方法被谁使用了,此处的this就指向那个对象
document.writeln(str+"<br/>");
}
//生成对象
varm1=newmember("zhangsan","male");
varm2=newmember("lisi","male");
varm3=newmember("wangwu","male");
varm4=newmember("wangfang","female");
with(document)
{
write("输出属性","<br/>");
write(m1.name+":"+m1.gender+"<br/>");
write(m2.name+":"+m2.gender+"<br/>");
write(m3.name+":"+m3.gender+"<br/>");
write(m4.name+":"+m4.gender+"<br/>");
}
document.write("调用方法","<br/>");
m1.display();
m2.display();
m3.display();
m4.display();
</script>
</body>
</html>
小伙伴们是否对javascript中对象的概念和用法有了新的认识了呢,希望大家能够喜欢本文及本系列文章。