javascript的繼續深入

arguments:

可變量(不定參):參數的個數可變,參數數組

function sum(){
  var sum = 0;

    for( var i = 0; i<arguments.length;i++ ){
        sum+=arguments[i]
    }
    return sum;
}


sum(3,5,6,78,9)

css(oDiv,’width’) //獲取樣式
css(oDIv,’width’,200) //設置樣式

如何分辨他們:arguments

function css(obj,name,value) {
    if(arguments==2) {
    //  return arguments[0].style[arguments[1]];
    return obj.style[name];
    }
    else
    {
//      arguments[0].style[arguments[1]] =      arguments[2];
obj.style[name] = value;
    }
}
window.onload   = function() {
        var oDiv= document.getElementById("div1");
        css(oDiv,"background","green");
}

如何獲取非行間的樣式

行間的樣式可以使用obj.style.width之類的方法獲得其樣式

currentStyle:用來獲取非行間樣式
//IE
oDiv.currentStyle.width

//Chrome、FF
getComputedStyle(obj,null); 1:某個具體的值 2:隨便放值
getComputedStyle(oDiv,false).width;

js第二定律:但凡好東西,一定不兼容(&_&)


function getStyle(obj,name) {
    if(obj.currentStyle) {
        return obj.currentStye[name];
    }
    else
    {
        return getComputedStyle(obj,false)[name];
    }
}


window.onload = function{
        var oDiv=document.getElementById("div1");
    if(oDiv.currentStyle) {
        //IE
        oDiv.currentStyle.width
    }
    else
    {
        getComputedStyle(oDiv,false).width;
    }
}

複合樣式:background、border
單一樣式:width、height、width
getStyle()不能取複合樣式

數組

var a = [1,2,3];
var a = new Array[1,2,3];
一般使用第一種

數組的length

var arr = [1,2,3,4,5,6]

arr.length = 3; //數組就變爲三個
length既可以賦值,又可以設置
添加、刪除元素
var arr = [1,2,3]

//push尾部添加
arr.push(4);  //[1,2,3,4]

//pop尾部刪除
arr.pop();   //1,2

//shift頭部刪除
arr.shift();    //2,3

//unshift()頭部添加
arr.unshift()
//splice(開始,長度,元素) 2先刪除,後插入

var arr = [1,2,3,4,5,6];

//刪除 splice(起點,長度)
arr.splice(2,3);    //[1,2,6]

//插入:splice(起點,長度,元素)
arr.splice(2,0,'a','b','c')  //[1,2,a,b,c,3,4,5,6]

arr.splice(2,2,'a','b');    //[1,2,a,b,5,6]
concat
var a = [1,2,3];
var b = [4,5,6]

a.concat(b);    //[1,2,3,4,5,6]
join
var arr = [1,2,3,4]
arr.join('|');  //1|2|3|4
sort排序

sort只認識字符串

var arr= ['float','width','right'];
arr.sort();  //floatrightwidth

var aRr = [12,3,5,56,88];
arr.sort(function(n1,n2){
    /*if(n1<n2) {
        return -1;
    }
    else if(n1>n2)
    {
        return 1;
    }
    else
    {
        return 0;
    } */
return n1-n2;
})

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章