js的对象操作~~~~二
继上一篇文章,String对象,Array对象往下讲。接下来会简洁概括重要的知识点就可以,学习方法前面已经讲了
3、js的Date对象:js里面获取当前时间
Date() :可返回当天的日期和时间。
toLocaleString() :可根据本地时间把 Date 对象转换为字符串,并返回结果。我们熟悉的时间
//获取当前时间
var date = new Date();
document.write(date); // Sat Dec 10 2016 13:15:51 GMT+0800 (中国标准时间)
document.write(Date());//这样也可以,不用实例化
//转换成习惯的格式
document.write(date.toLocaleString());
getFullYear(): 获取当前的年方法
document.write("year: "+date.getFullYear());
** getMonth(): 获取当前的月方法
//返回的是 0-11月,如果想要得到准确的值,加1
var date1 = date.getMonth()+1;
document.write("month: "+date1);
** getDay():获取当前的星期,返回的是 (0 ~ 6)
//外国朋友,把星期日作为一周的第一天,星期日返回的是 0
//而星期一到星期六 返回的是 1-6
document.write("week: "+date.getDay());
** getDate():获取当前的日,当前的天 1-31
document.write("day: "+date.getDate());
** getHours():获取当前的小时
document.write("hour: "+date.getHours());
**getMinutes(): 获取当前的分钟
document.write("minute: "+date.getMinutes());
** getSeconds(): 获取当前的秒
document.write("second: "+date.getSeconds());
** getTime():获取毫秒数,返回的是1970 1 1 至今的毫秒数
// 应用场景:
//使用毫秒数处理缓存的效果(不有缓存)
http://www.baidu.com?毫秒数
4、js的Math对象
数学的运算
里面的都是静态方法,使用可以直接使用 Math.方法()
** ceil(x): 向上舍人
** floor(x):向下舍人
** round(x):四舍五入
** random():得到随机数(伪随机数)- 得到0-1的随机数
** pow(x,y) : 可返回 x 的 y 次幂的值.
这些是经常用到的,还是老话,需要更多的去看手册
<script type="text/javascript">
var mm = 10.7;
document.write("ceil: "+Math.ceil(mm));//11
document.write("floor: "+Math.floor(mm));//10
document.write("round: "+Math.round(mm));//11
//random方法
document.write(Math.random()); //0.5204865174162872
//得到0-9的随机数
document.write("<hr/>");
document.write(Math.floor(Math.random()*10));
//pow(x,y) 2的5次方
document.write("<hr/>");
document.write(Math.pow(2,5));
</script>
5、js的全局函数:由于不属于任何一个对象,直接写名称使用,截图
eval() : 执行js代码(如果字符串是一个js代码,使用方法直接执行)
var str = "alert('1234');";
alert(str);//alert('1234')
eval(str); //1234
encodeURI() :对字符进行编码
var encode1 = encodeURI(str1);//%E6%B5%8B%E8%AF%95%E4%B8%AD%E6%96%87aaa1234
decodeURI() :对字符进行解码
var decode1 = decodeURI(encode1); //测试中文aaa1234
isNaN():判断当前字符串是否是数字
-- var str2 = "aaaa";
alert(isNaN(str2));//如果是数字,返回false如果不是数字,返回true
parseInt():类型转换
var str3 = "123";
document.write(parseInt(str3)+1); //124
6、js的函数的重载
** 什么是重载?方法名相同,参数不同
** js的重载是否存在? 不存在,但是可以调用最后一个方法,把传递的参数保存到 arguments数组里面
** js里面是否存在重载?(面试题目)
(1)js里面不存在重载。
(2)但是可以通过其他方式模拟重载的效果 (通过aruguments数组来实现)
function add1() {
//比如传递的是两个参数
if(arguments.length == 2) {
return arguments[0]+arguments[1];
} else if (arguments.length == 3) {
return arguments[0]+arguments[1]+arguments[2];
} else if (arguments.length == 4) {
return arguments[0]+arguments[1]+arguments[2]+arguments[3];
} else {
return 0;
}
}
7、js的bom对象: 浏览器对象模型
** 有哪些对象?
1) navigator: 获取客户机的信息(浏览器的信息)
- navigator.appName
//navigator
document.write(navigator.appName); //Netscape
2 ) screen: 获取屏幕的信息
document.write(screen.width);
document.write(screen.height);
3) location: 请求url地址
- href属性:获取到请求的url地址
//设置url地址: 页面上安置一个按钮,按钮上绑定一个事件,当我点击这个按钮,页面可以跳转到另外一个页面
location.href = "hello.html";
//鼠标点击事件 onclick="js的方法;"
<input type="button" value="tiaozhuan" onclick="href1();"/>
//打印出url地址
document.write(location.href);//http://localhost:8080/js/08-js%e7%9a%84bom%e5%af%b9%e8%b1%a1%e4%b8%80.html
4)history:请求的url的历史记录
- 创建三个页面
1、创建第一个页面 a.html 写一个超链接 到 b.html
2、创建b.html 超链接 到 c.html
3、创建c.html
//到访问的上一个页面
history.back();
history.go(-1);
//到访问的下一个页面
history.forward();
history.go(1);
5) window(**)
* 窗口对象
* 顶层对象(所用的bom对象都是在window里面操作的)
** 方法
window.alert() : 页面弹出一个框,显示内容
** 简写alert()
confirm(): 确认框
//演示confirm方法
var flag = window.confirm("是否删除?");
if(flag == true) {
alert("删除成功");
} else {
alert("删除失败");
}
prompt(): 输入的对话框
window.prompt("please input : ","0");
window.prompt("在显示的内容","输入框里面的默认值");
open() : 打开一个新的窗口
open(“打开的新窗口的地址url”,”“,”窗口特征,比如窗口宽度和高度”)
//创建一个按钮,点击这个按钮,打开一个新的窗口
window.open("hello.html","","width=200,height=100");
close(): 关闭窗口(浏览器兼容性比较差)
- window.close();
做定时器 setInterval(“js代码”,毫秒数) 1秒=1000毫秒,每相隔一定时间就会执行
表示每三秒,执行一次alert方法
window.setInterval("alert('123');",3000);
setTimeout(“js代码”,毫秒数):表示在毫秒数之后执行,但是只会执行一次
//表示四秒之后执行js代码,只会执行一次
window.setTimeout("alert('abc');",4000);
clearInterval(): 清除setInterval设置的定时器
var id1 = setInterval("alert('123');",3000);//通过setInterval会有一个返回值
clearInterval(id1); //清除
clearTimeout() : 清除setTimeout设置的定时器
//var id2 = setTimeout("alert('abc');",4000);
//clearTimeout(id2);
8、js的dom对象(**):文档对象模型
** 文档:
超文本文档(超文本标记文档) html 、xml
** 对象:
提供了属性和方法
** 模型:使用属性和方法操作超文本标记型文档
画图分析,如何使用dom解析html
解析过程
根据html的层级结构,在内存中分配一个树形结构,需要把html中的每部分封装成对象,
- document对象:整个文档
- element对象:标签对象
- 属性对象
- 文本对象
– Node节点对象:这个对象是这些对象的父对象
* 如果在对象里面找不到想要的方法,这个时候到Node对象里面去找
9、document对象: 表示整个的文档
1)write()方法:(1)向页面输出变量(值)(2)向页面输出html代码
var str = "abc";
document.write(str);
2) getElementById():通过id得到元素(标签)
//使用getElementById得到input标签
var input1 = document.getElementById("nameid"); //传递的参数是标签里面的id的值
//得到input里面的value值
alert(input1.name); //标签对象.属性名称
//向input里面设置一个值value
input1.value = "bbbbb";
3)getElementsByName():通过标签的name的属性值得到标签,返回的是一个集合(数组)
//使用getElementsByName得到input标签
var inputs = document.getElementsByName("name1"); //传递的参数是 标签里面的name的值
//alert(inputs.length);
//遍历数组
for(var i=0;i<inputs.length;i++) { //通过遍历数组,得到每个标签里面的具体的值
var input1 = inputs[i]; //每次循环得到input对象,赋值到input1里面
alert(input1.value); //得到每个input标签里面的value值
}
4)getElementsByTagName(“标签名称”):通过标签名称得到元素
//演示getElementsByTagName
var inputs1 = document.getElementsByTagName("input"); //传递的参数,是标签名称
//alert(inputs1.length);
//遍历数组,得到每个input标签,跟上面一样
【注意地方】
只有一个标签,这个标签只能使用name获取到,这个使用,使用getElementsByName返回的是一个数组,但是现在只有一个元素,这个时候不需要遍历,而是可以直接通过数组的下标获取到值
//通过name得到input标签
var inputs2 = document.getElementsByName("name11")[0];
alert(inputs2.value);
var inputss = document.getElementsByTagName("input")[0];
alert(inputss.value);