js 權威指南學習筆記7

2021-09-07 08:40:16 字數 1346 閱讀 2828

第七章 陣列

1、陣列直接量的語法允許有可選的結尾的逗號,所以[ , , ]只有兩個元素而非三個。

2、呼叫建構函式array()建立陣列時,傳入乙個引數時表示指定陣列的長度。

3、所有的索引都是屬性名,但只有在0~2^32-2之間的整數屬性名才是索引。所有的陣列都是物件,可以為其建立任意名字的屬性。但如果使用的屬性是陣列的索引,陣列的特殊行為就是將根據需要更新它們的length屬性值。

4、名字不是非負整數時,只能當作常規的物件屬性,而非陣列的索引。

5、稀疏陣列就是包含從0開始的不連續索引的陣列。可以用array()建構函式或簡單地指定陣列的索引值大於當前的陣列長度來建立稀疏陣列。

6、當省略陣列直接量中的值時,這時所得到的陣列也是稀疏陣列,省略掉的值是不存在的。

7、設定length屬性為乙個小於當前長度的非負整數n時,當前陣列中那些索引大於或等於n的元素將從中刪除。

8、delete操作並不影響陣列長度,如果從陣列中刪除乙個元素,它就變成稀疏陣列。

9、迴圈中陣列的長度應該只查詢一次而非每次迴圈都要查詢。

10、slice()方法中如果引數出現負數,它表示相對於陣列中最後乙個元素的位置。slice()不會修改呼叫的陣列。

11、splice()會修改呼叫的陣列。

12、當使用多個引數呼叫unshift()時它的引數是一次性插入的,而非乙個個地插入。這意味著最終陣列中插入的元素的順序和它們在引數列表中的順序一致。

13、傳遞給map()的函式的呼叫方式和傳遞給foreach()的函式的呼叫方式一樣。但傳遞給map()的函式應該有返回值。它返回的是新陣列,不修改呼叫的陣列。

14、filter()會跳過稀疏陣列中缺少的元素,它的返回陣列總是稠密的。將稀疏陣列變為稠密陣列:var dense=sparse.filter(function());

15、every()方法:當且僅當陣列中的所有元素呼叫判定函式都返回true時,它才返回true。some()方法:當陣列中至少有乙個元素呼叫判定函式返回true,它就返回true。

16、根據數學上的慣例,在空陣列上呼叫時,every()返回true,some()返回false。

17、判定乙個物件是否是陣列:使用array.isarray()函式或者物件的tostring()方法。

18、把擁有乙個數值length屬性和對應非負整數屬性的物件看作一種型別的陣列,叫做類陣列物件。比如arguments物件和一些dom方法返回的物件。

19、通過array.prototype.slice.call(a,0)將類陣列物件a轉換為真正的陣列。

20、字串是不可變值,故當把他們作為陣列看待時,它們是唯讀的,如push()/sort()/reverse()/splice()等陣列方法會修改陣列,他們在字串上是無效的。

js 權威指南學習筆記2

第三章 型別 值和變數 1 js的資料型別分為兩類 原始型別 基本資料型別 不可變型別 和物件型別 引用資料型別 可變型別 js中的原始型別包括數字 字串 布林值,還有兩個特殊的 null和undefined。物件是屬性的集合。陣列 函式是特殊的物件。如果函式用來初始化 使用new運算子 乙個新建的...

js 權威指南學習筆記3

第四章 表示式和運算子 1 最簡單的表示式是原始表示式,是表示式的最小單位 它們不再包含其他表示式。js中原始表示式包含常量或直接量 關鍵字和變數。2 乙個物件的屬性名不是固定值時,必須使用方括號寫法來訪問屬性。3 任何乙個呼叫表示式都包含一對圓括號和左圓括號之前的表示式,如果這個表示式是乙個屬性訪...

js 權威指南學習筆記4

第五章 語句 1 在js中沒有塊級作用域,在語句塊中宣告的變數並不是語句塊私有的。2 儘管函式宣告語句和函式定義表示式具有相同的函式名,但二者仍然不同。兩種方式都建立了新的函式物件,但函式宣告語句中的函式名是乙個變數名,變數指向函式物件,和通過var宣告變數一樣,函式定義語句中的函式被顯式地提前到了...