待整理
函数详解
return 返回值
//数字/字符串/布尔/函数/对象(元素/[]/{}/null)未定义
function $(id){
return document.getElementById(id);
}
课后小练习:
alert(fn2(2,5)) //[2,3,4,5,]
alert(fn2(6,2)) //[2,3,4,5,6]
function fn5(){
return 123;
alert(520);
}
alert(fn5()) //123
1.renturn:返回值 只在函数里去加return不要用在if之类的地方离
1)函数名+():fn1()==》return 后面的值
2)所有函数默认返回值:未定义
3) return后面任何代码都不执行了
什么时候用renturn?---只要需要用到函数名+()等于某个东西 的时候都需要用到return
=================================
arguments
function fn1(a,b,c){ //形参——形式上,abc这些名代表123
//arguments=>[123——]实参的集合
alert(arguments.length)//3
alert(arguments[arguments.length-1]);
}
fn1(1,2,3) //实参——实际传递的参数
function sum(){
var n=0
for(var i=0;i<arguments.length;i++){
n+=arguments[i];
}
}
alert(sum(1,2,3))
什么时候用arguments?
当函数的参数的个数无法确定的时候用arguments
课后小练习:
alert(sum(1,2,3,"+")); //6
alert(sum(10,2,3,4,"-")); //1
======================================
获取元素样式
alert(oDiv.style.width)——只能取行间样式不能取样式表里的样式
getComputedStyle(oDiv.width)——获取经过计算机(浏览器)计算后的样式//IE 678有问
题
oDiv.currentStyle.width在ie678没问题在标准浏览器下有问题
综合运用兼容所有浏览器:
if(oDiv.currentStyle){
alert(oDiv.currentStyle.width);
}else{
alert(getComputedStyle(oDiv).width)
}
封装以上:
function getStyle(obj,attr){
if(obj.currentStyle){
return oDiv.currentStyle[attr];
}else{
return getComputedStyle(obj)[attr];
}
}
等同于三目运算:
function getStyle(obj,attr){
return obj.currentStyle?obj.currentStyle[attr]:getComputed(obj)[attr];
}
getStyle("oDiv","width")
注意:
1.getStyle获取到的是复合样式
backgroundColor单一样式可以得到值,不能用颜色值做判断
2.不要有空格,有空格就是undefined
3.不要获取未设置后的样式,不兼容
getComputedStyle(oDiv,0/false…)有些人会写第二个参数跟任意值,为了兼容ff4.0之前的版本
================================================
定时器
在某一段时间内发生的一些事儿叫做定时器
for是瞬间完成没有时间根据
setInterval(函数,时间毫秒) 重复执行
i=0;
function fn1(){
document.title=i;
i++;
}
setInterval(fn1,1000);
这里fn1的调用不要加(),加上括号就相当于直接调用了
var timer=setInterval(函数,毫秒)
clearInterval(timer) 清楚定时器
var timer=setTimeout(函数,毫秒)执行一次
clearTimeout(timer);
练习:过几秒钟出现广告图,再过几秒钟广告图消失