js中的對象(object:對象和數組)以及對象的常用方法

對象的本質和意義:(object)

對象是一個整體,用於描述一個事物的所有的相關信息;

內容之間用“,”分隔,最後一個不加逗號;

對象中一般有屬性(靜態)和方法(動態,方法是作爲屬性來存儲的函數。):

你可以想象成對象就是一個人,這個人的身高,體型,性格是他本身的屬性,是靜態的;而這個人喜歡打籃球,喜歡吃東西,這就是他的動作也就是方法,是動態的;

使用{ }去定義一個對象,數據由鍵值對的組合方式;值可以是任意數據類型;

var obj = {

    sex : "不詳",

    socre : 100,

    flag : true,

    sing : function{
       console.log("愛唱歌")
      },

    play : function{
       console.log("打遊戲")
      }

  }

對象的操作:

訪問值:(查)

console.log(obj.sex);

console.log(obj["socre"]);

console.log(obj.sing());

 

添加一個屬性:(增)

obj.hobby = "睡覺";

obj["weight"] = “50kg”;

obj.dance = function(){

  }
 
修改:(改)

obj.sex = “女”;

obj[“socre”] = 99;

刪除:(刪)

delete obj.flag;

delete obj["sex"];

  訪問屬性的時候,可以用obj.屬性或者obj["屬性"];需要執行方法(瞭解這個人)的時候,需要用“.”的方式去調用。

在W3C的官網文檔中提到:

 如果通過關鍵詞 "new" 來聲明 JavaScript 變量,則該變量會被創建爲對象

var x = new String();        // 把 x 聲明爲 String 對象
var y = new Number();        // 把 y 聲明爲 Number 對象
var z = new Boolean();       //    把 z 聲明爲 Boolean 對象

請避免將字符串、數值或邏輯聲明爲對象。他們會增加代碼的複雜性並降低執行速度。

  擴展:

JavaScript有3大對象,分別是本地對象內置對象宿主對象;

  這裏引用別人的話:本地對象也經常被叫做原生對象或內部對象,包含Global和Math在內的內置對象在《JavaScript高級程序設計》裏也被叫做單體內置對象,很多時候,乾脆也會直接把本地對象和內置對象統稱爲“內置對象”,也就是說除了宿主對象,剩下的都是ECMAScript的內部的“內置”對象。

  這裏說說內置對象:

  JS內置對象也被稱爲內部類。所謂的內部類,就是JavaScript裏面封裝好了的類(也就是我們不需要去自己寫,可以拿過來用)。

  JavaScript中的內部類大致有:Array,Boolean,Date,Math,Number,String,RegExp.....

可以分爲兩類:靜態類和動態類

  靜態類:不需要new,直接調用這個類的屬性或方法即可,例如:Math    Math.pow()

  動態類:需要new,然後再調用對象的方法或者屬性  var arr =  new Array(4,5,6);   arr.push()

數組:就是一組數據的集合

js中數組的特點:(有下標,從0開始;有長度,length)

①數組定義時無需指定數據類型;

②數組定義時可以無需指定數組長度;

③數組可以存儲任何數據類型的數據;

④一般是相同的數據類型。

數組的創建方式:

①字面量定義:var arr = [值1,值2,值3];(數組文本方法)

②構造函數創建:new Array(值1,值2,值3);            //當括號中沒有值的時候,打印結果爲[ ](空數組);

   創建數組並指定長度(只有一個值的時候爲起初的長度,可自己增加值來改變這個長度):new Array(size);

  W3C中提出,出於簡潔、可讀性和執行速度的考慮,請使用第一種方法(數組文本方法)

var ary = new Array(4);

ary[0] = 12;

ary[1] = 13;

ary[2] = 14;        //加入值      數組名[下標] = 值 

長度爲4,只加入了三個值,則第四個值爲undefined;

數組操作:

數組名.方法

    1)push(5,4,3)--向數組末尾添加新的數組項,返回值新數組的長度,原數組改變  

         2)pop()--刪除數組最後一項,沒有參數,返回值刪除項,原數組改變              

         3)unshift()--向數組開頭位置添加,返回值是新數組的長度,原數組改變                    

         4)shift()--刪除數組第一項,沒有參數,返回值刪除項,原數組改變 

        (以下是擴展方法) :                        

         5)splice()--原數組改變             

          splice(n,m)--從索引(下標)n開始,刪除m個,返回值以數組的形式返回刪除項          

               splice(n)--從索引n開始刪除到最後             

               splice(0)--原數組清空,返回一個和原來一樣的新數組            

               splice(n,m,z);從索引(下標)n開始,刪除m個,把z添加到刪除的位置                                 

         6)slice(n,m)--從索引n開始,查找到索引m處,不包含m,將查找到的以新數組返回,原數組不變                        

         7)concat--數組的拼接,不改變數組,返回最終連接好的新數組;                                

         8)數組轉爲字符串:不改變原數組             

              toString()        join('符號')         (數組.join()可以直接轉數組)

清空數組的方式:

①arr.splice(0);

②arr.length = 0;

③arr = [ ];

數組的遍歷:

for , for...in

數組可以使用for循環遍歷  

也可以使用for...in遍歷  一般使用for...in

for-in的特點:

     沒有循環條件 

     自動取出下標,

     下標默認從 0 開始 ,最大下標  數組長度-1

     下標的類型爲string

當需要返回兩個值時,可以用對象{ }或數組[ ]的形式返回;

只能用for...in遍歷對象,for不能遍歷對象;(因爲對象的鍵是一個變量)在遍歷時[ ]中不能加引號;

一些數組類型:

整數數組 :  [12,3,4,5,6]

字符串數組 : ["orange","apple","pear"]

對象數組 : [{sname:"jack",age:19},{sname:"lily",age:18}]

二維數組 : [[1,3,4],[5,6,7],[1,2,5]]   (一個數組的每一項都是一個數組)

數組和對象的區別

在 JavaScript 中,數組使用數字索引。

在 JavaScript 中,對象使用命名索引。

數組是特殊類型的對象,具有數字索引。

在數組中使用數字(下標)來訪問其“元素”。

在對象使用名稱(屬性名稱和方法名稱)來訪問其“成員”。

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