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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步