歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

JavaScript筆記--Objects

JavaScript的簡單數據類型包括: 數字,字符串,true/false,null 和undefined。 其他所有值都是對象. 數組是對象,方法也是對象。屬性值是除開undefined值以外的任何值。JavaScript的屬性是可以變的。和C#的dynamic差不多,動態類。

      一. 對象聲明以及初始化.

            Notes:  1.屬性包含"-"和" "時候需要加上引號,對於"_"不需要加引號

var stooge={
        "first Name":"Frank",
        "last Name":"Zhang"
    }var person ={
        name:"Frank",
        Age:23,
 }

      二.檢索.

            Notes: 1.  在檢索對象的值可以通過[]和. 來獲取.

                      2. 如果在賦值的時候,該屬性不存在。那麼會自動創建該屬性並賦值.

                      3.  檢索中如果.propertyName不存在將輸出undefine;

                      4.  獲取undefine, null 數據的.PropertyName 將會報錯, 如果數據是非undefine和非null的將不會報錯.即使是賦值的數字.         

    console.log(person.name);

    stooge["middle Name"]="C"; //屬性不存在,重新創建該屬性
    console.log("My full name is "+stooge["first Name"]+"."+stooge["middle Name"]+"."+stooge["last Name"]); //Frank.C.Zhang

    console.log(person.vip); //不報錯,輸出undefine
    try{
        console.log("test"+person.Vip.Msg); // .vip未聲明,然後獲取.msg對象就會報錯
    }catch(ex){
        console.log(ex.message); // 輸出Cannot read property 'Msg' of undefined
    }
   
    person.Vip = null;
    try{
        console.log("test"+person.Vip.Msg); // .vip未聲明,然後獲取.msg對象就會報錯
    }catch(ex){
        console.log(ex.message); // 輸出Cannot read property 'Msg' of null
    }

    person.Vip = 1;
    try{
        console.log(person.Vip.Msg); // 輸出undefine
    }catch(ex){
        console.log(ex.message);
    }

          三. 反射

    console.log(person.hasOwnProperty("name")); //true
    console.log(typeof(person.Age)); //number
    console.log(typeof(person.toString)); //function

          四.遍歷

            Notes: 1.遍歷對象的時候,name是對應的屬性名稱.而不是屬性值;

                      2. 獲取屬性值還是要通過[]和.獲取;

for(var name in stooge){
        console.log(name);
        console.log(typeof(name));

        console.log(stooge[name]);
        console.log(typeof(stooge[name]));
    }

          五.刪除.

          Notes: 1.刪除屬性通過delete obj.propertyName刪除.

          六. 局部類

          Notes: 前面的類我們都是用的全局變量,全局變量用的過多會降低程序的靈活性, 以及開發中會遇到命名重復的問題. 在C#中有命名空間,在Java中也有package,其實在JavaScript我們可以通過命名一個對象。然後將自己特定的數據封裝到對象中。來達到隔離效果。

var MyNamespace ={};
    MyNamespace.person ={
        name:"Frank",
        Age:23
    }

    console.log(MyNamespace.person.name);

JavaScript高級程序設計(第3版)高清完整PDF中文+英文+源碼 http://www.linuxidc.com/Linux/2014-09/107426.htm

如何使用JavaScript書寫遞歸函數  http://www.linuxidc.com/Linux/2015-01/112000.htm

JavaScript核心概念及實踐 高清PDF掃描版 (邱俊濤)  http://www.linuxidc.com/Linux/2014-10/108083.htm

理解JavaScript中的事件流  http://www.linuxidc.com/Linux/2014-10/108104.htm 

Copyright © Linux教程網 All Rights Reserved