那些被漏掉的JQuery总结(三)——关于前台的数据计算问题

   前段时间,由于项目比较着急上线。在实现一个计算功能的时候,我偷了点懒,选择了后台进行计算。感觉实现起来更简单,毕竟前台代码写的不是很多。随着时间的推移,后台处理数据出现了很多问题,一番重构后,计算和数据的处理都挪到了前台。过程很痛苦,很多细节让人抓狂,这就是实习的魅力!所有的经历都是慢慢的成长!这里拿出来和大家一起分享一下。

一、数据类型问题

   1、使用正确的数据类型:

     因为我们要进行数值计算,所以这里要使用数值类型,也就是Number类型。(相对应的还有NaN类型即not a number 。这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)。例如,在其他编程语言中,任何数值除以0都会导致错误,从而停止代码执行。但在JavaScript中,任何数值除以0会返回NaN,因此不会影响其他代码的执行。

  NaN本身有两个非同寻常的特点。首先,任何涉及NaN的操作(例如NaN/10)都会返回NaN,这个特点在多步计算中有可能导致问题。其次,NaN与任何值都不相等,包括NaN本身

)。PS:如果你要比较两个数值的大小,最好使用数值类型来进行计算和比较。


   2、强制类型转换:

      有3个函数可以把非数值转换为数值:Number()、parseInt()和parseFloat()

二、如何四舍五入?

    使用 toFixed函数。

三、千分位处理问题(显示、去除)

  显示:(s是你要处理的数值对象,必须为数值类型)

<span style="font-family:KaiTi_GB2312;font-size:18px;">     </span><pre name="code" class="javascript"><span style="font-family:KaiTi_GB2312;font-size:18px;">function(s){
     var l = s.split(".")[0].split("").reverse(), r = s.split(".")[1];
     t = "";
     for (i = 0; i < l.length; i++) {
          t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");
     }
     return t.split("").reverse().join("") + "." + r;
}</span>

 

 去除千分位的显示

<span style="font-family:KaiTi_GB2312;font-size:18px;">function(value){
     var noThousands = Number(0);
     noThousands = value.replace(/,/g, '')
     return noThousands ;
}</span>


四、输入的过滤(正则表达式):限制只能输入数字和小数点

   replace(/[^\d\.-]/g, "")

五、小结:

如果要将以上的代码整合到一起的话,其实也简单。给出一个自己在项目中应用的实例,希望对大家能有借鉴作用。

function <span style="font-family:KaiTi_GB2312;">ParseToThousands</span>(s, n) {
//<param>s</param>资金<param>n</param>小数点后保留位数如果是非零值或"",则返回"0.00"</summary>
      if (isNaN(s) || s == "") return "0.00";
      n = n > 0 && n <= 20 ? n : 2;
      s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";
      var l = s.split(".")[0].split("").reverse(), r = s.split(".")[1];
      t = "";
      for (i = 0; i < l.length; i++) {
         t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");
      }
      return t.split("").reverse().join("") + "." + r;
 }

总结:

    心态积极向上,找准定位,享受好自己的每一天,经营并总结好每一天。快乐做好自己,甚好!在大公司工作或者实习,我能学到什么不一样的东西。咱们都需要一些时间来独立思考和总结,而不是焦虑和紧张。让我们忘掉进度的烦恼吧,因为那是咱们早晚都要学的东西。也请不要再和其他人做什么对比了,不要给自己辣么大压力。只要自己每天都在进步就好。和自己比,是不是今天比昨天做的好辣么一点。这就是一件很幸福的事情。


推荐文章:关于js的数据类型操作

http://blog.csdn.net/z363115269/article/details/9122731

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 23
    评论
好的,关于 jQuery 的事件,我可以和你分享一些学习笔记。 1. 绑定事件 在 jQuery 中,我们可以通过以下方式来绑定事件: ``` $(selector).event(function(){ // 事件处理程序 }) ``` 其中,`selector` 表示要绑定事件的元素,`event` 表示要绑定的事件类型,比如 `click`、`mouseover` 等等。事件处理程序则是在事件触发时要执行的代码块。 2. 多个事件绑定 我们可以通过 `on()` 方法来同时绑定多个事件: ``` $(selector).on({ event1: function(){ // 事件处理程序1 }, event2: function(){ // 事件处理程序2 } }) ``` 这样,当 `event1` 或 `event2` 中任意一个事件触发时,对应的处理程序都会被执行。 3. 解除事件 如果需要解除某个元素的事件处理程序,可以使用 `off()` 方法: ``` $(selector).off(event); ``` 其中,`event` 表示要解除的事件类型。如果不指定事件类型,则会解除该元素上所有的事件处理程序。 4. 事件委托 在 jQuery 中,我们可以使用事件委托来提高性能。事件委托是指将事件绑定到父元素上,而不是绑定到子元素上,然后通过事件冒泡来判断是哪个子元素触发了该事件。这样,当子元素数量较多时,只需要绑定一次事件,就可以监听到所有子元素的事件。 ``` $(selector).on(event, childSelector, function(){ // 事件处理程序 }) ``` 其中,`selector` 表示父元素,`event` 表示要绑定的事件类型,`childSelector` 表示要委托的子元素的选择器,事件处理程序则是在子元素触发事件时要执行的代码块。 以上是 jQuery 中事件的一些基本操作,希望对你有所帮助。
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值