Object.is() - визначає чи є два значення однаковими.
Object.is(value1 , value2);
Object - Object.
value1 - перше значення.
value2 - друге значення.
is() метод об'єкта Object який визначає, чи є два значення однаковими значеннями. Два значення є однаковими в наступних випадках:
Поведінка цього методу не аналогічно оператору ==. Оператор == використовує приведення типів обох операндів (якщо вони мають різний тип) перед перевіркою на рівність (в результаті виходить, що перевірка "" == false дає true), а метод Object.is приведення типів не виконує.
Поведінка цього методу не аналогічно оператору ===. Оператор === (також як і оператор ==) вважає числові значення -0 і +0 рівними, а значення Number.NaN не рівним самому собі.
Метод Object.is підтримують не усі бравзери. Функція аналогу методу Object.is():
function ObjectIs( v1 , v2 ) {
if (v1 === 0 && v2 === 0) {
return 1 / v1 === 1 / v2 ;
}
if (v1 !== v1 ) {
return v2 !== v2 ;
}
return v1 === v2 ;
};
var x=1, y=1;
alert( Object.is( x, y ) ); //true
var b = Object.is('test', 'test');
alert( b );
Object.is( 'foo' , 'foo' ); // true
Object.is( window , window ); // true
Object.is( 'foo' , 'bar' ); // false
Object.is([], []); // false
var test = { a: 1 };
Object.is( test, test ); // true
Object.is( null, null); // true
// особливі ситуації
Object.is( 0, -0 ); // false
Object.is( -0 , - 0); // true
Object.is( NaN , 0/ 0); // true