對象的本質和意義:(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 中,對象使用命名索引。
數組是特殊類型的對象,具有數字索引。
在數組中使用數字(下標)來訪問其“元素”。
在對象使用名稱(屬性名稱和方法名稱)來訪問其“成員”。