如果使用基本數(shù)據(jù)類型的數(shù)據(jù),為我們所創(chuàng)建的變量都是獨立,不能成為一個整體笛匙。 對象屬于一種復(fù)合的數(shù)據(jù)類型班利,在對象中可以保存多個不同數(shù)據(jù)類型的屬性饥漫。
? ? ? 對象的分類:
? ? ? ? ? ? ? ? ? ? ? ? 1.內(nèi)建對象:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? —由ES標(biāo)準(zhǔn)中定義的對象,在任何的ES的實現(xiàn)中都可以使用罗标。? 比如:(Math String Number Boolean Function Object...)
? ? ? ? ? ? ? ? ? ? ? ? 2.宿主對象
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? —由JS的運行提供的對象庸队,目前來講主要指由瀏覽器提供的對象。? 比如:(Bom Dom)
? ? ? ? ? ? ? ? ? ? ? ? 3.自定義對象
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? —由開發(fā)人員自己創(chuàng)建的對象闯割。
? ? ? 向?qū)ο笾刑砑訉傩?/p>
? ? ? ? ? ? ? ? ? ? 屬性名:
? ? ? ? ? ? ? ? ? ? ? ? ? ? —對象的屬性名不強制要求遵守標(biāo)識符的規(guī)范彻消,什么亂七八糟的名字都可以使用,但是我們使用時還是盡量按照表示符的規(guī)則去做宙拉。
? ? ? ? ? ? ? ? ? ? ? ? ? ? —如果要使用特殊的屬性名宾尚,不能采用.的方式來操作,需要使用另一種方式:
? ? ? ? ? ? ? ? ? ? ? ? ? ? 語法:對[“屬性名”]= 屬性值,讀取時也需要采用這種方式煌贴。
使用[ ]這種形式去操作屬性御板,更加靈活,在[ ]中可以直接去傳遞一個變量牛郑,這樣變量值是多少就會讀取那個屬性怠肋。
? ? ? ? ? ? ? ? ? ? ? js中的變量都是保存到棧內(nèi)存中的,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 基本數(shù)據(jù)類型的值直接在棧內(nèi)存中儲存淹朋,值與值之間是獨立存在笙各,修改一個變量不會影響其他的變量。
? ? ? ? ? ? ? ? ? ? ? 對象是保存到堆內(nèi)存中的瑞你,每創(chuàng)建一個新的對象酪惭,就會在堆內(nèi)存中開辟出一個新的空間,而變量保存的是對象的內(nèi)存地址(地址的引用)者甲,如果兩個變量保存的是同一個對象引用春感,當(dāng)一個通過一個變量修改屬性時,另一個也會受到影響虏缸。
? ? ? ? ? ? ? ? ? 創(chuàng)建對象:? 使用對象字面量鲫懒,可以創(chuàng)建對象時,直接指定對象中的屬性刽辙。? ? ? 語法:{屬性名:屬性值窥岩,屬性名:屬性值......}。
? ? ? ? ? ? ? ? ? ? 對象字面量的屬性名可以加引號也可以不加宰缤,建議不加颂翼,如果要使用一些特殊的名字,則必須加引號慨灭。
? ? ? ? ? ? ? ? ? 屬性名和屬性值是一組一組的名值對結(jié)構(gòu)朦乏,名和值之間使用:鏈接,多個名值之間使用“氧骤,”隔開呻疹,如果一個屬性之后沒有其它的屬性了,就不要寫了筹陵。
? ? ? ? ? ? ? ? ? 使用函數(shù)表達式來創(chuàng)建一個函數(shù):
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? var? 函數(shù)名 = function([ 形參1刽锤,形參2...形參N]){
? ? ? ? ? ? ? ? 語句.......
}
? ? ? ? ? ? ? ? ? 使用函數(shù)聲明來創(chuàng)建一個函數(shù):
? ? ? ? ? ? ? ? ? ? ? ? ? 語法:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? function? 函數(shù)名 ([形參1,形參2....形參N]){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 語句......
}