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;
})

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