网页学习——JavaScript对象(自定义、客户端)

一些关于JavaScript对象的一些学习总结、笔记与练习。

关于JavaScript对象?JavaScript是一门基于对象的脚本语言,它不仅可以自定义并创建对象,也能使用现有的对象。面向对象的编程语言都会具有封装性的特点,一般只需简单调用一下封装好的面向对象的函数 (代码块),就能实现相关功能,使用方便的同时,也减少代码量。

1、构建自定义对象

在网页中,我们可以直接在< script >标签中使用 function 构建函数来自定义对象,然后创建新的对象实例。

如下代码,使用函数创建并自定义一个对象实例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script language="JavaScript">
		function Person(name,age)  //创建一个名为Person的函数
		{
			this.name=name;
			this.age=age;
			this.setAge=function(age){
				this.age=age;
			}
		}
		var pl=new Person("Lin WIT",18);  //传入参数并实例化对象
		pl.setAge(19);
		document.write(pl.name,": ",pl.age);
		</script>
	</body>
</html>

运行结果如下图:
在这里插入图片描述

arguments对象?

JavaScript 函数有一个内置的对象——arguments 对象。如果定义了一个函数,但是这个函数在不同地方执行时所传入的参数是不同的,即这个参数不确定,所以无法在函数中声明具体的参数。这时,通过arguments 对象就能解决这个问题。
通过arguments对象获取传入的实参的操作类似于数组,用下标(索引)来定位到每个值上面,此外arguments对象还具有一些其他的属性。

如下实例(计算传入参数的数值和):

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script language="JavaScript">
		function sum(){
			var s=0;
			for(var i=0;i<arguments.length;i++){  //通过length属性可获得传入参数的个数
				s+=arguments[i];  //通过下标获取参数的值
			}
			return s;
		}
		document.write(sum(1,2,3,4,5,6,7,8,9,10));
		</script>
	</body>
</html>

运行结果如下图:
在这里插入图片描述

在介绍JavaScript自有的客户端对象属性及其方法的相关知识前,需要对客户端对象之间的层次结构(BOM、DOM)有一定的认识,这样方便理解。
在这里插入图片描述

2、Window对象

Window 对象表示浏览器中打开的窗口。

  • open()方法:用于打开一个新的浏览器窗口或者查找一个已命名的窗口
  • close()方法:关闭浏览器窗口

?window 对象方法

window对象方法表:

方法描述
alert()显示带有一段消息和一个确认按钮的警告框
setInterval()按指定的周期(以毫秒计)来调用函数或表达式
setTimeout()在指定的毫秒后调用函数或计算表达式
clearInterval()取消setInterval()方法设置的 timeout
clearTimeout()取消setTimeout()方法设置的 timeout
confirm()显示带有一段消息,以及确认按钮和取消按钮的对话框
moveBy()可相对窗口的当前坐标把它移动指定的像素
moveTo()把窗口的左上角移动到一个指定的坐标
print()打印当前窗口的内容
prompt()显示可提示用户输入的对话框
scrollBy()按照指定像素来滚动内容
scrollTo()把内容滚动到指定的坐标

下面利用setInterval()、setTimeout()、clearInterval()、clearTimeout()这四个方法实现一个计时实例

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script language="JavaScript">
		var a=0;
		var t;
		function timedCount(){
			document.getElementById('text').value=a;
			a=a+1;
			t=setTimeout("timedCount()",1000); //利用嵌套,每一秒钟调用一次函数实现计数
		}
		</script>
		<form>
			<input type="button" value="开始计时" onclick="timedCount()" />
			<input type="text" id="text" />
			<input type="button" value="停止计时" onclick="clearTimeout(t)" /> <!-- 利用参数t取消timeout -->
		</form>
		<script>
		var dt=setInterval("time()",1000)  //不停地每隔一秒 调用函数显示时间
		function time(){
			var t=new Date(); //Date()为内置的获取时间的方法
			document.getElementById("time").value=t;
		}
		</script>
		<input type="text" id="time" size="50" />
		<Button onclick="clearInterval(dt)">停止时间</Button> <!-- 利用参数dt取消timeout -->
	</body>
</html>

运行效果如下图:
请添加图片描述

?window 对象属性

window对象属性表:

属性描述
closed返回窗口是否已关闭
document对 Document 对象的只读引用
history对 History 对象的只读引用
location用于窗口或框架的 Location 对象
name设置或返回窗口的名称
navigator对Navigator 对象的只读引用
opener返回此窗口的父窗口的引用
parent返回父窗口
self返回当前窗口的引用
top返回最顶层的先辈窗口
screen对 Screen 对象的只读引用

3、屏幕Screen对象

每个Window对象的screen属性都引用一个Screen对象。Screen对象中存放着有关显示浏览器屏幕的信息。通过获取这些屏幕信息,可以利用JavaScript程序来优化输出与显示效果。

Screen对象属性表:

属性描述
availHeight返回显示屏幕的高度(除Windows任务栏外)
availWidth返回显示屏幕的宽度(除Windows任务栏外)
colorDepth返回目标设备或缓冲器上调色板的比特深度
height返回显示屏幕的高度
pixelDepth返回显示屏幕的颜色分辨率(比特每像素)
width返回显示屏幕的宽度

例如(在页面打印出屏幕分辨率):document.write(screen.width+"*"+screen.height)

4、浏览器Navigator对象

Navigator 对象包含的属性描述了正在使用的浏览器,可以使用这些属性进行平台专用配置。同时,注意Navigator对象的实例是唯一的。

Navigator对象属性表:

属性描述
appCodeName返回浏览器的代码名
appMinorVersion返回浏览器的次级版本
appName返回浏览器名称
appVersion返回浏览器的平台和版本信息
browserLanguage返回当前浏览器的语言
cookieEnabled返回致命浏览器中是否使用cookie的布尔值
cpuClass返回浏览器系统的CPU等级
onLine返回浏览器是否处于脱机模式的布尔值
platform返回运行浏览器的操作系统平台
systemLanguage返回OS使用的默认语言
userAgent返回客户机发送服务器的user-agent头部的值
userLanguage返回os的自然语言设置

5、文档Document对象

Document 对象是Window 对象的一个对象属性,可以通过window.document 属性对其进行访问。并且,Document 对象是HTML文档的根节点,可以对HTML页面中的所有元素进行访问

Document对象的主要属性表:

属性说明
document.title获取或设置文档标题
document.bgColor设置页面背景色
document.linkColor设置未点击过的链接颜色
document.alinkColor设置激活链接(焦点在其上)的颜色
document.fgColor设置前景色(文本颜色)
document.vlinkColor设置已点击过的链接颜色
document.URL设置URL属性,从而在同一窗口中打开另一网页
document.fileCreateDate文件建立日期,只读属性
document.fileModifiedDate文件修改日期,只读属性
document.filesize文件大小只读属性
document.charset设置字符集,(简体中文为:gb2312)

Document对象常用集合表:

集合描述
all返回对象所包含的元素集合
anchors获取所有带有name和(或)id属性的 a 对象的集合
applets获取文档中所有applet 对象的集合
childNodes获取作为指定对象直接后代的 HTML 元素和 TextNode 对象的集合
forms获取以源顺序排列的文档中所有form 对象的集合
frames获取给定文档定义或与给定窗口关联的文档定义的所有 Windows 对象的集合
images获取以源顺序排列的文档中所有img对象的集合
links获取文档中所有指定了 href 属性的 a 对象和所有 area 对象的集合
scripts获取文档中所有 script 对象的集合

Document对象常用方法表:

方法说明
document.createElement(Tag)创建一个HTML 标签对象
document.getElementById(id)获取指定ID值的对象
document.getElementByTagName(tagname)获取指定标签名的对象
document.getElementByName(name)回去指定name值的对象
document.getElementByClassName(classname)获取指定类名的对象

6、document.Cookie对象

Cookie 是由服务器保存在客户端上的小文本文件,它一般可以包含与用户有关的账号密码等信息。

?创建Cookie
创建cookie的语法如下:
document.cookie="cookiename=cookievalue;expires=Thu, 3 May 2022 12:00:00 GMT;path=/";

  • 参数cookiename用于添加cookie的值;
  • 参数expires用于添加一个过期时间(以 UTC 或 GMT 时间),
  • 参数path 用于告诉浏览器 cookie 的路径

此外,cookie的修改与删除类似于创建,语法格式基本一致。而删除cookie时则不必指定cookie的值,只需要设置expires参数为以前的时间即可。
如 删除cookie:document.cookie = "username=; expires=Thu, 01 May 2022 00:00:00 GMT; path=/"; 这里如果不指定路径有些浏览器可能会不让删除cookie。

?Cookie的应用示例
利用Cookie实现登录,当用户输入完用户名后点击 非登录输入框 之外的地方(即登录输入框失去焦点)时,触发绑定在用户名输入框上的onblur事件,然后触发检验cookie的函数,判断用户是否已经保存密码,如果保存则会自动填写密码。
代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Cookie</title>
	</head>
	<body>
		<form action="">
			用户名:<input type="text" id="username" onblur="checkCookie(username.value)"/>
			<br />&nbsp;&nbsp;&nbsp;码:<input type="password" id="password"/>
			<br />
			<input type="submit" value="登录" onclick="setCookie(username.value,password.value,30)"/>
			<input type="button" value="清除cookie" onclick="clearCookie(username.value)"/>
		</form>
	</body>
	<script>
	function setCookie(username,password,exdays){
		var d= new Date();  //获取当前日期
		d.setTime(d.getTime()+(exdays*24*60*60*1000));  //将日期转换成毫秒再加上过期时间
		var expires='expires='+d.toGMTString(); //将过期时间转换成字符串用变量存储
		document.cookie=username+"="+password+";"+expires;
	}
	function getCookie(cname){
		var name=cname+"=";
		var ca=document.cookie.split(';');  //获取cookie 将其分割成一个数组
		for(var i=0;i<ca.length;i++){
			var c=ca[i].trim();  //trim()用于去除字符串头尾空白字符
			if(c.indexOf(name)==0){  //通过值查找索引位置来判断是否再cookie中已存储
				return c.substring(name.length,c.length);  //返回密码的值
			}
		}
		return "";
	}
	function checkCookie(username){ //判断是否在cookie
		var pass=getCookie(username);
		if(pass!=""){
			document.getElementById("password").value=pass;
		}
	}
	function clearCookie(cookiename){
		var t= new Date();
		var expires=t.toGMTString();
		document.cookie=cookiename+"="+";"+expires+"path=C:/Users/LXM15211152645/AppData/Local/Google/Chrome/User Data/Default";
	}
	</script>
</html>

运行如下图:
请添加图片描述

7、历史Hostory对象

History 用于记录用户在浏览器窗口中访问过的URL。一般情况,开发人员无法得到用户访问的URL历史记录,但可以借助 History 实现前进和后退的功能。
?length属性:用于获取浏览器列表中的元素数量
history.length

?back() 方法:用于从用户的历史列表中加载出上一个页面的URL,前提是存在上一个页面。
history.back(),调用这个方法相当于点击后退按钮或调用history.go(-1)

?forword()方法:用于从用户的历史列表中加载出下一个页面的URL,前提是存在下一个页面。
history.forword(),调用这个方法相当于点击前进按钮或调用history.go(1)

?go()方法:用于从用户的历史列表中加载出某一个页面,由方法内参数决定。正数前进,负数后退,或者将参数设置为字符串,字符串内容为局部或完整的URL。
history.go(number|URL)

8、地址Location对象

Location地址对象表示某一窗口所打开的地址,使用它可以表示当前窗口的地址。
Location对象常用属性表:

属性描述
hash返回一个URL的锚部分,即“#”后的部分
host返回URL的主机名和端口
hostname返回URL主机名
href返回完整的URL
pathname返回URL的路径名
port返回一个URL服务器使用的端口号
protocol返回一个URL协议

Location对象方法
?assign()方法:使窗口载入并显示所指定的URL中的文档
location.assgin(URL)

?reload()方法:用于刷新当前文档,类似浏览器刷新页面按钮
location(true|false),参数为true时会从服务器上重新下载该文档,类似于单击浏览器刷新按钮时按住shift键的效果。

?replace()方法:用于加载一个新的页面,类似于location.href的功能
location.replace(newURL),该方法会将新页面的地址在History的地址列表中删除。


版权声明:本文为m0_53156691原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。