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>