深入了解JavaScript
函数返回值
什么是函数的返回值
-
函数的执行结果
-
可以没有return
一个函数应该只返回一种类型的值
函数传参
可变参(不定参):arguments
参数的个数可变,参数数组
例子1:求和
/*arguments 可变参 不定参
例一:求和*/
function sum(){
var result = 0;
for(var i=0;i<arguments.length;i++)
{
result+=arguments[i];
}
return result;
}
alert(sum(1,2,3,4,5,6,7,8)) //返回36
例子2:CSS函数
/*jQuery中的css函数*/
css(oDive,'width') //获取样式
css(oDiv,'width','200px') //设置样式
/*CSS函数*/
function css(){
if(arguments.length==2) //获取/
{
return arguments[0].style[arguments[1]];
}
else
{
arguments[0].style[arguments[1]]=arguments[2];
}
}
window.onload=function()
{
var oDiv=document.getElementById('div1');
//alert(css(oDiv,'width')); //返回oDiv的宽度
css(oDiv,'background','green'); //设置样式
}
取非行间样式(不能用来设置)
obj.currentStyle[attr] (IE可用,FF不兼容)
getComputedStyle(obj,false)[attr] (Chrome,FF)
window.onload=function()
{
var oDiv=document.getElementById('div1');
//alert(oDiv.style.width) //取不到非行间样式
//alert(oDiv.currentStyle.width) //获取非行间样式
//alert(getComputedStyle(oDiv,null).width) //获取非行间样式,第二个参数值随意
/*浏览器兼容处理*/
if(oDiv.currentStyle)
{
//IE
alert(oDiv.currentStyle.width);
}
else
{
//FF
alert(getComputedStyle(oDiv,null).width)
}
}
CSS中存在两种样式:
复合样式:background,border
单一样式:width,height,position
数组基础
数组的使用
定义
var arr=[12,5,8,9];
var arr=new Array(12,5,8,9)
没有任何差别,[]的性能略高,应为代码短
数组的属性
length
即可以获取,又可以设置
例子,快速清空数组(arr.length=0;)
数组的使用原则:数组中只存一种类型的数据
添加,删除元素(数组头部及尾部)
var arr=[1,2,3];
arr.push(4); //往数组的尾部添加元素
arr.pop() //往数组的尾部弹出元素
arr.shift(); //从数组的头部弹出元素
arr.unshift(); //往数组的头部添加元素
插入,删除
var arr=[1,2,3,4,5,6];
//删除:splice(起点,长度)
arr.splice(2,3); //从数组第三个元素起,删除3个元素
//插入:splice(起点,长度,元素...)
arr.splice(2,0,'a','b','c');
//替换:
arr.splice(2,2,'a','b');
排序,转换
/*数组的转换*/
var a=[1,2,3];
var b=[4,5,6];
alert(a.concat(b)); //连接两个数组
alert(a.join('-')); //用分隔符,组合数组元素,生成字符串
/*数组的排序*/
var arr=['float','width','alphe','zoom','left'];
arr.sort();
alert(arr); //输出alphe,float,left,width,zoom,按字母排序
var b=[3,5,6,2,4,6,7,8];
b.sort();
alert(b); //输出2,3,4,5,6,6,7,8,按照数字排序
带参数使用sort()
var arr=[12,8,99,19,112];
arr.sort(function(n1,n2){
return n1-n1;
});