• 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








  • 相关阅读:
    【iOS】找工作的面试题集锦
    APP项目优化--启动速度优化篇
    【Swift】Timer定时器到底准不准确?
    leetcode刷题 495~
    leetcode刷题 464~
    leetcode刷题 441~
    leetcode刷题 420~
    leetcode刷题 396~
    leetcode刷题 373~
    leetcode刷题 307~
  • 原文地址:https://www.cnblogs.com/maomaochong123/p/8412670.html
Copyright © 2020-2023  润新知