【经验分享】Javascript几个小技巧。

原帖: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. // 另一种则是使用正则表达式  
  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、用户至上。你所写的代码是为用户服务的,不是为你炫耀技术。如果用户的需求和你编写代码的复杂度冲突,优先满足用户的需求。

发布了194 篇原创文章 · 获赞 7 · 访问量 73万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览