==用于一般比较,===用于严格比较,==在比较的时候可以转换数据类型,===严格比较,只要 类型不匹配就返回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
Was this helpful?
0 / 0