JavaScript交互式网页设计 • 【第5章 JavaScript对象】
全部章节 >>>>
本章目录
5.1 Object 对象和 Date 对象
5.1.1 JavaScript 的内部对象
JavaScript 提供了一些非常有用的内部对象,按使用方式可分为两种
实例对象。在引用该对象的属性和方法时,必须先使用 new 关键字创建一个对象实例,然后再使用“对象实例名 . 成员”的格式来进行访问
静态对象。在引用该对象的属性和方法时不需要使用 new 关键字来创建对象实例,可以直接使用“类名 . 成员”的格式来进行访问
5.1.2 Object对象
Object 对象提供了一种创建自定义对象的简单方式,因为它不需要开发人员定义构造函数
在程序运行时可以为JavaScript 对象添加属性,因此使用 Object 对象创建出自定义对象非常简便
对象的属性可以使用索引运算符“[ ]”进行访问
示例:Object 对象的用法
<script type="text/javascript">
var person = new Object();
person.name="Tom";
person.age=25;
function getAttr(attr) {
alert(person[attr]);
}
</script>
<p><input type="button" value=" 显示姓名 " onClick="getAttr('name')"/> </p>
<p><input type="button" value=" 显示年龄 " onClick="getAttr('age')"/></p>
5.1.3 Date对象
通过创建 Date 对象,可以获取本地计算机中的日期与时间
初始化 Date 对象有 4 种方式
new Date() // 当前日期和时间
new Date(milliseconds) // 返回从 1970 年 1 月 1 日至今的毫秒数
new Date(dateString)
new Date(year, month, day, hours, minutes, seconds, milliseconds)
每个Date对象都只是计算机的一个毫秒级快照,Date对象只是保存了它被创建时的时间信息
示例:Date 对象的用法
<script type="text/javascript">
var now = new Date();
document.write(now+"<br/>");
var date1 = new Date("October 13, 1975 11:13:00")
document.write(date1+"<br/>");
var date2 = new Date(79,5,24)
document.write(date2+"<br/>");
var date3 = new Date(79,5,24,11,33,0)
document.write(date3+"<br/>");
var date4 = new Date(60*60*1000);
document.write(date4);
</script>
Date 对象的常用方法
方法 |
功能 |
getDate() |
返回一个月中的某一天(1 ~ 31) |
getDay() |
返回一周中的某一天(0 ~ 6),0 为周日,1 为周一,以此类推 |
getFullYear() |
以四位数返回年份 |
getHours() |
返回小时(0 ~ 23) |
getMilliseconds() |
返回毫秒 |
getMinutes() |
返回分钟(0 ~ 59) |
getMonth() |
返回月份(0 ~ 11),0 为一月,1 为二月,以此类推 |
getSeconds() |
返回秒数(0 ~ 59) |
getTime() |
返回 1970 年 1 月 1 日至今的毫秒数 |
示例:Date 对象中方法的使用
<span id="myclock"></span>
<script type="text/javascript">
function showTime() {
var now = new Date();
var year = now.getFullYear(); // 获取年份
var month = now.getMonth()+1; // 获取月份
var day = now.getDate(); // 获取日
var hour = now.getHours(); // 获取小时
var minutes = now.getMinutes(); // 获取分钟
var seconds = now.getSeconds(); // 获取秒
var week = now.getDay();
var weekStr;
switch(week){
case 0:
weekStr="星期天";
break;
case 6:
weekStr="星期六";
break;
case 5:
weekStr="星期五";
break;
case 4:
weekStr="星期四";
break;
case 3:
weekStr="星期三";
break;
case 2:
weekStr="星期二";
break;
case 1:
weekStr="星期一";
break;
}
document.getElementById("myclock").innerHTML=year+" 年 "+ checkTime(month)+" 月 "+checkTime(day)+" 日 <br/>"+weekStr+"<br/>" +checkTime(hour)+":"+checkTime(minutes)+":"+checkTime(seconds);
}
function checkTime(i) {
if(i<10){
i="0"+i; // 在小于 10 的数字前加一个 0
}
return i;
}
// 每隔 500 毫秒取一次当前的时间
window.setInterval("showTime()",500);
window.onload = showTime;
</script>
示例:使用 Date 对象进行倒计时,显示距离国庆节的剩余时间
<span id="time"></span>
<script type="text/javascript">
function remainTime() {
var now = new Date();// 当前时间
var year = now.getFullYear();
var month = now.getMonth()+1;
// 如果当前月份超过 10 月,则计算下一年的 10 月 1 日
if(month>=10) year+=1;
var future = new Date(year,9,1);
var remain=future.getTime()-now.getTime();// 毫秒
// 计算剩余的天数
var days = parseInt(remain/(24*60*60*1000));
// 计算剩余的小时数
var hours = parseInt(remain/(60*60*1000)%24);
// 计算剩余的分钟数
var minutes = parseInt(remain/(60*1000)%60);
var seconds=parseInt(remain/1000%60); // 计算剩余的秒数
days = checkTime(days);
hours = checkTime(hours);
minutes = checkTime(minutes);
seconds = checkTime(seconds);
document.getElementById("time").innerHTML="<h2> 距离国庆节还剩 <br/>" +days+" 天 "+hours+" 小时 " +minutes+" 分钟 " + seconds+" 秒 </h2>";
}
function checkTime(i) {
if(i<10) i="0"+i; // 将 0 ~ 9 的数字前面加上 0
return i;
}
window.onload=remainTime;
window.setInterval("remainTime()",500);
</script>
5.1.4 实践练习
5.2 Image对象和Math对象
5.2.1 Image对象
网页中使用图片,只需要调用 <img> 标签,然后在 src 属性中设置图片的绝对路径或相对路径即可
如果实现动画或者图像效果,则需要使用图像缓存技术,让用户对图像效果获得较好的体验,使用这种技术需要借助Image对象
示例:页面中显示一幅默认图像和一个按钮,点击按钮后,快速切换至另一幅图片
<head>
<meta charset="utf-8">
<title> 使用图像缓存技术</title>
<script type="text/javascript">
var picObj = new Image();
picObj.src="../img/pc.jpg";
function changePic() {
document.getElementById("pic").src=picObj.src;
}
</script>
</head>
<body>
<p><img src="../img/mobile.jpg" id="pic" width="200"/></p>
<p><input type="button" value=" 切换" onClick="changePic()"/></p>
</body>
5.2.2 Math对象
JavaScript 中的基本数值运算符可以用来进行一些简单的数学计算,而使用Math 对象可以进行更多的高级运算,如平方根、三角函数、对数和随机数等
与其他对象不同,Math 不需要使用new 关键字创建对象的实例
Math对象中常用的方法
方法 |
功能 |
Math.abs(number) |
返回number 的绝对值 |
Math.ceil(number) |
对number 向上取整,如Math.ceil(67.6) 返回值是68 |
Math.floor(number) |
对number 向下取整,如Math.floor (67.6) 返回值是67 |
Math.max(number1,number2) |
返回number1 与number2 中的较大值 |
Math.min(number1,number2) |
返回number1 与number2 中的较小值 |
Math.pow(x,y) |
返回x 的y 次幂 |
Math.random() |
返回0 和1 之间的伪随机数,可能为0,但总是小于1 |
Math.round(number) |
返回最接近number 的整数 |
Math.sqrt(number) |
number 的平方根 |
示例:使用Math对象,完成一个猜数游戏
var number=Math.floor(1+10*Math.random()); // 获取1 到10 之间的整数
function guess_click() {
var info = document.getElementById("guess").value; // 获取用户输入的内容
if(info.trim()!=null && info.trim()!="" && !isNaN(info)) {
var input=Math.floor(info); // 向下取整
if(number == input) {
alert(" 猜对了!");
} else if( number > input) {
alert(" 猜小了! ");}
else {
alert(" 猜大了!");
}
} else {
alert(" 请输入整数"); }
}
5.2.3 实践练习
5.3 数组和String对象
5.3.1 数组
1、数组列表
数组列表用于表示一组数据的集合,它由一对方括号([])包围,列表中的每个元素用逗号分隔,数组元素可以是任意类型的数据(包括其他数组),数组的定义
语法:
var arr=["happy",12,45.6];
每个数组变量都有一个length属性,表示该数组中元素的个数
定义一个数组变量后,就可以使用“数组变量名[索引号]”的格式来访问每个数组元素
数组列表中的第一个元素的索引号为0,其后的每个元素的索引号依次递增,最后的元素索引为数组的长度-1
如果数组元素本身是一个数组,那么这个元素称为子数组,可以使用“数组变量名[子数组索引号][子数组中的元素索引号]”的格式来访问子数组中的元素
示例:数组列表的用法,遍历数组列表中的元素
<body>
<script type="text/javascript">
var arr=[' 白色',' 紫色',' 橙色',' 红色'];
for(var i=0; i<arr.length;i++) {
document.write(arr[i]+"<br/>");
}
</script>
</body>
数组元素的下标不仅可以是数字,还可以是文本
示例:使用数组文本下标的方式来获取数组中的元素
<body>
<script type="text/javascript">
var arr=[]; // 声明数组变量
arr[' 暖色调']=[' 红色',' 橙色',' 黄色'];
arr[' 冷色调']=[' 绿色',' 青色',' 蓝色'];
document.write("<h2>");
// 输出冷色调的第3 种颜色
document.write(arr[' 冷色调'][2]);
document.write("</h2>");
</script>
</body>
2、Array
- JavaScript 中提供了一个名为Array 的内部对象,可用它来创建数组。通过调用Array 对象的各种方法,可以方便地对数组进行排序、删除和合并等操作
- Array 对象创建数组常用的3种方式
语法:
var arr=new Array() //数组初始元素个数为0
var arr=new Array(4); //创建具有指定大小的Array 对象
var arr=new Array(1,2,3); //用指定的元素列表去初始化Array 对象,数组的长度是设置的元素的数目
5.3.2 String对象
当某字符串使用单引号或双引号标注时,可以被当作字符串对象实例进行处理,从而直接调用String 对象的属性和方法
常用属性:length
常用方法
方法 |
描述 |
charAt() |
返回字符串对象中指定索引处的字符,索引从0 开始,如"Hello World".charAt(3),返回字符"l" |
indexOf() |
返回某个子字符串在目标字符串中首次出现的位置,如"Hello World".indexOf("a"),返回-1,在目标字符串中没有子字符串"a",故返回-1 |
substr() |
从指定索引位置开始截取指定长度的字符串, 如"Hello World".substr(2,3),返回"llo"。第一个参数表示从索引为2 的字符开始截取,即"l",第二个参数表示截取的长度 |
substring() |
返回指定索引范围内的字符串, 如"Hello World".substring(2,3),返回"l",返回索引2和3 间的字符串,并且包括索引2 对应的字符,不包括索引3 对应的字符 |
toLowerCase() |
将字符串转化为小写 |
toUpperCase() |
将字符串转化为大写,如"Hello World".toUpperCase(),返回" HELLO WORLD" |
split() |
返回按照指定分隔符拆分的若干子字符串数组,如var arr="hello,world".split(","); arr 是数组变量,其中第一个元素是"hello",第二个元素是"world" |
示例:验证用户输入的电子邮箱和密码是否合法
function $(id) {
// 获取HTML 页面中指定id 的元素
return document.getElementById(id); }
function check() {
if(checkEmail() && checkPwd()) {
return true;
}
return false; }
function checkEmail() {
var email = $("email").value;
var obj=$("span_email");
obj.innerHTML="";
if(email=="") {
obj.innerHTML="Email 地址不能为空";
return false; }
if(email.indexOf("@")==-1) {
obj.innerHTML="Email 地址格式不正确,必须包含@";
return false; }
if(email.indexOf(".")==-1) {
obj.innerHTML="Email 地址格式不正确,必须包含.";
return false; }
return true;
}
function checkPwd() {
var pwd = $("pwd").value;
var obj = $("span_pwd");
obj.innerHTML="";
if(pwd=="") {
obj.innerHTML="密码不能为空";//使用innerHTML 属性设置标签中的内容
return false; }
if(pwd.length<6) {
obj.innerHTML=" 密码必须等于或大于6 个字符";
return false; }
return true;}
5.4 对象的创建及常用语句
5.4.1 创建对象
类(class)是一个模板,模板描述了本类中所有对象共同的属性和行为
定义JavaScript 类,需要编写一个函数,函数名为对象的类名,在函数体中定义属性和方法,即JavaScript 中的函数也是对象
用function 创建类时,要求属性和方法必须使用this 关键字来引用,表示当前类的实例。
示例:使用编写函数的方式创建类
<script type="text/javascript">
// 创建Book 类型
function Book(name,author,price) {
this.name=name;
this.author=author;
this.price=price;
this.show = function() {
alert(" 书名:"+this.name+"\n 作者:"+this.author+"\n 价格:"+this.price);
};
}
var book=new Book("《钢铁是怎样炼成的》","奥斯特洛夫斯基","26.00 元");
book.show();
</script>
5.4.2 对象常用语句
1、with 语句
在一段连续的程序代码中,在with 关键字后的小括号中写出这个对象的名称,就可以在其后大括号里的执行语句中直接引用该对象的属性名或方法名,省略对象实例名和点(.)
语法:
with( 对象名称){
执行语句块
}
示例:
<script type="text/javascript">
function showTime() {
var time = new Date();
with(time) {
var hh=getHours(); // 获取小时
var mm=getMinutes(); // 获取分钟
var ss=getSeconds(); // 获取秒
}
document.getElementById("time").innerHTML=hh+":"+mm+":"+ss;
}
window.setInterval("showTime()",500);
window.onload=showTime;
</script>
<span id="time"></span>
2、for…in 语句
对某个对象的所有属性进行循环操作,它将某个对象的所有属性名称逐一赋值给一个变量,不需要事先知道对象属性的个数
根据索引取出每个数组元素
语法:
for( 变量 in 对象){
执行语句
}
示例:使用for…in 语句遍历对象属性
<script type="text/javascript">
function Person() {
this.name=" 张三";
this.age="24";
this.gender=" 男";
}
var person = new Person();
var info="";
for(var prop in person) {
info +=prop+"<br/>";
}
document.write(info);
</script>
示例:使用for…in 语句根据索引取出数组元素
<script type="text/javascript">
var arr=[" 欧冠"," 英超"," 意甲"," 西甲"]
for(var i in arr){
document.write(arr[i]);
}
</script>
5.4.3 实践练习
总结:
通过创建Date对象,可以获取计算机中的时间
在本地创建Image对象,可以实现图像缓冲技术
使用Math对象进行数学运算 用数组列表或者Array对象创建数组后,可以使用“数组变量名[索引号]”的格式来访问每个数组元素
每个单引号或双引号标注的内容,就是一个String对象实例
- charAt():返回字符串对象中指定索引处的字符
- indexOf():返回某个子字符串在目标字符串中首次出现的位置
- substr():从指定索引位置开始截取指定长度的字符串
- substring():返回指定索引范围内的字符串
JavaScript交互式网页设计 • 【第5章 JavaScript对象】的更多相关文章
- JavaScript交互式网页设计作业目录(作业笔记)
JavaScript交互式网页设计笔记 • [目录] 我的大学笔记>>> 第1章 JavaScript基本语法>>> 1.1.4 使用 JavaScript 的 H ...
- JavaScript交互式网页设计笔记 • 【目录】
章节 内容 实践练习 JavaScript交互式网页设计作业目录(作业笔记) 第1章 JavaScript交互式网页设计笔记 • [第1章 JavaScript基本语法] 第2章 JavaScript ...
- JavaScript交互式网页设计 • 【第2章 JavaScript函数与事件】
全部章节 >>>> 本章目录 2.1 JavaScript 自定义函数 2.1.1 函数的定义 2.1.2 函数的调用 2.1.3 函数的参数 2.1.4 函数的返回值 2 ...
- 云南农职《JavaScript交互式网页设计》 综合机试试卷⑤——简单分类菜单
一.语言和环境 实现语言:HTML,CSS,JavaScript,JQuery. 开发环境:HBuilder. 二.题目(100分): 1.使用Jquery和JavaScript实现二级分类菜单管理 ...
- 云南农职《JavaScript交互式网页设计》 综合机试试卷①——实现购物车的结算
一.语言和环境 实现语言:javascript.html.css. 开发环境:HBuilder. 二.题目2(100分) 1.功能需求: 马上过节了,电商网站要进行促销活动,需要实现该商城购物车的商品 ...
- 云南农职《JavaScript交互式网页设计》 综合机试试卷④——蔚蓝网导航栏
一.语言和环境 实现语言:javascript.html.css. 开发环境:HBuilder. 二.题目(100分) 1.功能需求: 布局出顶部导航栏目 鼠标放到新手入门显示对象的下拉列表 鼠标移开 ...
- JavaScript交互式网页设计 • 【第3章 JavaScript浏览器对象模型】
全部章节 >>>> 本章目录 3.1 浏览器对象模型 3.1.1 浏览器对象模型 3.2 window 对象 3.2.1 window 对象的常用属性及方法 3.2.2 使 ...
- JavaScript交互式网页设计 • 【第1章 JavaScript 基本语法】
全部章节 >>>> 本章目录 1.1 JavaScript 概述 1.1.1 JavaScript 简介 1.1.2 JavaScript 的概念和执行原理 1.1.3 J ...
- JavaScript交互式网页设计 • 【第8章 jQuery动画与特效】
全部章节 >>>> 本章目录 8.1 显示隐藏动画效果 8.1.1 show() 方法与hide() 方法 8.1.2 toggle()方法 8.1.3 实践练习 8.2 ...
随机推荐
- 【♪♪♪】网易云音乐mp3真实地址
参考别人的博客,得到下面的地址,填上ID号即可,后缀的[.mp3]不用输入 http://music.163.com/song/media/outer/url?id= 例如 最终,合并地址为 http ...
- 数据存储SharePreferences详解
1.SharedPreferences存储 SharedPreferences时使用键值对的方式来存储数据的,也就是在保存一条数据时,需要给这条数据提供一个对应的键,这样在读取的时候就可以通过这个键把 ...
- 数组实现堆栈——Java实现
1 package struct; 2 3 4 //接口 5 interface IArrayStack{ 6 //栈的容量 7 int length(); 8 //栈中元素个数(栈大小) 9 int ...
- 2.8 rust 枚举与模式匹配
Enums and Pattern Matching 摘要 枚举定义 enum IpAddrKind { V4, V6, } 枚举方法 fn main() { enum Message { Quit, ...
- html上传图片的预览功能实现
表单代码(仅取上传文件部分): <input class="selectImg" style="position:absolute;opacity: 0;width ...
- 【C/C++】例题3-5 生成元/算法竞赛入门经典/数组与字符串
[题目] x+x的各位数之和为y,x为y的生成元. 求10万以内的n的最小生成元,无解输出0. [解答] 这是我根据自己的想法最初写的代码: #include<cstdio> #inclu ...
- 面渣逆袭:Java集合连环三十问
大家好,我是老三.上期发布了一篇:面渣逆袭:HashMap追魂二十三问,反响很好! 围观群众纷纷表示 不写,是不可能不写的,只有卷才能维持了生活这样子. 当然,我写的这一系列,不是背诵版,是理解版,很 ...
- 1、Spring简介及IOC入门案例
一.Spring框架介绍 1.介绍 Spring框架是由于软件开发的复杂性而创建的.Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情.然而,Spring的用途不仅仅限于服务 ...
- React中使用 react-router-dom 路由传参的三种方式详解【含V5.x、V6.x】!!!
路由传值的三种方式(v5.x) params参数 //路由链接(携带参数): <Link to='/demo/test/tom/18'}>详情</Link> //或 <L ...
- LuoguP1723 高手过愚人节 题解
Content 有 \(n\) 次询问,每次询问给定一个字符串 \(s\),求这个字符串最长的回文子串的长度. 数据范围:\(n\) 无解(至少从题面来看是这样的),字符串长度目测应该在 \(10^7 ...