开发喵星球

前端面试题:==和===有什么区别?

用于一般比较,=用于严格比较,在比较的时候可以转换数据类型,=严格比较,只要 类型不匹配就返回flase„
先来看看这兄弟:
强制是将值转换为另一种类型的过程。在这种情况下,
会执行隐式强制。在比较两个值之前, 需要执行一些规则。
假设我们要比较x
y的值。
1、 如果x和y的类型相同,则JS会换成=操作符进行比较。
2、 如果 x 为 null, y 为 undefined,则返回 true。
3、 如果x为undefined且y为null,则返回true。
4、 如果x的类型是number, y的类型是string,那么返回x
toNumber(y) 。
5、 如果x的类型是string, y的类型是number,那么返回toNumber (x) y。
6、 如果x为类型是boolean,则返回toNumber (x)
y。
7、 如果y为类型是boolean,则返回x toNumber(y) 。
8、 如果 x 是 string, symbol 或 number,而 y 是 object 类型,则返回 x
toPrimitive (y) 。
9、 如果 x 是 object, y 是 string, symbol 则返回 toPrimitive (x) y。
10、 剩下的返回false

Proudly powered by WordPress