一 题目
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。