概念: 就是將若干個數據以一定的順序放在一起的一個集合體,整體上就稱之為“數組”。數組就是一列數據的有序排列的集合。
定義形式:
var arr1 = new Array(1, 5, 8, 7, 2, 10); //定義了一個數組,其中具有6個數據 var arr2 = new Array(); //只是單純地定義了一個數組(名),但沒有給值(數據),即現在是空的 var arr3 = [1, 5, 8, 7, 2, 10]; //同arr1,只是一種簡寫的定義法。 var arr4 = [ ]; //同arr2,也是一個空數組。
數組的使用:所謂使用其實是指對數組的每一項的使用。
取值:
var v1 = arr1[0]; //取得數組arr1中的第一項,0叫做下標 var v2 = arr3[3] + 10; //取得數組arr3中的第4項,4叫做下標 ——所謂下標,其實就是數組的每一個數據的“順序號”——從0開始編號,是連續的整數。
賦值:
arr1[0] = 10; //給數組arr1的第一項賦值為10,此時其實也就是相當於修改了其值,也可以說類似給一個變量重新賦值。
arr2[0] = 22; arr2[1] = 33.3; arr2[2] = “444”; arr2[3] = “abc”; arr2[4] = true;
//此時arr2這個數組相當於這樣: [ 22, 33.3, “444”, “abc”, true ]
數組的“視覺形象”(以arr3為例):
下標值: 0 1 2 3 4 5 數據值: 1 5 8 7 2 10
取得一個數組的長度——就是其中的數據的個數的語法為:
var v1 = 數組名.length;
特別注意:數組的最大下標是數組的長度減1。
數組遍歷的通常模式:
var len = 數組名.length;
for(var i = 0; i < len; i++)
{
//這裡就是對數組的每一項的處理,每一項的寫法是: 數組名[i]
}
數組遍歷的另一種形式——for in循環語句。
for( var v1 in 數組名arr1 )
{
//這裡就是循環體,是專門針對數組arr1的遍歷循環,其中v1的值就是表示數組的每一項的下標值。
//v1只是一個“臨時變量”,代表每一項下標,依次會從0變化到數組的最大下標。
}
“二維”數組:
var v1 = [2, 5, 1, 5]; var v2 = [5, 1, 6, 8]; var v3 = [8, 0, 9, 7]; var v4 = [v1, v2, v3]; var v5 = [ [2, 5, 1, 5], [5, 1, 6, 8], [8, 0, 9, 7] ];
——v4和v5其實沒有任何區別,這兩個都可以稱為“二維數組“。
“二維”數組元素的操作:
取值:
var s1 = v5[0][1]; //5 //相當於取到v5這個數組中第一項(這還是一個數組)的第2項。
var s2 = v5[2][3] + 100; //107
賦值:
v5[0][1] = 200;
v5[2][3] = 300;
什麼叫方法:方法其實就是函數!——只是如果一個函數“隸屬於”某個“對象”,則稱這個函數為該對象的方法。
function maibao(){ document.write(“啦啦啦,我是賣報的小行家,賣報啦賣報啦。”); } var myDreamGirl = { name: “小花”, age:18, edu:”大學”, sex:”女”, nengli1: function (){ document.write(“洗衣!”); } , nengli2: function (){ document.write(“做飯!”); } , nengli3: maibao }; var v1 = [2, 5, 1, 5]; var v2 = [5, 1, 6, 8];
從嚴格的角度來說,數組也是一種對象——甚至字符串也是對象。
v1作為對象,就有屬性和方法:
屬性:
某數組.length: 表示該數組對象的長度
方法:
某數組.concat(其他數組):將兩個數組連接起來成為一個新的“更長”的數組。
var s1 = v1.concat( v2
); //此時s1是這樣一個數組: [2, 5, 1, 5, 5, 1, 6, 8];
某數組.join(“字符串”):將數組中的所有項以指定的字符“串接起來”成為“長的”一個字符串。
var s2 = v1.join(“//”); //結果s2為字符串 “2//5//1//5”
某數組.pop(); //將該數組的最後一項“移除”(刪除),並返回該項數據,即該數組少了一項
var s3 = v1.pop(); //結果v1只剩這個:[2,5,1]; s3的值是5
某數組.push(新數據項d1); //將新的數據d1添加到該數組的最後位置,即數組多了一項。
var s4 = v1.push( 55 ); //v1此時為:[2,5,1, 55], s4的值為新數組的長度,即4
某數組.shift(); //將該數組的第一項“移除”(刪除),並返回該項數據,即該數組少了一項
var s5 = v1.shift(); //結果v1只剩這個:[5, 1,55]; s5的值是2
某數組.unshift(新數據項d1); //將新的數據d1添加到該數組的最前位置,即數組多了一項。
var v6 = v1.unshift( 66 ); //v1此時為:[66, 5, 1, 55], s6的值為新數組的長度,即4
javascript語言是一門基於對象的語言。
var str1 = new String(“abcdefgabc”); //這是一個“字符串對象” var str2 = “abcdefgabc”; //這個字符串跟前面str1幾乎沒有區別 字符串對象的屬性: .length——獲得一個字符串的長度(也就是字符個數) 字符串對象的方法: 1. str1.charAt( n ); ——獲得字符串str1中位置為n的那個字符(字符的位置也是從0開始算起)var s1 = str1.charAt( 3 ); //s1的結果是:”d” 2. str1.toUpperCase(); ——獲取str1全部轉換為大寫的結果 var s2 = str1.toUpperCase(); //s2的結果是:”ABCDEFGABC” 3. str1.toLowerCase(); ——獲取str1全部轉換為小寫的結果 var s3 = str1.toLowerCase(); //s3的結果是:”abcdefgabc” 4. str1.replace(“字符1”, “字符2”); ——將str1中的“字符1”替換為“字符2” var s4 = str1.replace(“cd”, “999”); //s4的結果是:”ab999efgabc” 5. str1.indexOf(“字符1”); ——獲得“字符1”在str1中第一次出現的位置,如果沒有出現,結果是-1 var s5 = str1.indexOf(“ab”); //s5的結果是0 6. str1.lastIndexOf(““字符1”); ——獲得“字符1”在str1中最後一次出現的位置,如果沒有出現,結果是-1 var s6 = str1.lastIndexOf(“ab”); //s6的結果是7 7. str1.substr(n, m ) ——取得str1中從位置n開始的m個字符,m可以省略,則表示從位置n一直取到字符串的最後——注意,這種“取”並不影響str1這個原始字符 var s7 = str1.substr(2, 4); //s7為:”cdef” 8. str1.substring( n, m )——取得str1中從位置n到位置m的前一個字符。 var s8 = str1.substring(2, 4); //s8為:”cd” 9. str1.split(“字符1”) ——將str1以指定的“字符1”為分界,分割成一個數組,結果是一個數組 var s9 = str1.split(“b”); //s9的結果是一個數組:[“a”, “cdefga”, “c”]
Math對象是一個系統內部定義的對象,我們無需去“新建一個Math對象”——跟string對象和array對象不同。即Math對象是直接使用的。
我們學習Math對象,無非是學習一些常見的數學處理函數——這裡當就叫做方法了:
屬性:
Math.PI——代表圓周率這個“常數”
方法:
1. Math.max(數值1,數值2,…..) ——求得若干個數值中的最大值。 2. Math.min(數值1,數值2,…..) ——求得若干個數值中的最小值。 3. Math.abs( 數值1) ——求得數值1的絕對值 4. Math.pow( x,y) ——求得數值x的y次方,也就是“冪運算” 5. Math.sqrt( x ) ——求得x的開方 6. Math.round( x ) ——求得x的四捨五入的結果值; 7. Math.floor( x ) ——求得x的向下取整的結果,即找到不大於x的一個最大的整數。 a) Math.floor( 3.1 ) 3 b) Math.floor( 3.8 ) 3 c) Math.floor( 3 ) 3 d) Math.floor( -3.1 ) -4 e) Math.floor( -3.8 ) -4 8. Math.ceil( x ) ——求得x的向上取整的結果,即找到不小於x的一個最小的整數 a) Math.floor( 3.1 ) 4 b) Math.floor( 3.8 ) 4 c) Math.floor( 3 ) 3 d) Math.floor( -3.1 ) -3 e) Math.floor( -3.8 ) -3 9. Math.random() ——獲得一個0~1范圍中的隨機“小數”,含0,但不含1 //獲得兩個整數(n1,n2)之間的隨機整數的通用做法: var v1 = Math.random() v1 = v1 * (n2-n1+1); v1 = Math.floor( v1 ) + n1; //此時v1就是結果 //將上述3步寫出一步就是(通用公式): var v1 = Math.floor( Math.random() * (n2-n1+1) ) + n1