原帖:http://topic.csdn.net/u/20100421/16/817ef7c6-6675-49e1-bf39-b4a96c08b41e.html
1、字串轉換為數值
常規方法
Code:
- var a = parseFloat("12");
- var b = parseInt("34");
可以用
Code:
- var a = +("12");
- var b = +("34");
差別:
Code:
- parseInt("12px"); // 12
- +("12px"); // NaN
2、**數組
Code:
- var A = new Array(2);
- A[0] = new Array(2);
- A[1] = new Array(2);
- A[0][0] = 1;
- A[0][1] = 2;
- A[1][0] = 3;
- A[1][1] = 4;
- //or
- var A = [[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]];
可以用
Code:
- var A = {};
- A[[0, 0]] = 1;
- A[[0, 1]] = 2;
- A[[1, 0]] = 3;
- A[[1, 2]] = 4;
-
- // 類似
- A["0,0"] = 1;
- A["0,1"] = 2;
-
- // 執行個體:操作100*100的二維數組
- var A = {};
- for (var x = 0; x < 100; x++)
- for (var y = 0; y < 100; y++) {
- A[[x, y]] = x * 100 + y;
- }
3、遍曆正則匹配
常規方法
Code:
- var str = "a1b2c3d4e5f6g7h8i9j0k";
- var match = str.match(//d/g, str);
- var msg = [];
- for(var i = 0; i < match.length; i++) {
- msg.push(match[i]);
- }
- alert(msg);
可以利用String.replace方法
Code:
- var str = "a1b2c3d4e5f6g7h8i9j0k";
- var msg = [];
- str.replace(//d/g, function() {
- msg.push(arguments[0]);
- });
- alert(msg);
單純處理成數組可以用
Code:
- var str = "a1b2c3d4e5f6g7h8i9j0k";
- var msg = str.replace(//D/g,'').split('');
- alert(msg);
4、字串前面填充0
Code:
- function pad(num, n) {
- var len = num.toString().length;
- while(len <n){
- num = "0" + num;
- len++;
- }
- return num;
- }
- alert(pad(3,6)); //000003
可以為先給數字前加1再裁減
Code:
- function pad(num, n) {
- return (Math.pow(10,n)+num+'').substr(1); //缺點:位元長度有限,15位以內。
- }
- alert(pad(3,6)); //000003
另一種
Code:
- unction pad(num, n) {
- y='00000000000000000000000000000'+num; //愛幾個0就幾個,自己夠用就行
- return y.substr(y.length-n);
- }
- alert(pad(3,6)); //000003
處理十六進位原理一樣
Code:
- var color =0xff10;
- var str = "#" + (Math.pow(16, 6) + color).toString(16).substr(1);
- alert(str);
-
- // 另一種則是使用Regex
- var str = "#" + /.{6}$/.exec("00000" + color.toString(16));
- alert(str);
5、取整
Code:
- var test = 3.45;
- // 常規方法
- alert(Math.floor(test));
-
- // 可以用無符號位移做到
- alert(test >>> 0);
請同學們將每一個列子調試一遍,動手練習最重要。
---
有人問我編程有什麼法門
我是這樣認為的:
1、興趣最重要,做一件你感興趣的事情,你會傾盡全力;
2、多動手,多做demo,熟能生巧,通過實踐獲得認知才夠真實和深刻;
3、把你 積累的經驗分享出來,一是協助更多的人少走彎路,另一個是激發自己更上一層,否則你誤以為已經掌握了核心技術而止步;
4、編碼上要規範、簡單,有 標準方法一定用標準方法,能兩三句代碼就實現的功能不必再次封裝,簡單而又規範的代碼讓人接手和自己維護都容易;
5、盡最大可能重用升級自己寫過 的代碼,代碼只有執行的次數越多才會向越穩定的方向發展;
6、使用者至上。你所寫的代碼是為使用者服務的,不是為你炫耀技術。如果使用者的需求和你編寫代碼的複雜度衝突,優先滿足使用者的需求。