一、 數組
定義一個數組,兩種方式 要不用 var arr1 = new Array(); 或者用 var arr2 = []; 顯然第二次定義數組方便。
定義數組並初始化, 可以直接用 var arr3 = ["abc" , "bcd" , 18 , 12.98 , true] ; // 注意 數組中可以存放任意類型資料,不一定非得是同一類型資料。
擷取數組長度 用 資料名.length。 數組中,還可以直接 arr3[6] = "bdsaf" ; 這樣arr3 數組會自動擴容,變成7個元素數組了。注意arrs[5]會是一個undefine的常量。
遍曆數組:
for(var i=0; i< arrs.length; i++){
document.write("arrs["+i+"]="+ arrs[i] +" <br />");
}
二、函數
函數與數組一樣,都是當成對象來看待著(如上面arrs3看類型,可以用 alert(typeof(arr3)); )。函數定義有格式為:
function 函數名(函數參數列表){
函數體
}
調用函數是,可以直接用 函數名(實參列表); 如
[javascript]
function add(x,y){ www.2cto.com
return x + y
}
調用add(3,4); 注意若寫在 add(3,5,6)也可以調用上面的函數,返回結構是8,那傳3個參數過去後,在函數體中會不會丟失參數呢。 其實不會,因為函數體中有個內建的arguments數組,這個數組會記錄所以傳入進來的參數。 只要遍曆這個數組,一樣也可以拿到第三個參數6。
上面說到函數也是對象,那麼函數名其它是此對象引用的一個地址值。也就是你可以進行如下操作。
var ss = add; // 這個動作 會把 add函數的地址值,賦值給ss變數了,那麼若alert(ss),會調用ss引用變數的toString方法,即add的toString會把函數簽名體都列印出來。
而且可以這樣的調用 ss(3,9) 也會返回12.
2.2 動態函數
[javascript]
var add = new Function("x,y","var sum; sum=x+y; return sum;");
var he = add(4,8);
2.3 匿名函數
常用如視窗的onload,或unonload等事件上,當然也可這樣用:
[javascript]
var add3 = function (a,b){
return a+b;
}
alert(add3(7,8));
三、變數的作用範圍 範圍
. 一般只要在script中定義的變數都是全域變數,當然函數體中定義的變數,與函數的形參變數除外,他們是局部變數。
如
[javascript]
for(var i=0; i< arrs.length; i++){
document.write("arrs["+i+"]="+ arrs[i] +" <br />");
}
//可以在迴圈外,使用迴圈中聲明的變數i
document.write("i="+i);
四、String對象
定義 可以直接var str = "abc" ; 當然也可以笨笨的使用 var str = new String("abc");
String的長度,可以直接使用length屬性的,與java區別開來,不是方法哦。 alert(str.length);
常用的幾個方法 str.bold(); 會在str字元前後加個 b 加粗的標籤, str.fontcolor("red"),可以指定str字串文本的顏色呢。 str.link(http://ww...) 可以連結到...呢。
如:自訂一個去string空格的函數
[javascript] view plaincopy
/*
* 發現js中的string對象方法有限,想要對字串操作的其他功能。
* 比如:去除字串兩端的空格。這時只能自訂。
*/
//去除字串兩端的空格。
function trim(str){
//定義兩個變數,一個記錄開始的位置。一個記錄結束的位置。
//對開始的位置 的字元進行判斷,如果是空格,就進行遞增,直到不是空格為止。
//對結束的位置 的字元進行判斷,如果是空格,就進行遞減,直到不是空格為止。
//必須要保證開始<=結束,這樣才可以進行截取。
var start,end;
start=0;
end=str.length-1;
while(start<=end && str.charAt(start)==' '){
start++;
}
while(start<=end && str.charAt(end)==" "){
end--;
}
return str.substring(start,end+1);
}
五、prototype屬性 原型屬性
原型:就是該對象的一個描述。該描述中如果添加了新功能。那麼該對象都會具備這些新功能。而prototype就可以擷取到這個原型對象。通過prototype就可以對對象的功能進行擴充。
如:需求給String對象 增強一個功能,可以去除掉空格,那麼可以使用原型來搞定了。 具體代碼如下 :
[javascript]
String.prototype.trim = trim; //搞定。當然若沒有已經定義好的trim時,要自己弄了。
//如String.prototype.trim = function (xx){...}
定義了這個原型,接著就可能直接使用trim功能了。如:
[javascript]
alert("-"+" ab cd ".trim()+"-");
六、數組基本操作
[javascript]
/*
* 示範數組。
*/
var arr = ["nba","haha","cba","aaa","abc"];
var arr2 = ["qq","xiaoqiang",70];
//在arr數組上串連一個元素"mm",再串連一個arr2數組。
var newArr = arr.concat("mm",arr2);//將mm作為新數組中的元素,將arr2數組中的元素也作為新數組中的元素。
println(arr.join("-")); //join方法,預設是,串連數組的,可以使用- 來替代,的呢。
//移除數組中的元素,並返回該元素。pop
println(arr);
println(arr.pop());//刪除並返回最後一個元素。
println(arr);
println(arr.reverse());
println(arr.shift());//刪除並返回第一個元素。
println(arr);
var temp = arr.splice(1,3,8080,9527,"xixixi","wangcai");//刪除元素並可以進行元素的替換。
println(arr.unshift("abcd3")); //將abcd3加放在數組的首位中。
fucntion println(obj){
document.write(obj+"<br />")
}
八、數組的原型, 與String的原型是同一個道理的,可以對Array對象方法增強,弄出多個方法來。 如
Array.prototype.getMax = function() {
var tempIndex = 0;
for(var i=1;i<this.length;i++){
if( this[tempIndex]<this[i]){
tempIndex = i;
}
}
return this[tempIndex] ;
}
var arr1 = [23,434,65,11,0] ; var maxE = arr1.getMax(); //搞定。
九. Math對象
重點記住 floor方法、ceil方法、pow方法,其實這三個方法很多語言中都有了, floor是地板低端了點了, 所以像 Math.floor(12.34) 會得到12。而
ceil是屋頂 天花板,比較高端哦, 所以 Math.ceil(12.34) 會得到13呢。 而 Math.pow(10,2) 返回100。 注意Math中的所有方法都是靜態呢。
十、全域Globe對象方法。 其實不存在對象了,方法可以直接寫了不用在前面加對象名: 如 parseInt方法和isNaN方法:
[javascript]
parseInt("123");
/*
* 示範global的全域方法。
*/
println(parseInt("123")+1);
var val = parseInt("12abc");//val = 12;
println("value="+isNaN(val));//通過isNaN來判斷結果是否非法。
/*
* 將指定進位格式的字串轉成十進位。
*/
var num = parseInt("110",2);
println("num="+num);
var num1 = parseInt('0x3c',16);
println("num1="+num1);
//將十進位轉成其他進位。使用數字對象完成。
var num3 = new Number(6);
println("num3="+num3.toString(2));
var num4 = 60;
println("num4="+num4.toString(16));
十一、JS 新出來的文法 for in 結構 顯示一個:
[javascript]
var arr = [32,80,65];
for(i in arr){ //若 arr是數組的話,那麼i 代表的就是數組中的角標,而不是元素
println("i="+arr[i]);
}
//注意若第二個參數arr位置放百是對象集合,則i就集合中的元素了。
.