javascript的幾個小技巧

來源:互聯網
上載者:User

原帖:http://topic.csdn.net/u/20100421/16/817ef7c6-6675-49e1-bf39-b4a96c08b41e.html

1、字串轉換為數值

常規方法

Code:
  1. var a = parseFloat("12");  
  2. var b = parseInt("34");  

可以用

Code:
  1. var a = +("12");  
  2. var b = +("34");  

差別:

Code:
  1. parseInt("12px"); // 12  
  2. +("12px"); // NaN  

2、**數組

Code:
  1. var A = new Array(2);  
  2. A[0] = new Array(2);  
  3. A[1] = new Array(2);  
  4. A[0][0] = 1;  
  5. A[0][1] = 2;  
  6. A[1][0] = 3;  
  7. A[1][1] = 4;  
  8. //or  
  9. var A = [[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]];  

可以用

Code:
  1. var A = {};  
  2. A[[0, 0]] = 1;  
  3. A[[0, 1]] = 2;  
  4. A[[1, 0]] = 3;  
  5. A[[1, 2]] = 4;  
  6.   
  7. // 類似  
  8. A["0,0"] = 1;  
  9. A["0,1"] = 2;  
  10.   
  11. // 執行個體:操作100*100的二維數組  
  12. var A = {};  
  13. for (var x = 0; x < 100; x++)  
  14.     for (var y = 0; y < 100; y++) {  
  15.         A[[x, y]] = x * 100 + y;  
  16.     }  

3、遍曆正則匹配

常規方法

Code:
  1. var str = "a1b2c3d4e5f6g7h8i9j0k";  
  2. var match = str.match(//d/g, str);  
  3. var msg = [];  
  4. for(var i = 0; i < match.length; i++) {  
  5.     msg.push(match[i]);  
  6. }  
  7. alert(msg);  

可以利用String.replace方法

Code:
  1. var str = "a1b2c3d4e5f6g7h8i9j0k";  
  2. var msg = [];  
  3. str.replace(//d/g, function() {  
  4.     msg.push(arguments[0]);  
  5. });  
  6. alert(msg);  

單純處理成數組可以用

Code:
  1. var str = "a1b2c3d4e5f6g7h8i9j0k";  
  2. var msg = str.replace(//D/g,'').split('');  
  3. alert(msg);  

4、字串前面填充0

Code:
  1. function pad(num, n) {  
  2.   var len = num.toString().length;  
  3.   while(len <n){  
  4.     num = "0" + num;  
  5.     len++;  
  6.   }  
  7.   return num;  
  8. }  
  9. alert(pad(3,6)); //000003  

可以為先給數字前加1再裁減

Code:
  1. function pad(num, n) {  
  2.   return (Math.pow(10,n)+num+'').substr(1);  //缺點:位元長度有限,15位以內。  
  3. }  
  4. alert(pad(3,6)); //000003  

另一種

Code:
  1. unction pad(num, n) {  
  2.    y='00000000000000000000000000000'+num; //愛幾個0就幾個,自己夠用就行  
  3.    return y.substr(y.length-n);  
  4. }  
  5. alert(pad(3,6)); //000003  

處理十六進位原理一樣

Code:
  1. var color =0xff10;  
  2. var str = "#" + (Math.pow(16, 6) + color).toString(16).substr(1);  
  3. alert(str);  
  4.   
  5. // 另一種則是使用Regex  
  6. var str = "#" + /.{6}$/.exec("00000" + color.toString(16));  
  7. alert(str);  

 

5、取整

Code:
  1. var test = 3.45;  
  2. // 常規方法  
  3. alert(Math.floor(test));  
  4.   
  5. // 可以用無符號位移做到  
  6. alert(test >>> 0);  

請同學們將每一個列子調試一遍,動手練習最重要。

---

有人問我編程有什麼法門

我是這樣認為的:

1、興趣最重要,做一件你感興趣的事情,你會傾盡全力;
2、多動手,多做demo,熟能生巧,通過實踐獲得認知才夠真實和深刻;
3、把你 積累的經驗分享出來,一是協助更多的人少走彎路,另一個是激發自己更上一層,否則你誤以為已經掌握了核心技術而止步;
4、編碼上要規範、簡單,有 標準方法一定用標準方法,能兩三句代碼就實現的功能不必再次封裝,簡單而又規範的代碼讓人接手和自己維護都容易;
5、盡最大可能重用升級自己寫過 的代碼,代碼只有執行的次數越多才會向越穩定的方向發展;
6、使用者至上。你所寫的代碼是為使用者服務的,不是為你炫耀技術。如果使用者的需求和你編寫代碼的複雜度衝突,優先滿足使用者的需求。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.