Js里面具有對(duì)象的概念,但是沒(méi)有類的概念仑性。原型對(duì)象溅蛉。
面向?qū)ο螅簅op
class 人類 {}
張三= new 人類()
1.對(duì)象的概念:
Js一切皆對(duì)象嫡意。number馏艾,string劳曹,DOM奴愉,BOM,array全部都是對(duì)象.
字面量:一看就知道是啥铁孵。
2.申明方式
第一種:{} ;空的對(duì)象
第二種锭硼;new Object ( )
- 對(duì)象的鍵
對(duì)象具有內(nèi)容時(shí)由鍵值對(duì)組成。前面的名字就是對(duì)象的值蜕劝,后面值就是對(duì)象鍵的值檀头。
鍵值對(duì)是成對(duì)出現(xiàn)的,不能單獨(dú)存在熙宇。
對(duì)象的鍵都是字符串鳖擒,所以前面鍵名在定義的時(shí)候不需要添加引號(hào),而對(duì)象的值可 以是任何數(shù)據(jù)類型烫止,所以對(duì)象的值如果是字符串,那么需要添加引號(hào)戳稽。 - 對(duì)象的鍵的字符串特性
如果鍵是數(shù)字格式的馆蠕,那么先轉(zhuǎn)化成標(biāo)準(zhǔn)數(shù)字,在轉(zhuǎn)化為字符串惊奇。 - 特殊的鍵名
以數(shù)字開(kāi)頭的互躬,但是里面包含有字母的鍵名就是特殊的鍵名。
不符合標(biāo)識(shí)符命名規(guī)范的鍵名就是不標(biāo)準(zhǔn)鍵名颂郎。
具有特殊簡(jiǎn)明的需要給鍵名添加引號(hào)吼渡。而且訪問(wèn)的時(shí)候只能使用中括號(hào)的形式訪問(wèn)。 - 屬性與方法的概念
對(duì)象中鍵就叫做對(duì)象的屬性乓序。鍵的值叫做屬性值寺酪。
如果一個(gè)對(duì)象的屬性的值是一個(gè)函數(shù)。那么我們稱這樣的屬性叫做方法替劈。
屬性值是函數(shù)的叫做對(duì)象方法寄雀。
屬性值不是函數(shù)的叫做對(duì)象屬性。 - 對(duì)象的動(dòng)態(tài)屬性陨献。
一個(gè)對(duì)象在申明的時(shí)候盒犹,不一定會(huì)申明所有的屬性,有些屬性是可以后來(lái)添加的眨业, 這種能夠給對(duì)象添加屬性的方法叫做對(duì)象的動(dòng)態(tài)屬性急膀。
var p1{
name:”zhangsan”,
age:18,
};
var p2 {};
p2.name=”lisi”,
p2,age=”19”;
- 對(duì)象的格式
對(duì)象的字面量就是一對(duì)大括號(hào)。
里面是成對(duì)的鍵值對(duì)龄捡,也就是屬性卓嫂。
每一個(gè)鍵值對(duì)之間使用一個(gè)逗號(hào)隔開(kāi)。最后一個(gè)可以不加逗號(hào)墅茉。
9.表達(dá)式命黔?還是對(duì)象呜呐?
{
foo:”bar”
}
在JS V8 引擎規(guī)定,這樣的語(yǔ)法統(tǒng)一認(rèn)為是一個(gè)對(duì)象悍募。
10.對(duì)象的引用
對(duì)象的傳遞和普通數(shù)據(jù)類型的傳遞是不一樣的蘑辑。
值傳遞與地址傳遞。
簡(jiǎn)單數(shù)據(jù)類型的傳遞使用的是值傳遞坠宴。
對(duì)象數(shù)據(jù)類型的傳遞使用的是地址傳遞洋魂。
對(duì)象的別名一旦數(shù)據(jù)類型發(fā)生變法,那么與原來(lái)對(duì)象之間地址引用就發(fā)生了改變喜鼓。
11.對(duì)象的屬性
屬性的獲雀笨场:兩種方式 - 對(duì)象名 . 屬性名
- 對(duì)象名[‘屬性名’]
所有使用點(diǎn)操作的方式都是可以替換成中括號(hào)形式的。
特殊情況:
如果屬性名是數(shù)字庄岖,那么只能使用中括號(hào)方式豁翎。
如果屬性是一個(gè)變量的情況也只能使用中括號(hào),只是不加引號(hào)隅忿。
屬性的賦值: - 對(duì)象 . 屬性名 = 值心剥;
- 對(duì)象[‘屬性名’] = 值;
oDiv.innerHTML
對(duì)象的屬性可以使用delete刪除背桐。
刪除成功返回true优烧。刪除不存在的屬性也是返回true,所以不能使用delete的返回 值判斷一個(gè)屬性是否被刪除链峭。
12.對(duì)象的遍歷
in 操作符:可以判斷某一個(gè)對(duì)象是否具有某個(gè)屬性畦娄。
for …... in :遍歷對(duì)象
while 不能循環(huán)對(duì)象。
13.with
但是不推薦使用弊仪。推薦使用臨時(shí)變量代替一長(zhǎng)串對(duì)象操作熙卡。
14.嚴(yán)格模式
使用:”use strict”
- 腳本開(kāi)始的位置(不利于js文件的合并)
- 函數(shù)開(kāi)始的位置
- 腳本改良版,使用立即函數(shù)包含撼短。
產(chǎn)生的影響: - 禁用with語(yǔ)法
- 變量必須申明
- eval的作用域再膳,并且eval與arguments作為關(guān)鍵字
- 全局函數(shù)this指向undefined
- 對(duì)象字面量重復(fù)屬性名報(bào)錯(cuò)
- 禁止使用八進(jìn)制
15.代碼規(guī)范
縮進(jìn):一個(gè)tab或者四個(gè)空格。
區(qū)塊括號(hào):
If(){
}
圓括號(hào):函數(shù)調(diào)用曲横,函數(shù)申明沒(méi)有空格 func()
分號(hào):每一句代碼結(jié)束的時(shí)候要加上分號(hào)喂柒。
function say(){
}
var say = function(){
};
(function(){
})();
全局變量:一般要避免使用全局變量,因?yàn)闀?huì)產(chǎn)生污染禾嫉≡纸埽可以使用立即函數(shù)避免全 局變量。避免不了使用全局變量熙参,那么請(qǐng)使用大寫艳吠。var USER_NAME
盡量使用嚴(yán)格相等
不用不申明變量直接使用。