引用型別 物件和陣列

2021-09-02 20:12:01 字數 3155 閱讀 1968

1. 建立物件:物件(引用型別的值,是引用型別的乙個例項)

建立object例項。

方法一:使用new操作符後跟object建構函式。

var person = new object();

person.name = "nicholas";

person.age = 29;

方法二:使用物件字面量表示法-----不會呼叫object建構函式

var person = ---作用於new object()類似,只包含預設屬性和方法

2. 訪問物件的屬性

① 點表示法:person.name

② 方括號表示法:person["name"]----優勢是(1) 可以使用變數訪問屬性,(2) 屬性名包含會導致語法錯誤的字元或者屬性名使用的是關鍵字或保留字如:

(1) var propertyname = "name";

alert(propertyname);

(2)person["first name"] = "nicholas";

3. 建立陣列:array型別-----陣列的每一項都可以儲存任何型別的資料。

方法一:使用array建構函式

var colors = new array();

var colors = new array(10); //建立的陣列的大小為10,但陣列的大小不是固定的,尅動態改變

var colors = new array("red", "blue", "green");  //建立了包含三個字串值的陣列

注意:給建構函式傳遞乙個值時,有兩種意思

var colors = new array(3); //建立乙個包含三項的陣列

var colors = new array("greg");  //建立乙個包含一項,值為greg的陣列

方法二:使用陣列字面量表示法

var colors = ["red", "blue", "green"];   //包含3個字串的陣列

var colors = ;  //乙個空陣列

3. 動態的增加陣列的長度

var colors = ["red"];

arr.length = 2;  // colors[0] = "red"   colors[1] = undefined

colors[2] = "blue";  //colors[0] = "red"  colors[1] = undefined  colors[2] = "blue"

4. 檢測某個值是不是陣列: array.isarray(value)

5. 陣列的轉換方法:tostring()   valueof()  tolocalestring() ------所有的物件都有這三個方法

① tostring() 方法,會呼叫陣列的每一項的tostring() 方法

② valueof() 方法,返回的是陣列本身

③ tolocalestring() 方法,會呼叫陣列每一項的tolocalestring() 方法

如:(1)   var colors = ["red", "blue", "green"];

colors.tostring(); // red,blue,green

colors.valueof(); //red,blue,green

alert(colors);  //red,blue,green   -----這裡是因為alert() 函式要接收字串引數,所以在後台會呼叫tostring()方法

(2)     var person1 = ;

var people = ;

var morepeople = [person];

people.indexof(person); //-1 沒有找到相關的項的值,就返回-1

morepeople.indexof(person);  //0

10. 陣列的迭代方法(遍歷陣列):every()   some()   filter()   map()   foreach()----都包含兩個引數,第二個是可選的,第乙個是指定的在每一項上執行的函式。而該函式有三個引數---陣列項的值,該項在陣列中的位置,陣列物件本身。

① every()---返回值為true或false。對陣列的每一項執行給定函式,如果每一項都返回true,則該函式就返回true,否則,返回false。

var numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];

var everyresult = numbers.every(function(item, index, array)); // everyresult的結果是false

② some()---與every()類似,但只要陣列有一項滿足指定函式,就返回true。

var numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];

var someresult = numbers.every(function(item, index, array)); // someresult的結果是true

③ filter():對陣列的每一項執行給定函式,返回值為陣列(陣列的項數為函式返回true的項)

var numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];

var filterresult = numbers.filter(function(item, index, array)); //filterresult的結果為陣列:3 4 5 4 3

④ map():對陣列的每一項執行給定函式,返回值為陣列(陣列的項數為原陣列每一項執行函式後的值)

var numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];

var mapresult = numbers.map(function(item, index, array)); //mapresult的結果為陣列:2 4 6 8 10 8 6 4 2

⑤ foreach():類似於for迴圈迭代陣列。沒有返回值。

var numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];

numbers.foreach(function(item, index, array)); // sum = 15。這裡pre為陣列的第乙個值,cur位陣列的第二個值

② reduceright():從陣列的最後一項開始,逐個遍歷到第一項。

陣列型別和陣列指標

1.指標作為形參,編輯器會分配4個位元組。2.陣列元素首位址 陣列名 和陣列首位址並不一樣,值相等,步長不一樣。3.陣列名是個常量指標,不能用來指向其他地方。4.陣列的型別 由陣列大小和元素型別決定。eg int 5 char 9 陣列型別定義陣列 eg typedef int xx 5 定義時xx...

引用型別陣列

什麼叫引用型別陣列?基本型別陣列的元素中放的都是基本資料型別 int等 引用型別陣列的元素中放的是從基本型別構造而來的類和其他複雜資料型別的位址。第一句話 stus是引用型別陣列的變數 簡稱引用 存在棧記憶體,裡面放的是物件實體的位址,new student 3 在堆記憶體建立了乙個student陣...

6 陣列型別和陣列指標型別

定義乙個陣列型別 typedef int myarraytype 5 使用這個陣列型別 void main for i 0 i 5 i int a 5 myarraytype parray null 定義乙個陣列型別的指標 parray a system pause 定義乙個陣列指標型別 typed...