分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

js(二)对象

发布时间:2023-09-06 01:19责任编辑:蔡小小关键词:js

简介:

在JavaScript中除了null和undefined以外其他的数据类型都被定义成了对象,也可以用创建对象的方法定义变量,String、Math、Array、Date、RegExp都是JavaScript中重要的内置对象,在JavaScript程序大多数功能都是基于对象实现的。

<script language="javascript">var aa=Number.MAX_VALUE; //利用数字对象获取可表示最大数var bb=new String("hello JavaScript"); //创建字符串对象var cc=new Date();//创建日期对象var dd=new Array("星期一","星期二","星期三","星期四"); //数组对象</script>

3.1 String对象

字符串对象创建

字符串创建(两种方式)
① 变量 = “字符串”
② 字串对象名称 = new String (字符串)

1
2
varstr1="hello world";
varstr1=newString("hello word");

字符串对象的属性和函数

 ??????x.length ????????----获取字符串的长度 x.toLowerCase() ???????----转为小写 x.toUpperCase() ???????----转为大写
x.trim() ??????????????----去除字符串两边空格 ??????----字符串查询方法x.charAt(index) ????????----str1.charAt(index);----获取指定位置字符,其中index为要获取的字符索引x.indexOf(findstr,index)----查询字符串位置x.lastIndexOf(findstr) ?x.match(regexp) ????????----match返回匹配字符串的数组,如果没有匹配则返回nullx.search(regexp) ???????----search返回匹配字符串的首字符位置索引 ???????????????????????示例: ???????????????????????var str1="welcome to the world of JS!"; ???????????????????????var str2=str1.match("world"); ???????????????????????var str3=str1.search("world"); ???????????????????????alert(str2[0]); ?// 结果为"world" ???????????????????????alert(str3); ????// 结果为15 ???????????????????????----子字符串处理方法x.substr(start, length) ----start表示开始位置,length表示截取长度x.substring(start, end) ----end是结束位置x.slice(start, end) ????----切片操作字符串 ???????????????????????示例: ???????????????????????????var str1="abcdefgh"; ???????????????????????????var str2=str1.slice(2,4); ???????????????????????????var str3=str1.slice(4); ???????????????????????????var str4=str1.slice(2,-1); ???????????????????????????var str5=str1.slice(-3,-1); ???????????????????????????alert(str2); //结果为"cd" ???????????????????????????????????????????????????????alert(str3); //结果为"efgh" ???????????????????????????????????????????????????????alert(str4); //结果为"cdefg" ???????????????????????????????????????????????????????alert(str5); //结果为"fg"x.replace(findstr,tostr) ---- ???字符串替换x.split(); ????????????????----分割字符串 ????????????????????????????????var str1="一,二,三,四,五,六,日"; ????????????????????????????????var strArray=str1.split(","); ???????????????????????????????alert(strArray[1]);//结果为"二" ???????????????????????????????x.concat(addstr) ????????---- ???拼接字符串

3.2 Array对象

3.2.1 数组创建

创建数组的三种方式:

创建方式1:var arrname = [元素0,元素1,….]; ?????????// var arr=[1,2,3];创建方式2:var arrname = new Array(元素0,元素1,….); // var test=new Array(100,"a",true);创建方式3:var arrname = new Array(长度); ????????????// ?初始化数组对象: ???????????????var cnweek=new Array(7); ???????????????????cnweek[0]="星期日"; ???????????????????cnweek[1]="星期一"; ???????????????????... ???????????????????cnweek[6]="星期六";

创建二维数组:

View Code

3.2.2 数组对象的属性和方法

join方法:

View Code

concat方法:

View Code

数组排序-reverse sort:

View Code

数组切片操作:

View Code

删除子数组:

View Code

数组的push和pop:

View Code

数组的shift和unshift:

View Code

总结js的数组特性:

View Code

3.3 Date对象

3.3.1 创建Date对象

//方法1:不指定参数var nowd1=new Date();alert(nowd1.toLocaleString( ));//方法2:参数为日期字符串var nowd2=new Date("2004/3/20 11:12");alert(nowd2.toLocaleString( ));var nowd3=new Date("04/03/20 11:12");alert(nowd3.toLocaleString( ));//方法3:参数为毫秒数var nowd3=new Date(5000);alert(nowd3.toLocaleString( ));alert(nowd3.toUTCString());//方法4:参数为年月日小时分钟秒毫秒var nowd4=new Date(2004,2,20,11,12,0,300);alert(nowd4.toLocaleString( ));//毫秒并不直接显示

Date对象的方法—获取日期和时间

获取日期和时间getDate() ????????????????获取日getDay () ????????????????获取星期getMonth () ??????????????获取月(0-11)getFullYear () ???????????获取完整年份getYear () ???????????????获取年getHours () ??????????????获取小时getMinutes () ????????????获取分钟getSeconds () ????????????获取秒getMilliseconds () ???????获取毫秒getTime () ???????????????返回累计毫秒数(从1970/1/1午夜)

实例练习:

View Code

Date对象的方法—设置日期和时间

View Code

Date对象的方法—日期和时间的转换

View Code

3.4Math对象

//该对象中的属性方法 和数学有关. ??
abs(x) ???返回数的绝对值。exp(x) ???返回 e 的指数。floor(x)对数进行下舍入。log(x) ???返回数的自然对数(底为e)。max(x,y) ???返回 x 和 y 中的最高值。min(x,y) ???返回 x 和 y 中的最低值。pow(x,y) ???返回 x 的 y 次幂。random() ???返回 0 ~ 1 之间的随机数。round(x) ???把数四舍五入为最接近的整数。sin(x) ???返回数的正弦。sqrt(x) ???返回数的平方根。tan(x) ???返回角的正切。//方法练习: ???????//alert(Math.random()); // 获得随机数 0~1 不包括1. ???????//alert(Math.round(1.5)); // 四舍五入 ???????//练习:获取1-100的随机整数,包括1和100 ????????????//var num=Math.random(); ????????????//num=num*10; ????????????//num=Math.round(num); ????????????//alert(num) ???????//============max ?min========================= ???????/* alert(Math.max(1,2));// 2 ???????alert(Math.min(1,2));// 1 */ ???????//-------------pow-------------------------------- ???????alert(Math.pow(2,4));// pow 计算参数1 的参数2 次方.

3.5Function 对象(重点)

3.5.1 函数的定义

1
2
3
function函数名 (参数){?<br> 函数体;
return返回值;
}

功能说明:

可以使用变量、常量或表达式作为函数调用的参数
函数由关键字function定义
函数名的定义规则与标识符一致,大小写是敏感的
返回值必须使用return
Function 类可以表示开发者定义的任何函数。

用 Function 类直接创建函数的语法如下:

1
var函数名 =newFunction("参数1","参数n","function_body");

虽然由于字符串的关系,第二种形式写起来有些困难,但有助于理解函数只不过是一种引用类型,它们的行为与用 Function 类明确创建的函数行为是相同的。

示例:

View Code

注意:js的函数加载执行与python不同,它是整体加载完才会执行,所以执行函数放在函数声明上面或下面都可以:

View Code

3.5.2 Function 对象的属性

如前所述,函数属于引用类型,所以它们也有属性和方法。
比如,ECMAScript 定义的属性 length 声明了函数期望的参数个数。

1
alert(func1.length)

3.5.3 Function 的调用

View Code

3.5.4函数的内置对象arguments

View Code

3.5.4匿名函数

View Code
回到顶部

BOM对象

window对象

所有浏览器都支持 window 对象。
概念上讲.一个html文档对应一个window对象.
功能上讲: 控制浏览器窗口的.
使用上讲: window对象不需要创建对象,直接使用即可.

Window 对象方法

alert() ???????????显示带有一段消息和一个确认按钮的警告框。confirm() ?????????显示带有一段消息以及确认按钮和取消按钮的对话框。prompt() ??????????显示可提示用户输入的对话框。open() ????????????打开一个新的浏览器窗口或查找一个已命名的窗口。close() ???????????关闭浏览器窗口。
setInterval() ?????按照指定的周期(以毫秒计)来调用函数或计算表达式。clearInterval() ???取消由 setInterval() 设置的 timeout。setTimeout() ??????在指定的毫秒数后调用函数或计算表达式。clearTimeout() ????取消由 setTimeout() 方法设置的 timeout。scrollTo() ????????把内容滚动到指定的坐标。

方法使用

1、alert confirm prompt以及open函数

View Code

示例:

View Code

2、setInterval,clearInterval

setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。

1
2
语法:<br> setInterval(code,millisec)
其中,code为要调用的函数或要执行的代码串。millisec周期性执行或调用 code 之间的时间间隔,以毫秒计。

示例:

View Code
回到顶部

DOM对象

什么是HTML DOM

  • HTML Document Object Model(文档对象模型)
  • HTML DOM 定义了访问和操作HTML文档的标准方法
  • HTML DOM 把 HTML 文档呈现为带有元素、属性和文本的树结构(节点树)

DOM树

画dom树是为了展示文档中各个对象之间的关系,用于对象的导航。

DOM节点

节点类型

HTML 文档中的每个成分都是一个节点。

DOM 是这样规定的:
整个文档是一个文档节点
每个 HTML 标签是一个元素节点
包含在 HTML 元素中的文本是文本节点
每一个 HTML 属性是一个属性节点

其中,document与element节点是重点。

节点关系

节点树中的节点彼此拥有层级关系。
父(parent),子(child)和同胞(sibling)等术语用于描述这些关系。父节点拥有子节点。同级的子节点被称为同胞(兄弟或姐妹)。

  • 在节点树中,顶端节点被称为根(root)
  • 每个节点都有父节点、除了根(它没有父节点)
  • 一个节点可拥有任意数量的子
  • 同胞是拥有相同父节点的节点

下面的图片展示了节点树的一部分,以及节点之间的关系:



访问 HTML 元素(节点),访问 HTML 元素等同于访问节点,我们能够以不同的方式来访问 HTML 元素。

节点查找

直接查找节点

1
2
3
4
document.getElementById(“idname”)
document.getElementsByTagName(“tagname”)
document.getElementsByName(“name”)
document.getElementsByClassName(“name”)
局部查找

注意:设计到寻找元素,注意<script>标签的位置!

导航节点属性

‘‘‘
parentElement ??????????// 父节点标签元素
children ???????????????// 所有子标签
firstElementChild ??????// 第一个子标签元素
lastElementChild ???????// 最后一个子标签元素
nextElementtSibling ????// 下一个兄弟标签元素
previousElementSibling ?// 上一个兄弟标签元素‘‘‘

注意,js中没有办法找到所有的兄弟标签!

节点操作

创建节点:

1
createElement(标签名) :创建一个指定名称的元素。

例:var tag=document.createElement(“input")
tag.setAttribute(‘type‘,‘text‘);

添加节点:

1
2
3
4
5
追加一个子节点(作为最后的子节点)
somenode.appendChild(newnode)
把增加的节点放到某个节点的前边
somenode.insertBefore(newnode,某个节点);

删除节点:

1
removeChild():获得要删除的元素,通过父元素调用删除

替换节点:

1
somenode.replaceChild(newnode, 某个节点);

节点属性操作:

1、获取文本节点的值:innerText innerHTML

2、attribute操作

 ????elementNode.setAttribute(name,value) ????????elementNode.getAttribute(属性名) ???????<-------------->elementNode.属性名(DHTML) ????elementNode.removeAttribute(“属性名”);

3、value获取当前选中的value值
1.input
2.select (selectedIndex)
3.textarea
4、innerHTML 给节点添加html代码:
该方法不是w3c的标准,但是主流浏览器支持
tag.innerHTML = “<p>要显示内容</p>”;

5、关于class的操作:

1
2
3
elementNode.className
elementNode.classList.add
elementNode.classList.remove

6、改变css样式:

1
2
3
<pid="p2">Hello world!</p>
document.getElementById("p2").style.color="blue";
.style.fontSize=48px

DOM Event(事件)

事件类型

onclick ???????当用户点击某个对象时调用的事件句柄。ondblclick ????当用户双击某个对象时调用的事件句柄。onfocus ???????元素获得焦点。 ??????????????练习:输入框onblur ????????元素失去焦点。 ??????????????应用场景:用于表单验证,用户离开某个输入框时,代表已经输入完了,我们可以对它进行验证.onchange ??????域的内容被改变。 ????????????应用场景:通常用于表单元素,当元素内容被改变时触发.(三级联动)onkeydown ?????某个键盘按键被按下。 ?????????应用场景: 当用户在最后一个输入框按下回车按键时,表单提交.onkeypress ????某个键盘按键被按下并松开。onkeyup ???????某个键盘按键被松开。
onload ????????一张页面或一幅图像完成加载。
onmousedown ???鼠标按钮被按下。onmousemove ???鼠标被移动。onmouseout ????鼠标从某元素移开。onmouseover ???鼠标移到某元素之上。onmouseleave ??鼠标从元素离开onselect ??????文本被选中。onsubmit ??????确认按钮被点击。

绑定事件方式

方式1:

<div  >点我呀</div><script> ???function foo(self){ ??????????// 形参不能是this; ???????console.log("点你大爷!"); ???????console.log(self); ??????}</script>

方式2:

<p >试一试!</p><script> ???var ele=document.getElementById("abc"); ???ele.onclick=function(){ ???????console.log("ok"); ???????console.log(this); ???// this直接用 ???};</script>

事件介绍

1、onload:

onload 属性开发中 只给 body元素加.这个属性的触发 标志着 页面内容被加载完成.应用场景: 当有些事情我们希望页面加载完立刻执行,那么可以使用该事件属性.

View Code

2、onsubmit:

当表单在提交时触发. 该属性也只能给form元素使用.应用场景: 在表单提交前验证用户输入是否正确.如果验证失败.在该方法中我们应该阻止表单的提交.

View Code

3、事件传播:

View Code

4、onselect:

View Code

5、onchange:

View Code

6、onkeydown:

Event 对象:Event 对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。
事件通常与函数结合使用,函数不会在事件发生前被执行!event对象在事件发生时系统已经创建好了,并且会在事件函数被调用时传给事件函数.我们获得仅仅需要接收一下即可.比如onkeydown,我们想知道哪个键被按下了,需要问下event对象的属性,这里就时KeyCode.

View Code

7、onmouseout与onmouseleave事件的区别:

View Code

js(二)对象

原文地址:http://www.cnblogs.com/0704L/p/7700265.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved