项目五:对象的相关代码和报告
项目五:对象
设备仪器/软件环境
1.Windows 10系统
2.HBuilder
实验(实训)/目标
1.掌握创建对象和对象实例化的方法
2.掌握内置对象属性和方法的的应用
3.掌握数组对象和日期对象的综合应用方法
4.掌握在页面中输出结果的方法
实验(实训)
过程/步骤
1.设计一个页面,在页面上显示信息“现在是xxxx年xx月xx日xx点xx分xx秒(星期xx),欢迎你的到来”。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<script type="text/javascript">
var today=new Date();
document.write("现在是"+today.getFullYear()+"年"+(today.getMonth()+1)+"月"
+today.getDate()+"日"+today.getHours()+"点"+today.getMinutes()+"分"+today.getSeconds()+"秒"
+("星期"+today.getDay())+","+"欢迎你的到来!");
var s=new Date(milliseconds);
document.write(s);
</script>
</body>
</html>
2.使用Math对象的random()方法编制一个产生0-100(含1,100)之间的随机整数的函数。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
document.write(parseInt(Math.random() * 101));
</script>
</body>
</html>
3.编写程序,根据用户输入的数值,计算其平方、平方根和自然对数。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
var r=prompt("请输入r的值:")
document.write(Math.pow(r,2)+"<br>");
document.write(Math.sqrt(r)+"<br>");
document.write(Math.log(r)+"<br>");
</script>
</body>
</html>
4.计算自己活了多少天?
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<script type="text/javascript">
var yourdate=prompt("请输入出生年月日,格式为xxxx/xx/x");
var borndate=new Date(yourdate);
var nowdate=new Date();
var borndays=borndate.getTime();
var newdays=nowdate.getTime();
var result=newdays-borndays;
var numdays=24*60*60*1000;
var alldays=parseInt(result/numdays);
alert("您好,已经活了"+alldays+"天");
</script>
</body>
</html>
5.输入一个字符串,然后反向输出到页面上。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
var origin_s,upper_s,i;
origin_s=prompt("请输入一个字符串:");
upper_s=origin_s.toUpperCase();
for(i=upper_s.length-1;i>=0;i--){
document.write(upper_s.charAt(i));
}
</script>
</body>
</html>
6.求圆周率的4次方,并取四舍五入整数显示。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
var p, num;
p=Math.PI;
num=Math.round(Math.pow(p,4));
alert("圆周率的4次方经过四舍五入取整后的值为:"+num);
</script>
</body>
</html>
7.输出JavaScript能够处理的数值区间。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
var prompt;
prompt='javascript 有效数的范围是:';
prompt+="["+Number.MIN_VALUE+","+Number.MAX_VALUE+"]";
document.write(prompt);
</script>
</body>
</html>
8.使用以下两种方法创建一个动物对象,再为该对象添加属性和方法:
(1)通过Object创建对象
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
var animal=new Object();
animal.name="花花";
animal.owner="王小丽";
animal.color="黑色";
document.write(animal.owner+"家的小狗名字叫"
+animal.name+",颜色是"+animal.color+"的");
</script>
</body>
</html>
(2)通过字面量创建对象。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
var animal={
name:"花花",
owner:"王小丽",
color:"黑色",
}
document.write(animal.owner+"家的小狗名字叫"
+animal.name+",颜色是"+animal.color+"的");
</script>
</body>
</html>
9.通过构造函数创建一个Star(明星)对象类,并按以下要求完成:
(1)为该对象类添加属性。
(2)利用Prototype属性为该对象类添加共享属性和共享方法。
(3)创建一个对象实例,通过原型对象Prototype访问共享属性和共享方法,
最后结果输出。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
function Star(name,age,sex,sang){
this.name=name;
this.age=age;
this.sex=sex;
this.sang=sang;
}
Star.prototype.type="演员";
Star.prototype.type1="爱的供养";
Star.prototype.type2="修炼爱情";
Star.prototype.Star_fun=function(){
document.write(Star1.type+Star1.name+"是美的!");
}
var Star1=new Star("杨幂","22","女","爱的供养");
var Star2=new Star("林俊杰","26","男","修炼爱情");
document.write(Star1.type+Star1.name+"的年龄是"+Star1.age
+"岁,"+"她的歌曲是"+Star1.type1+"<br>");
document.write(Star1.type+Star2.name+"的年龄是"+Star2.age
+"岁,"+"他的歌曲是"+Star1.type2+"<br>");
Star1.Star_fun();
</script>
</body>
</html>
10.完成课本同步案例5-16,子类继承父类的属性和方法。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
function Person(name,gender){
this.name=name;
this.gender=gender;
}
Person.prototype.introduce=function(){
document.write("我叫"+this.name+","+this.gender+"<br>");
};
function Student(name,gender,major){
Person.call(this,name,gender);
this.major=major;
}
Student.prototype=new Person();
var stu=new Student("王小丽","女","计信专业");
stu.introduce();
Student.prototype.introduce=function(){
document.write("我叫"+this.name+","+this.gender+","+this.major+"的"+"<br>");
};
stu.introduce();
</script>
</body>
</html>
11.使用Array数组对象在页面上显示当前的时间,并显示是星期几。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
var week,today,week_i;
week=new Array("星期日","星期一","星期二","星期三","星期四"+"星期五"+"星期六");
today=new Date();
week_i=today.getDay();
document.write(today.toLocaleTimeString()+week[week_i]);
</script>
</body>
</html>
12.创建一个数组,并对其中的数组元素进行降序排序。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
var MyArr;
// MyArr=new Array(5);
// MyArr[0]="George";
// MyArr[1]="Jon";
// MyArr[2]="Thom";
// MyArr[3]="Adrew";
// MyArr[4]="Mar";
MyArr=new Array("George","Jon","Thom","Adrew","Mar");
document.write("数组MyArr的数组元素排序前输出效果为:"+MyArr+"<br>");
document.write("数组MyArr的数组元素升序排序输出效果为:"+MyArr.sort()+"<br>");
document.write("数组MyArr的数组元素降序排序前输出效果为:"+MyArr.reverse()+"<br>");
</script>
</body>
</html>
13.完成综合案例5:每天信息提示栏
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body bgcolor="aqua">
<br>
<center>
<font color="beige">
<h2><font color="blue"><b><font color="black">按日期显示提示信息
</font></b></font></h2>
</font>
<hr width="300">
<br>
<script type="text/javascript">
var Daymsg=new Array();
MyStamp=new Date();
today=MyStamp.getDate();
Daymsg[0]="一日之计在于初";
Daymsg[1]="今天应该去初差";
Daymsg[2]="今天别忘了买车票"
Daymsg[3]="今天要去超市购物"
Daymsg[4]="今天去神车"
Daymsg[5]="今天要去银行"
Daymsg[6]="今天是去做调研"
Daymsg[7]="今天要通知领导开会"
Daymsg[8]="今天是特殊的节日"
Daymsg[9]="今天任务开始"
Daymsg[10]="今天是妈妈的生日,早点回家做饭吧"
Daymsg[11]="今天是任务的最后期限"
Daymsg[12]="今天有6节课"
Daymsg[13]="今天要上JavaScript"
Daymsg[14]="今天要进行JavaScript实训"
Daymsg[15]="今天要交JavaScript报告"
Daymsg[16]="今天要学JavaScript对象"
Daymsg[17]="今天要学JavaScript数组"
Daymsg[18]="今天的专业课程考试"
Daymsg[19]="今天休息"
Daymsg[20]="今天是个特殊的日子"
Daymsg[21]="今天要进行JavaScript数组实训,别忘了带计算机!"
Daymsg[22]="今天要学JavaScript数组对象"
Daymsg[23]="今天要出去,注意准本好"
Daymsg[24]="今天天气预报有雨,别忘了带伞"
Daymsg[25]="今天要去旅游"
Daymsg[26]="今天要去开会"
Daymsg[27]="今天要去参加生日party"
Daymsg[28]="今天的会议要注意带笔记"
Daymsg[29]="今天要进行思政学习"
Daymsg[30]="今天是最后一天,天气很好"
document.write(Daymsg[today-1]);
</script></center>
</body>
</html>
结果记录
与分析总结
1.设计一个页面,在页面上显示信息“现在是xxxx年xx月xx日xx点xx分xx秒(星期xx),欢迎你的到来”的结果图。
2.使用Math对象的random()方法编制一个产生0-100(含1,100)之间的随机整数的函数的结果图。
3.编写程序,根据用户输入的数值,计算其平方、平方根和自然对数的结果图。
4.计算自己活了多少天的结果图。
5.输入一个字符串,然后反向输出到页面上的结果图。
6.求圆周率的4次方,并取四舍五入整数显示的结果图。
7.输出JavaScript能够处理的数值区间的结果图。
8.使用以下两种方法创建一个动物对象,再为该对象添加属性和方法:
(1)通过Object创建对象
(2)通过字面量创建对象的结果图。
9.通过构造函数创建一个Star(明星)对象类,并按以下要求完成:
(1)为该对象类添加属性。
(2)利用Prototype属性为该对象类添加共享属性和共享方法。
(3)创建一个对象实例,通过原型对象Prototype访问共享属性和共享方法,
最后结果输出。
10.完成课本同步案例5-16,子类继承父类的属性和方法的结果图。
11.使用Array数组对象在页面上显示当前的时间,并显示是星期几的结果图。
12.创建一个数组,并对其中的数组元素进行降序排序的结果图。
13.完成综合案例5:每天信息提示栏的结果图。
总结
JavaScript是基于对对象的语言,所有JavaScript的编程可以使用面向对象的程序设计思想来进行。在JavaScript对象编程中,使用对象的封装性和继承性。
String对象类的两种方法:一是模拟HTML标记,二是用于操作字符串。Math对象主要用于数学运算,其方法主要有log(x)返还自然对数,pow(x,y)返回x的y次方,sqrt(x)返回x的平方根。JavaScript能够处理的最大数值和最小数值,可以使用Number对象的Max_VALUE属性和MIN_VALUE属性来获得。自定义对象常用方法有通过Object对象、字面量对象、构造函数等。创建自定义对象后,还可以通过Function对象创建方法。使用Function对象来定义方法时有两种方法,一是使用Function对象显式地创建函数,二是利用关键字Function隐式地创建函数。数组的属性和方法如下所示:
Length:返回数组中元素的个数
Join():将数组中的所有的元素连接为一个字符串
Concat():连接两个或多个数组
Sort():对数组元素进行排序
Reverse():对数组元素进行倒序排序