zoukankan      html  css  js  c++  java
  • JavaScript避坑

      1, js运算精度问题=>

      1 输入>0.1+0.2==0.3
      2 返回>false
      3 
      4 输入>0.1+0.2
      5 返回>0.30000000000000004

      支招: 思路很简单,先赋给个变量,用toFixed(保留小数位);函数四舍五入,但是这样还不够,如果处理的值还需要参与运算的话,需要用Number(值/变量);函数转换为数字类型
      1 输入>var num=0.1+0.2;
      2 输入>var num2=num.toFixed(2);
      3 输入>num2
      4 返回>"0.30"
      5 输入>Number(num2);
      6 返回>0.3

    2,js变量运算问题
      1 输入>"2"-3
      2 返回>-1
      3 
      4 输入>"2"+3
      5 返回>"23"
      6 
      7 输入>"2"+-3
      8 返回>"2-3"

      将所有的运算参数先转成Number类型再运算,如果是变量类型,切需要注意你的变量是否包含数字,如果不包含就更麻烦了,需要用isNaN(变量);函数来处理后再行Number函数处理后运算之
      1 输入>Number("2")-Number("3")
      2 返回>-1
      3 
      4 输入>Number("2")+Number("3")
      5 返回>5
      6 
      7 输入>Number("2")+-Number("3")
      8 返回>-1

    3,数字字符串比较大小问题 如果两边的值的类型不一致的话一定要转换成一致类型的变量比较才会准确(数字和数字字符串比较也是坑。。。)
      1 输入>"1">"2"
      2 返回>false
      3 
      4 输入>"11">"9"
      5 返回>false

    4, js中true、false与undefined的问题=>
      1 输入>undefined==true
      2 返回>false
      3 
      4 输入>undefined==false
      5 返回>false
      6 
      7 输入>if(!undefined) console.log(false);
      8 返回>false


      看起来更加怪异,对不,额。。。,我想说的是:这个无解。。。(让我先哭会儿...
      )。。。;对于此只能死记硬背了,简单总结就是:undefined这个东东不等于false也不等于true,但是,但是,敲黑板=>在判断语句中它是false








  • 相关阅读:
    IplImage, CvMat, Mat 的关系
    neon memory copy
    基于v4l2的webcam应用, 本地预监
    makefile写法实例
    Ubuntu 12.04 使用Eclipse搭建C/C++编译环境
    xapp1167与TRD14.4 关系
    v3学院带你一次性认清UART、RS-232、RS-422、RS-485的区别
    v3学院教你学习-task和function的异同
    寒假参加V3
    FPGA培训学习心得
  • 原文地址:https://www.cnblogs.com/maomaochong123/p/8412670.html
Copyright © 2011-2022 走看看