JavaScript 點滴

1.Arguments 對象

 

javascript對函數的參數幷沒有做嚴格管控,即使調用的時候,實參數多于形參,多于參數將被忽略,如果形參多于實參,則多于形參賦值爲undefine。

但是我們依然可以arguments數組來獲取參數值.

 

arguments還具有callee屬性,用于調用當前函數本身,即可以通過這個方法來實現遞歸調用

 

2.函数的属性

 

length 属性: 返回arguments的长度

 

prototype属性: 重要属性,待增加描述

 

apply()方法和call()方法: 两个方法都用于将函数看作一个对象的方法调用,二者的第一个参数做为另一个对象的名称,剩余的参数将传递给该函数,不同之处在于apply方法将剩余参数以数组的形式传递

 

3.protype

 

<script language="javascript">

function Class(x, y) {

this.x = x;

this.y = y;

}

var c = new Class(1, 2); //原型對象

Class.prototype.pi = 3.14;

document.write('c.pi'+c.pi);//3.14 去找原型對象的屬性

</script>

 

Javascript不存在類的說法,一般用原型對象protype或者構造函數來實現

另外可以通過delete Class.prototype.pi 删除屬性

 

4.Object 的屬性和方法

 

constructor 獲取對象的構造函數;

tostring()

toLocaleString() 多用于日期等類或者實例的本地化

valueOf() 類似toString() 用于 Number/Boolean對象

hasOwnProperty()  參數爲字符串,判斷是否是實例本身的屬性還是繼承來的屬性

propertyIsEnumerable() 判斷是否是對象本身定義幷且是可以用for/in循環枚舉的

isPrototypeOf() 判斷是否是參數的原型對象

 

5.數組

 

    //數組定義

    var a = new Array(1, 2, 3, 4, '5');

    var b = [1, 2, 3, 4, 5];

    var c = [[1, ['a', 'b']], 2, [3, ['c', 's']]];

 

    document.writeln(c[0][1][1]); //b

    //可以直接添加元素,因爲是稀疏數組,只爲真正初始化的元素分配空間,數組的長度爲最大的下標+1;

    document.writeln(c.length);

 

    //數組的方法

    var b1 = b.join('-');

    document.writeln(b1); //將b的元素用參數字符串串聯起來

 

    var b2 = b.reverse();//將b的元素次序顛倒

 

    document.writeln('<br/>sort前 b===b2 :' + b===b2 + '<br/>'); // false

 

    document.writeln(b2.sort(function() { return -1; }));   //返回負數,前後交換

 

    //b.concat(b2); //將參數元素添加到數組後面

 

    document.writeln('<br/>sort后 b===b2 :' + b === b2 + '<br/>');//false

 

    document.writeln('<br/> b.concat(b2) :' + b.concat(b2) + '<br/>'); //兩個數組相連

 

    document.writeln('<br/>'+b);//concat 后,b本身沒有變化

    /*

        兩個數組指向同一個數組的時候,調用某些函數會同時修改兩個數組

    */

 

    var array1 = [1, 2, 3];

    var array2 = array1;

 

    //array1.concat(1);     不會

    //array1.reverse();     會

    //array1.sort(function(a, b) { return b - a; });    不會

    document.writeln('數組2 : ' + array2);

 

    //array1.slice(index,end);  包含index 不包含end,如果只有一個參數,則是從index到結束,如果參數是負數,則表示從後面開始計算

    document.writeln(array1.slice(-3, -1)); //1,2

 

    //array1.splice(index,num,args1,args2);num 要删除的元素個數,參數1,參數2,要插入的元素.与上面的不同,

                                              將對元素本身進行操作,返回一個被删除元素的數組

 

   push()/pop()  push(),在數組末端追加元素,pop() 删除數組末端元素

 

    unshift()/shift()  与push()/pop()不同的是,対數組首端元素進行操作。注意當unshift插入多個參數的時候,參數爲一次性插入

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值