==:若两边类型不一样,进行强制类型转换后再比较
===:若两边类型不一样,直接false
Object.is():和===差不多,处理了一些特殊情况,两个NaN相等了,+0和-0不相等
javascript的包装类
在 JavaScript 中,基本类型是没有属性和方法的,但是为了便于操作基本类型的值,在调用基本类型的属性或方法时 JavaScript 会在后台隐式地将基本类型的值转换为对象,如
const a = "abc";
a.length; // 3
a.toUpperCase(); // "ABC"
在访问'abc'.length
时,JavaScript 将'abc'
在后台转换成String('abc')
,然后再访问其length
属性JavaScript也可以使用Object()函数显式地将基本类型转换为包装类型:
var a='abc' Object(a)//String{'abc'}
例子:
var a = new Boolean( false );//包装类,是一个对象 if (!a) {//a为true,所以不会打印 console.log( "Oops" ); // never runs }
也可以使用valueOf方法将包装类到转换为基本类型
var a='abc' var b=Object(a) var c=b.valueOf()//'abc'