JS 章節②. 基礎應用(中) : 深入JavaScript

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>

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 獲取元素:document.getElementById 通過id獲取一個元素obj.getEle...
    蒲公英_前端開發者閱讀 640評論 0 4
  • 一、數組 數組是一個有序列表,所以有下標. 并且數組在js中可以存在任意類型的數據.并且同一個數組中可以存放不同的...
    空谷悠閱讀 521評論 0 1
  • JS基礎講解 JavaScript組成ECMAScript:解釋器、翻譯DOM:Document Object M...
    FConfidence閱讀 580評論 0 1
  • 工廠模式類似于現實生活中的工廠可以產生大量相似的商品,去做同樣的事情,實現同樣的效果;這時候需要使用工廠模式。簡單...
    舟漁行舟閱讀 7,842評論 2 17
  • 懷胎十月,感受著腹中的微動,您幸福的笑了。 一聲孩啼,便注定了一生的牽掛,一輩子的付出。 嬰兒的啼哭,煩走了白天,...
    心宇心愿666閱讀 219評論 0 2