JS中为什么(0==false)为true
两边类型不相同出现以下情况:
0为假即false
空字符串也为false
false == false恒成立
只有两边类型相同时才可以真正对比是否完全一样
因此(0==false)为true。
1、==相等运算符,同类型比较时,等同于=== ,比如 1==1.0 等同 1 === 1.0。
2、当不同类型比较时,先把类型转换成同一个类型,然后再执行严格相等,比如2 == true,
结果是false,这个等同于 2 === Number(true),也就是2 === 1。
3、null、undefined与其他类型的值比较时,结果都为false,除了自身比较是true,
比如null == null ,null == undefined ,undefined == undefined,都是true,
ECMAScript认为undefined是从null派生出来的,所以把它们定义为相等的。
- js 数的操作导致精度丢失问题
parseFloat(1.3-1).toFixed(4); 先转成浮点类型,再保留四位小数。四舍五入:toFixed方法,Math.round(num * 100) / 100。 - null 和 Undefined 的解释
Undefined类型只有一个值,即undefined。当声明的变量还未被初始化时,变量的默认值为undefined。
Null类型也只有一个值,即null。null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象,所以Null是一个对象,通过typeof可以看出。
“===” 代表绝对等于,null === undefined // 返回false