递归函数:
函数自己调用自己。
对象定义:
由属性和方法组成。
种类:自定义对象,BOM对象 操作浏览器对象的,DOM对象 操作文档对象模型, 内置对象(String对象,Math对象,Array对象,Function对象,Date对 象,RegEx 正则表达式对象)。
对象的定义方法:
方法一:使用new关键字和Object()构造函数来创建
var obj = new Object();
obj.name = “周更生”;
方法二:使用{ }来创建一个对象
var obj = {
name:“周更生”,
school:“北京理工大学”,
showInfo:getInfo
};
function getInfo()
{
var str = obj.name+“的毕业于”+obj.school
document.write( str );
}
调用对象的方法
obj.showInfo();
对象的方法只能是普通函数,不能是匿名函数,否则会报错。
split(分割符)方法
功能:将一个字符串,用指定的分割符分成一个数组。
语法:strObj.split(分割符)
数组也是对象,
例如:
str="5_6_7_8";
var arr=str.split("_");
document.write(arr); //5,6,7,8
document.write(typeof(arr));//object
数组元素拼接为字符串join()方法
功能:将数组中各个元素,通过指定的连接符,连成一个字符串。
语法:arrObj.join(连接符)
var arr=[10,20,30,40];
str=arr.join("_");
document.write(str); //10_20_30_40
document.write(typeof(str)); //string
反转数组元素的顺序reverse()
var arr=[10,20,30,40];
arr.reverse(arr);
document.write(arr); //10_20_30_40
Date对象
定义方法:
var today = new Date();
Date对象常用的方法:
getFullYear():取得四位的年份,比如:2000
getMonth():取得当前的月份,取值0-11 //var month = today.getMonth()+1;
getDate():取得今天是几号,取值1-31
getHours():取得小时数
getMinutes():取得分钟数
getSeconds():取得秒数
getMilliSeconds:取得毫秒数
getTime():取得1970年1月1日到现在的毫秒数
toLocaleString():用本地字符串来显示日期时间信息
toLocaleDateString:用本地字符串来显示日期信息
实例:动态时钟
<script type="text/javascript">
function showTime()
{
var today = new Date();
//分别取出年、月、日、时、分、秒
var year = today.getFullYear();
var month = today.getMonth()+1;
var day = today.getDate();
var hours = today.getHours();
var minutes = today.getMinutes();
var seconds = today.getSeconds();
//如果是单个数,则前面补0
month = month<10 ? "0"+month : month;
day = day <10 ? "0"+day : day;
hours = hours<10 ? "0"+hours : hours;
minutes = minutes<10 ? "0"+minutes : minutes;
seconds = seconds<10 ? "0"+seconds : seconds;
//构建要输出的字符串
var str = year+"年"+month+"月"+day+"日 "+hours+":"+minutes+":"+seconds;
//获取id=result的对象
var obj = document.getElementById("result");
//将str的内容写入到id=result的<div>中去
obj.innerHTML = str;
//延时器
window.setTimeout("showTime()",1000);
}
</script>
<style type="text/css">
#result{
width:500px;
border:1px solid #CCCCCC;
background:#FFFFCC;
margin:50px auto;
font-size:24px;
color:#FF0000;
padding:20px;
}
</style>
</head>
<body onload="showTime()">
<div id="result"></div>
</body>
</html>
延时器setTimeout()方法
Window对象的setTimeout()方法,是一个延时器,换句话说:时间长了,执行一次JS代码。
语法:window.setTimeout(code,milliSec)
参数:code是任何JS代码,milliSec指定的毫秒数或者延迟时间
代码如下:
<script type="text/javascript">
var timer;
var i=0;
function start(){
var obj=document.getElementById("result");
var str="该程序已经运行了"+i+"秒";
i++;
obj.value=str;//给表单元素添加内容,一般用value,除表单外的其他标记用JS写内容,使用innerHTML
//设置延时器
timer=window.setTimeout("start()",1000);
}
//定义函数,停止计时
function stop () {
window.clearTimeout(timer);
}
</script>
</head>
<body>
<input type="button" id="result" value="该程序已经运行了0秒!" />
<br />
<input type="button" onclick="start()" value="开始" />
<input type="button" onclick="stop()" value="结束" />
</body>
千万注意:setTimeout()方法只执行一次,不会重复执行。除非在函数内再次调用自己(递归调用),可以实现重复执行。
clearTimeout()清除由setTimeout()设置的延时器
window.clearTimeout(timer);
定时器setInterval()方法和clearInterval()方法 是个死循环
var timer = window.setInterval(code,milliSec)
setInterval()方法是一个真正的周期执行的定时器,而setTimeout()只执行一次。
举例:图片轮播
<script type="text/javascript">
var j=1;
function img () {
j++; //第一次因为已经有一张图片显示了,所以第一遍应该从2开始,第二遍循环应该从1开始
var obj=document.getElementById("img0");
var str="images/"+j+".jpg";
obj.src=str;
if(j>=6){
j=0;
}
}
function start () {
window.setInterval("img()",1000);
}
</script>
</head>
<body>
<img id="img0" width="300" height="300" src="images/1.jpg" />
</body>
通过DOM来访问网页中的元素
一、JS中用document.getElementById(id)来访问指定ID的网页元素
举例:<div id=”result”></div>
<script type="text/javascript">
var obj = document.getElementById(“result”);
</script>
二 、使用DOM如何将内容写入到指定的id对象中去 (innerHTML是属性,而不是方法)
obj.innerHTML = str; //将str的字符串,写入到id=result的对象中去。
Math对象
Math方法:
Math.abs(),取绝对值
Math.ceil(),向上取整 例如:Math.ceil(4.3) = 5 ,Math.ceil(4.9)=5
Math.floor(),向下取整 例如: Math.floor(4.4)=4,Math.floor(4.9)=4
Math.round(),四舍五入
Math.sqrt(),求平方根
Math.random(),返回0-1之间的随机小数。0<=X<1
求max-min之间的随机数
Math.floor(Math.random()*(max-min)+min);
sum.toFixed(n); 保留n位小数点