Object.is()

Object.is() - визначає чи є два значення однаковими.

Синтаксис:

Object.is(value1 , value2);

Параметри:

value1 - перше значення.

value2 - друге значення.

Опис:

Метод Object.is() визначає, чи є два значення однаковими значеннями. Два значення є однаковими в наступних випадках:

Поведінка цього методу не аналогічно оператору ==. Оператор == використовує приведення типів обох операндів (якщо вони мають різний тип) перед перевіркою на рівність (в результаті виходить, що перевірка "" == 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 ; };

Приклад:

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