雕蟲無小技 JavaScript初學者的10個迷你技巧

來源: 51CTO  發布時間: 2010-12-12 20:51  閱讀: 1046 次  推薦: 0   原文鏈接   [收藏]  
摘要:雖然JavaScript有很多的編程方法,但這里只挑選了10個技巧,這些技巧對初學者理解JavaScript來說是很好的的起點。

  在之前的編程語言排行榜中,我們曾介紹過轉正在即的JavaScript語言,正如文章中闡明的那樣,JavaScript不僅是最具活力的腳本語言,還是是最有用的編程語言之一。因為絕大多數的瀏覽器都和它兼容,你可以在這些瀏覽器中使用它。JavaScript被接受的相當快,因為它是如此的簡單,而且使用范圍相當廣泛。許多程序員過去常常認為JavaScript是一門“玩具語言”,但是,AJAX進入市場后表現出了完全相反的一面,它讓JavaScript展現出了完全不同的能力和功能。

  由于這個發明的出現,程序員現在已經可以創建帶有桌面應用程序效果的Web應用程序了,這是很有益處的,因為數據可以更快地改變。這是一些迷你技巧,它們可以幫助初學者更好地使用JavaScript。JavaScript的使用范圍相當廣泛,而且還有這么多的風格,所以它可以有很多的技巧。另外,雖然它很多的編程方法,但是我只挑選了10個技巧,我認為這些技巧對初學者理解JavaScript來說是很好的的起點。

  1,在一個數組的最后添加一個元素

  這個技巧可以讓你使用Length屬性在一個數組的最后添加一個元素,因為Length屬性比數組的最后一個元素的下標多1。這個方法和“push”方法是相同的。例如

 

2. var myArray = [];
3. myArray[myArray.length] = 'New Element';

  2,調整一個數組的長度

  Length屬性不是只讀的,所以你可以設置Length屬性的值。而且,你可以使用它增大或縮小數組的長度。例如:

 
var myArray = [1,2,3];
myArray.length
// 3
myArray.length = 2; //Delete the last element
myArray.length = 20 // add 18 elements to the array;
the elements have the undefined value.

  3,使用“!!”把任意數據類型轉換成Boolean

  這個技術可以讓你使用“!!”把任意數據類型(比如string, number或integer)轉換成Boolean。例如:

 
1. var myString = '23255';
2. typeof myString; //String
3.
4. myString = !!myString;
5. typeof myString //Boolean

  4,把Number轉換成String

  這個技巧可以讓你在number的結尾添加一個空的string來把number轉換成string,例如:

 
1. var mynumber = 234;
2. typeof mynumber; //Number
3.
4. mynumber += '';
5. typeof mynumber; //String

  5,了解一個函數需要多少個變量

  這是一個偉大的技巧,可以讓你準確地知道一個函數需要多少個變量。例如:

 
1. function add_nums(num1, num2){
2. return num1 + num2;
3. }
4. add_nums.length
// 2 is the amount of parameters expected by the function add_nums

  6,使用“arguments”對象來了解一個函數接收到了多少個參數

  這個技術可以讓你使用“arguments”對象來了解一個函數接收到了多少個參數。例如:

 
1. function add_nums(){
2. return arguments.length;
3. }
4.
5. add_nums(23,11,32,56,89,89,89,44,6); //this return the number 9

  當你需要檢查參數個數的有效性的時候,或者當你需要創建一個不確定參數個數的函數的時候,這個技巧是很有用的。

 
function sum_three_nums( ){
if(arguments.length!=3) throw new Error('received '
+ arguments.length + ' parameters and should work with 3');

}

sum_three_nums(
23,43); //Return the error message

function sum_num(){
var total = 0;
for(var i=0;i<arguments .length;i++){
total
+=arguments[i];
}

return total;
}

sum_num(
2,34,45,56,56);

  7,把對象當成參數,來組織和改善函數

  在現代Web開發中,對象最普遍的一個用途是把它們當成函數的參數。要記住函數參數的這個規則總是很困難的;但是,使用一個對象是十分有好處的,因為我們不必再擔心參數的規則了。而且,它更有組織性,可以讓用戶更好的理解我們要做什么。這個方法可以讓你把對象當成參數,來組織和改善函數。例如:

 
1. function insertData(name,lastName,phone,address){
2. code here;
3. }

  重構以后的代碼是這樣的:

 
1. function insertData(parameters){
2. var name = parameters.name;
3. var lastName = parameters.lastName;
4. var phone = parameters.phone;
5. var address = parameters.address;
6. }

  當你要使用默認值的時候,它也是十分有用的。例如:

 
1. function insertData(parameters){
2. var name = parameters.name;
3. var lastName = parameters.lastName;
4. var phone = parameters.phone;
5. var address = parameters.address;
6. var status = parameters.status || 'single'
//If status is not defined as a property
//in the object the variable status take single as value
7. }

  現在,要使用這個函數十分的簡單;我們可以用兩種方式來發送數據:

 
1. //Example 1
2. insertData({name:’Mike’, lastName:’Rogers’,
phone:’
555-555-5555’,address:’the address’, status:’married’});
3.
4.
5. //Example 2
6. var myData = { name:’Mike’,
7. lastName:’Rogers’,
8. phone:’555-555-5555’,
9. address:’the address’,
10. status:’married’
11. };
12.
13. insertData(myData);

  8,函數就是數據

  函數就是像strings或numbers那樣的數據,我們可以把它們當成函數參數來傳遞它們,這可以創建十分令人驚訝而又“威風凜凜”的Web應用程序。這個方法是非常有用的,幾乎所有的主流框架都使用了這個方法。例如:

 
1. function byId(element, event, f){
2. Document.getElementById(element).['on'+event] = f;
//f is the function that we pass as parameter
3. }
4.
5. byId('myBtn','click',function(){alert('Hello World')});
6.
7. Another example of functions as data:
8.
9. //Example 1
10. function msg(m){
11. Alert(m);
12. }
13.
14. //Example 2
15. var msg = function(m){ alert(m);}

  這些函數幾乎是完全相同的。唯一的區別是使用它們的方式。例如:第一個函數,在你聲明它以前,你就可以使用它了;但是第二個函數只有聲明以后才能使用:

 
1. //Example 1
2. msg('Hello world'); //This will work
3.
4. function msg(m){
5. alert(m);
6. }
7.
8. //Example 2
9. msg('Hello world');
//Does not work because JavaScript cannot find the function msg because is used before is been declared.
10.
11. var msg = function(m){ alert(m)}

9,擴展本地對象

雖然一些JavaScript的領袖不推薦這個技術,但是它已經被一些框架使用了。它可以讓你針對JavaScript API來創建一些輔助性的方法。

 
1. //We create the method prototype for our arrays
2. //It only sums numeric elements
3.
4. Array.prototype.sum = function(){
5. var len = this.length;
6. total = 0;
7. for(var i=0;i<len ;i++){
8. if(typeof this[i]!= 'number') continue;
9. total += this[i];
10. }
11. return total;
12. }
13.
14. var myArray = [1,2,3,'hola'];
15. myArray.sum();
16.
17.
18.
19.
20. Array.prototype.max = function(){
21. return Math.max.apply('',this);
22. }
23.

  10,Boolean

  注意它們之間的區別,因為這會節省你調試腳本的時間。

 
1. '' == '0' // false
2. 0 == '' // true
3. 0 == '0' // true
4. false == 'false' // false
5. false == '0' // true
6. false == undefined // false
7. false == null // false
8. null == undefined // true
9. true == 1 // true
10. '' == null // false
11. false == '' // true

  如果你在其他地方看過這些腳本,那么這些技巧可以幫助你融會貫通。這些技巧甚至還不及JavaScript所有功能的冰山一角,但是這是一個開始!請不要客氣,留下你的評論,問題,額外的技巧或疑慮吧,但是請記住,這是一篇針對初學者的文章!!我希望能收到一些開發者同行的來信!Enjoy!

0
0
 
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()