JS几道题小结(预编译,对象重新赋值)

本文深入探讨JavaScript中常见的编程陷阱,包括数学运算的精度问题、变量提升、对象属性赋值及Infinity特性,通过实例解析帮助读者理解这些复杂概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 题目

在这里插入图片描述在这里插入图片描述在这里插入图片描述
4 Math.max() > Math.min() 返回什么

二 解答

在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述

三 分析总结

几道题,在控制台,分别把题目打出来,结果就可以看到。
第一题是因为计算机是底层是用二进制运算的,十进制的小数部分为有误差,每次误差的结果还不一致,不仅JavaScript有,其他编程语言也有这样的情况。导致了第一题的显示,两个都是false。
第二题是预编译过程,函数整体提升,变量名提升。自己作用域里有声明就在作用域按先后顺序取值,自己作用域里没有声明才去上一级找。
第三题是“.”操作符的优先级比“=”高,a.x相当于先声明了a的一个x属性,值为undefined,因为上边a赋值给了b,引用类型数据,这时b和a 指的是一个地址,所以b也就有了x属性,接着a又被重新赋值,等于指向了一个新的地址。这时的a与原来a 所指的地址和x属性已经没有什么关系了。这时的a所指的地址赋值给原来a所指数据的x属性。这样一来,b.x是 {n:2};a.x为undefined;
可参考ttps://www.cnblogs.com/huaan011/p/4381703.html
第四题的infinity的情况记着好了,在这个编程语言体系里,它就是这个样子,还有
infinity/infinity 为NaN。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值