陣列的理解和拓展

2021-10-25 01:24:34 字數 3152 閱讀 1838

1、什麼是陣列

陣列就是一組資料的集合

其表現形式就是記憶體中的一段連續的記憶體位址

陣列名稱其實就是連續記憶體位址的首位址

2、關於js中的陣列特點

陣列定義時無需指定資料型別

陣列定義時可以無需指定陣列長度

陣列可以儲存任何資料型別的資料(比如說乙個元素儲存整型,乙個元素儲存字串型,這個在js中是可以的)

建立陣列的語法:

var arr=[值1,值2,值3]; //隱式建立

var arr=new array(值1,值2,值3); //直接例項化

var array=new array(size); //建立陣列並指定長度

js中符號含義:

()表示函式執行

表示語法模擬,表示模擬array類的例項(=new array())

{}表示語法模擬,表示模擬object類的例項(=new object())

//表示語法模擬(正則物件),表示模擬regexp類的例項(=new regexp())

//方法一

var arr1 = [1,3,5,7,9];

document.write(arr1[2] + 『

』);//方法二

var arr2 = new array(2,4,6,8,10);

document.write(arr2[3] + 『

』);//方法三

var arr3 = new array(3);//固定陣列長度為3

arr3[0] = 1;

arr3[1] = 2;

arr3[2] = 3;

document.write(arr3[2] + 『

』);3、關於陣列長度

陣列物件.length

在js中,每乙個陣列物件都可以呼叫length屬性,它表示陣列物件下共有幾個陣列元素

示例:var row = [『zhangsan』,『lisi』,『wangwu』];

document.write(『共有』+row.length+『個人

』);var length = row.length;//對陣列進行遍歷

for (var i=0;i在js中,陣列不是資料型別,陣列的資料型別其實就是物件

js中的for…in語句可以實現對乙個物件的所有屬性的遍歷

也可以使用for…in語句實現對乙個陣列的所有元素的遍歷

語法:for( var i in array )

1、概念

函式就是封裝了一段可以被重複執行呼叫的**塊。目的是讓大量**重複使用。

2、函式使用

2.1、宣告函式

命名函式

// 函式構造格式

function 函式名()

// (1)function 宣告函式的關鍵字 全部小寫

// (2)函式是做某件事,函式名一般是動詞

// (3)函式不呼叫 自己不執行

匿名函式

var 變數名 = function(){}

2.2、函式呼叫

// 宣告函式

function sayhi()

// 呼叫函式:函式名()

sayhi()

3、函式的封裝

函式的封裝是把乙個或者多個功能通過函式的方式封裝起來,對外只提供乙個簡單的函式介面

4、函式的引數

引數的作用:在函式內部某些值不能固定,可以通過引數在呼叫函式時傳遞不同的值進去

形參:宣告函式的小括號裡

實參:呼叫函式的小括號裡

// 宣告函式

function 函式名(形參1,形參2…)

// 呼叫函式

函式名(實參1,實參2…)

形參和實參不匹配問題

function getsum(a,b)

// 如果實參個數和形參個數一致

getsum(1,2) // 3 正常輸出結果

// 如果實參個數多於形參個數

getsum(1,2,3) // 3 會取形參的個數

// 如果實參個數小於形參的個數

getsum(1) // nan 多餘的形參定義為undefined。任意數字+undefined都不是乙個數字

5、函式的返回值

5.1、return

function 函式名()

終止函式,return 後的**不被執行

return只能返回乙個值。如果返回多個值,以最後乙個值為準

如果想返回多個值。可以利用陣列存放值,返回陣列

如果函式,有return返回return後的值;如果沒有return則返回undefined

return可以退出迴圈,返回語句中的值,同時可以結束當前函式體內的**

6、arguments

當我們不確定有多少個引數傳遞的時候,可以用arguments來獲取

在js中,arguments實際上它是當前函式的乙個內建物件。

所有函式都內建了乙個arguments物件,arguments物件中儲存了傳遞的所有實參。

arguments展示形式是乙個偽陣列,因此可以遍歷。

偽陣列具有以下特點:

具有length屬性

按索引方式儲存資料

不具有陣列的push,pop等方法

function fn()

fn(1,2,3)

通常來說,一段程式**中所用到的名字並不總是有效和可用的,而限定這個名字的可用性的**範圍就是這個名字的作用域。

作用:提高了程式邏輯的區域性性

增強了程式的可靠性

減少了名字衝突

1、js作用域(es6之前)

全域性作用域

整個script標籤

單獨乙個js檔案

區域性作用域

函式內部

2、變數的作用域

全域性變數

全域性作用域下的變數,全域性下都可以使用

注:函式內部沒有宣告,直接賦值的變數也是全域性變數

區域性變數

區域性作用域下的變數,只能在函式內部使用

注:函式的形參也可看做區域性變數

區別從執行效率看

全域性變數只有瀏覽器關閉的時候才會銷毀,比較佔記憶體資源

區域性變數當程式執行完畢就會銷毀

3、塊級作用域

if{} for{}的花括號中定義的變數外部可以使用

當前js沒有塊級作用域的概念

es6新增塊級作用域概念

長度拓展攻擊 (理解)

長度擴充套件攻擊 是當乙個攻擊者通過新增乙個字尾來修 改乙個訊息,但仍然能夠指出訊息的hash值,這裡有兩種型別 的長度擴充套件攻擊。符號 表示鏈結。型別一 如果digest msg1 digest msg2 並且len msg1 len msg2 消 息 msg1 msg2,則 digest ms...

陣列方法拓展

用於資料視覺化 遍歷作用 加強版本的for迴圈 針對於陣列 各個引數意義 list.foreach function ele,index,self document.getelementsbytagname li 引數 ele 陣列每一項 index 序列號 self 陣列本身 this 沒有第二個...

IIC匯流排理解與拓展

iic匯流排的基礎理解與拓展 常用序列匯流排 uart,1 wire,iic,spi uart 一條資料輸入線,一條資料輸出線,非同步序列通訊 iic 一條時鐘線,一條資料線,同步 外同步 序列通訊,spi 一條時鐘線,一條資料輸入線,一條資料輸出線 同步 外同步 序列通訊 1 wire 單線匯流排...