1.函数返回值
- 返回值1
<script>
function show()
{
return 'advb';
}
var a=show();
alert(a); // 结果: advb
</script>
- 返回值2
<script>
function show(a, b)
{
return a+b;
}
alert(show(3, 5));
</script>
- 返回值3
<script>
function show(a, b)
{
//return; //没有return
}
alert(show(3, 5)); //结果 : undefined
</script>
<script>
function show(a, b)
{
return; //没有return任何东西
}
alert(show(3, 5)); //结果 : undefined
</script>
- 一般求和
<script>
function sum(a, b)
{
return a+b;
}
alert(sum(12, 6));
</script>
- 多个参数求和 (arguments 是一个可变数组 )
<script>
function sum()
{
//arguments 是一个可变数组
var result=0;
for(var i=0;i<arguments.length;i++)
{
result+=arguments[i];
}
return result;
}
alert(sum(12, 6, 8, 6, 8, 6, 8)); //结果 : 54
</script>```
- CSS函数 当传入两个参数时获取属性 , 三个参数时,修改样式
<html>
<head>
<meta charset="utf-8">
<title>CSS函数</title>
<script>
function css(obj, name, value)
{
if(arguments.length==2) //获取
{
return obj.style[name];
}
else
{
obj.style[name]=value; //修改
}
}
window.onload=function ()
{
var oDiv=document.getElementById('div1');
//alert(css(oDiv, 'width')); //获取到宽度 200px
css(oDiv, 'background', 'green'); //修改背景颜色为绿色
};
</script>
</head>
<body>
<div id="div1" style="width:200px; height:200px; background:red;">
</div>
</body>
</html>
> ###2.取非行间样式 (也就是样式写在<style></style>之间,或者css文件中)
由于`currentStyle `只兼容`IE`,`getComputedStyle(oDiv, false)`只兼容`Chrome、FF`等,所以可以写一个函数来获取非行间样式
######获取取非行间样式 函数:
function getStyle(obj, name)
{
if(obj.currentStyle) //由于currentStyle只兼容IE,所以在IE浏览器中他是true,其他浏览器中为false
{
return obj.currentStyle[name]; //IE
}
else
{ //计算样式 其中getComputedStyle(oDiv, xxx) 第二个参数可以随便填,一般习惯写false
return getComputedStyle(obj, false)[name]; //Chrome、FF
}
}
示例代码:
通过上面的函数来获取非行间样式 `backgroundColor`
window.onload=function ()
{
var oDiv=document.getElementById('div1');
alert(getStyle(oDiv, 'backgroundColor'));
};
###注意
<a>此函数只适用于单一样式,复合样式不适用!!!</a>
单一样式:width、height、position 等
复合样式:background、border 等
>###3.数组
- 数组基础
- 数组的使用
定义
var arr=[12, 5, 8, 9]; //一般用这种创建方式,简单
var arr=new Array(12, 5, 8, 9); //也可以这样创建
没有任何差别,[]的性能略高,因为代码短
- 数组的属性
length
既可以获取,又可以设置 :①.可以获取数组的个数,②.又可以用过array.length = 1;来设置数组的个数;
例子:快速清空数组 //用过array.length = 0;来清空数组;
数组使用原则:数组中应该只存一种类型的变量
- 数组的方法
添加
push(元素),从尾部添加一个元素
unshift(元素),从头部添加一个元素
删除
pop(),从尾部删除一个元素
shift(),从头部删除一个元素
- 插入、删除
`splice` (`音标:[splaɪs]`) : 数组的万能操作
删除
splice(开始,长度) //第一个参数:指定位置;第二个参数:指定长度
插入
splice(开始, 0, 元素…)
先删除,后插入
splice(开始, 长度,元素…)
先删除,后插入
替换
先删除,后插入 可用作替换
- 数组连接 (两个数组合并) :concat
concat(数组2)
连接两个数组
<script>
var a = [1,2,3];
var b = [4,5,6];
alert(a.concat(b)); 结果:[1,2,3,4,5,6];
alert(b.concat(a)); 结果:[4,5,6,1,2,3];
</script>
- join(分隔符)
用分隔符,组合数组元素,生成字符串 (学习ajax时,连接网址使用)
<script>
var arr = [1,2,3,4];
alert(arr.join('-')) //1-2-3-4
alert(arr.join('- -p')) //1- -p2- -p3- -p4
</script>
- 字符串split (`[splɪt]`分离;分解)
split() 方法用于把一个字符串分割成字符串数组。
stringObject.split(separator,howmany)
separator 必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。
howmany 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
使用
如果您希望把单词分割为字母,或者把字符串分割为字符,可使用下面的代码:
"hello".split("") //可返回 ["h", "e", "l", "l", "o"]
若只需要返回一部分字符,请使用 howmany 参数:
"hello".split("", 3) //可返回 ["h", "e", "l"]
- 排序 sort
`sort([比较函数])`,排序一个数组
排序一个字符串数组
排序一个数字数组
① 排序一个字符串数组
<script>
var arr=['float', 'width', 'alpha', 'zoom', 'left'];
arr.sort();
alert(arr); //结果 ['alpha','float','left','width','zoom']
</script>
②排序一个数字数组
- 2.1 基础版
<script>
var arr=[12, 8, 99, 19, 112];
arr.sort();
alert(arr); //结果: [112,12,19,8,99] //其实他把数字当成字符串来排序了
</script>
- 2.1 晋级版
<script>
var arr=[12, 8, 99, 19, 112];
arr.sort(function (n1, n2){
if(n1<n2)
{
return -1;//只要是个负数就可以 -2,-7等都可以
}
else if(n1>n2)
{
return 1; //只要是个正数就够了
}
else
{
return 0;
}
});
alert(arr); //结果:[8,12,19,99,112]
</script>
- 2.2最终版 (由2.1进化而来)
<script>
var arr=[12, 8, 99, 19, 112];
arr.sort(function (n1, n2){
return n1-n2; //若果n1>n2,为正;如果n1<n2,为负;如果相等,则为0;
});
alert(arr);//结果:[8,12,19,99,112]
</script>