javascript js 入門 二

來源:互聯網
上載者:User

 一、 數組
定義一個數組,兩種方式 要不用 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就集合中的元素了。 
 
.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.