zoukankan      html  css  js  c++  java
  • js之意想不到的结果

    js 是弱类型语言 ,在进行计算时 如果遇到不能计算的单位,就会进行默认转换

    1、typeof NaN  结果为 “number”  原因:NaN 表示 不是不是一个数字(Not a Number),因此结果是number

    2、9,999,999,999,999,999  输出结果为 100,000,000,000,000 原因:js能够精确的最大整数 貌似只能表示16位十进制,大于这个数就会四舍五入,按照IEEE 754标准的舍入规则,一般舍入的是偶数

    3、0.5 + 0.1 == 0.6  true

      但是 0.1 + 0.2 == 0.3  false

    4、Math.max()   输出 -Infinity  因为如果没有大于负无穷大的数字,所有大于负无穷大的数字都应该是最大值

      Math.min() 输出 Infinity  因为所有小于正无穷大的数字都应该是列表中最小的

    5、[] + []  输出""  因为 + 是默认向字符串方向转化,- * 是默认向数字方向转化  所以相当于是 "" +"" = ""

    6、 [] + {} 输出 "[object object]"  因为 {} 是 对象

    7、{} +[] 输出 0

    8、true + true + true === 3   输出 true  因为true转化为字符串是1 

    9、true - true 输出 0

    10、 true == 1  输出 true 

       true === 1 输出 false  因为=== 即比较类型又比较数值 ,类型不一样,所以为false

    11、 (! + [] + [] + ![] ).length 输出 9 

    12、 9 + '1' 输出"91"   因为 + 是默认向字符串方向转化

    13、 91 - "1"  输出 90  因为 - * 是默认向数字方向转化

    14、 [] == 0 输出 true 

  • 相关阅读:
    vijos 1426
    2455 繁忙的都市
    2104 删除物品
    3235 战争
    BZOJ 2962
    COGS 265 线段覆盖
    P2184 贪婪大陆
    0729模拟赛解题报告
    BZOJ 1012
    BZOJ 2763
  • 原文地址:https://www.cnblogs.com/sllzhj/p/9257197.html
Copyright © 2011-2022 走看看