學習筆記 五 引用型別

2021-09-29 07:50:01 字數 2552 閱讀 5062

引用型別的值(物件)是引用型別的乙個例項。ecmascript提供了很多原生的引用型別(例如object),以便開發人員用以實現常見的計算任務。

1.object型別

1)建立object例項的兩種方法:new object()和物件字面量表示法。一般常用物件字面量標識法:一是因為**量少,二是物件字面量可以在函式傳參時封裝可選引數。

2)訪問物件屬性的兩種方法:點表示法和方括號方法。一般用點表示法,方括號方法只有在變數訪問屬性、屬性名中包含特殊字元時使用。

2.array型別

1)建立array例項的兩種方式:使用array建構函式和資料物件字面量。

ecmascript陣列的每一項都可以儲存任何型別的資料。同陣列的大小是動態可變的,即隨著資料的新增自動增長。可以通過修改陣列的length屬性,動態增加或者減小陣列的長度。

2)檢測陣列:instanceof、array.isarray()(es5中新增)

3)轉換方法:tolocalestring()、tostring()、valueof()方法

4)陣列棧方法:push()、pop()

5)陣列佇列方法:shift()、push()、unshift()

6)陣列重新排序方法:reverse()、sort(),有時候通過將比較函式傳參給sort()方法實現按數值排序(因為sort()函式預設是按字串比較排序的,絕大多數的時候需要按數值比較排序)。

7)陣列常用操作方法:concat()、slice()、indexof()、lastindexof()

8)陣列迭代方法:every()、filter()、foreach()、map()、some()

9)陣列歸併方法:reduce()、reduceright()

3.date型別

1)初始化:date.parse()和date.utc(),不過new date() 函式會模仿這兩個函式的初始化過程,直接生成日期。

4.regexp 型別

1)正規表示式的構造有兩種形式:字面量形式和建構函式形式,兩種形式引數略有區別,建構函式形式需要雙重轉移,同時字面量形式始終會共享同乙個regexp例項,而建構函式形式建立的每個都是乙個新例項。es5中規定每次建立都應建立regexp新例項。

2)例項屬性:global、ignorecase、lastindex、multiline、source

3)例項方法:exec()、test()

4)建構函式屬性:input、lastmatch、lastparen、leftcontext、multiline、rightcontext

5.function 型別(函式是物件,函式名是指標)

1)沒有過載

2)函式宣告和函式表示式的區別:解析器在向執行環境中載入資料之前,對函式宣告和函式表示式並非一視同仁。解析器會通過乙個名為函式宣告提公升的過程率先讀取函式宣告,並使其在執行任何**之前可用;至於函式表示式,則必須等到解析器執行到它所在的**行,才會真正被解析器執行。

3)函式可以做引數,可以做函式返回值。

4)函式內部屬性:

callee:函式arguments物件的乙個屬性,該屬性是乙個指標,指向擁有這個arguments物件的函式。(在函式內部可以代替函式名呼叫函式,消除函式使用的耦合性)

caller:函式物件的屬性caller,儲存著呼叫當前函式的函式的引用。

·但是在嚴格模式下arguments.callee會導致錯誤。

5)函式屬性和方法:

length:函式接受的引數個數

bind:建立乙個函式例項,其this值會被繫結到bind函式的引數值

tolocalestring和tostring:返回函式**,可以在除錯**時使用。

6.基本包裝型別

es為基本型別boolean、number、string 建立了相應的基本包裝型別,從而是這幾個基本型別可以使用一下操作方法操作這些資料。基本包裝型別是特殊的引用型別,但是其生存週期近存在於**的執行瞬間,由後台自動建立完成相應的處理,一般不會手動使用。

1)boolean基本包裝型別:建議永遠不要手動使用

2)number基本包裝型別:tofixed()、toexponential()、toprecision()

3)string基本包裝型別:  length、charat()、charcodeat()、concat()、slice()、substring()、substr()、indexof()、lastindexof()、trim()、tolowercase()、touppercase()、replace()、split()。

7.單體內建物件

定義:由es實現提供的,不依賴於宿主環境的物件,這些物件在es程式執行之前就已經存在了。object、array、string、global、math

1)global物件

所有全域性作用域中定義的屬性和函式,都是global物件的屬性。

encodeuri()、encodeuricomponent()、decodeuri()、decodeuricomponent()、eval()

web瀏覽器將這個global全域性物件作為window物件的一部分實現的。

2)math物件

min()、max()、ceil()、floor()、round() 

學習筆記 五 引用型別

引用型別的值 物件 是引用型別的乙個例項。ecmascript提供了很多原生的引用型別 例如object 以便開發人員用以實現常見的計算任務。1.object型別 1 建立object例項的兩種方法 new object 和物件字面量表示法。一般常用物件字面量標識法 一是因為 量少,二是物件字面量可...

c 學習筆記五 引用( )詳解

作用 給變數起別名 語法 資料型別 別名 原名 可以看到,修改b的值,a的值也會改變。作用 函式傳參時,可以利用引用讓形參修飾實參 優點 可以簡化指標修改實參 include using namespace std 1.值傳遞 void myswap01 int a,int b 2.位址傳遞 voi...

5 0 引用型別

ecmascript中有5中簡單資料型別 也叫基本資料型別 undefined boolean null number string。還有一種複雜資料型別 object object本質上是一組無序的明值対組成的 1 應用型別的值 物件 是引用型別的乙個例項。2 在es種,引用型別是一種資料結構,用...