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

本文介绍了JavaScript中的一些实用技巧,包括字符串转数值的不同方法及其差异、数组的定义与操作、正则表达式的应用、字符串处理技巧及取整方法等。同时分享了编程的心得体会。

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

1、字符串转换为数值

常规方法

Code:
  1. vara=parseFloat("12");
  2. varb=parseInt("34");

可以用

Code:
  1. vara=+("12");
  2. varb=+("34");

差别:

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

2、**数组

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

可以用

Code:
  1. varA={};
  2. A[[0,0]]=1;
  3. A[[0,1]]=2;
  4. A[[1,0]]=3;
  5. A[[1,2]]=4;
  6. //类似
  7. A["0,0"]=1;
  8. A["0,1"]=2;
  9. //实例:操作100*100的二维数组
  10. varA={};
  11. for(varx=0;x<100;x++)
  12. for(vary=0;y<100;y++){
  13. A[[x,y]]=x*100+y;
  14. }

3、遍历正则匹配

常规方法

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

可以利用String.replace方法

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

单纯处理成数组可以用

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

4、字符串前面填充0

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

可以为先给数字前加1再裁减

Code:
  1. functionpad(num,n){
  2. return(Math.pow(10,n)+num+'').substr(1);//缺点:位数长度有限,15位以内。
  3. }
  4. alert(pad(3,6));//000003

另一种

Code:
  1. unctionpad(num,n){
  2. y='00000000000000000000000000000'+num;//爱几个0就几个,自己够用就行
  3. returny.substr(y.length-n);
  4. }
  5. alert(pad(3,6));//000003

处理十六进制原理一样

Code:
  1. varcolor=0xff10;
  2. varstr="#"+(Math.pow(16,6)+color).toString(16).substr(1);
  3. alert(str);
  4. //另一种则是使用正则表达式
  5. varstr="#"+/.{6}$/.exec("00000"+color.toString(16));
  6. alert(str);

5、取整

Code:
  1. vartest=3.45;
  2. //常规方法
  3. alert(Math.floor(test));
  4. //可以用无符号位移做到
  5. alert(test>>>0);

请同学们将每一个列子调试一遍,动手练习最重要。

---

有人问我编程有什么法门

我是这样认为的:

1、兴趣最重要,做一件你感兴趣的事情,你会倾尽全力;
2、多动手,多做demo,熟能生巧,通过实践获得认知才够真实和深刻;
3、把你 积累的经验分享出来,一是帮助更多的人少走弯路,另一个是激发自己更上一层,否则你误以为已经掌握了核心技术而止步;
4、编码上要规范、简单,有 标准方法一定用标准方法,能两三句代码就实现的功能不必再次封装,简单而又规范的代码让人接手和自己维护都容易;
5、尽最大可能重用升级自己写过 的代码,代码只有执行的次数越多才会向越稳定的方向发展;
6、用户至上。你所写的代码是为用户服务的,不是为你炫耀技术。如果用户的需求和你编写代码的复杂度冲突,优先满足用户的需求。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值