JavaScript: Оператор instanceof
| Оператор | Тип оператора | А | О | Типы значений |
|---|---|---|---|---|
| … instanceof … | Проверка на принадлежность к данному типу | слева направо | 2 | объект, конструктор → булево |
Оператор instanceof выполняет проверку на принадлежность объекта к указанному типу. Если проверяемый объект принадлежит к указанному типу, результатом будет значение true, иначе – false. Если левый операнд не является объектом, возвращается false. Если правый операнд не является функцией, возникает ошибка:
function A(){}
function C(){}
var o = new C();
alert(o instanceof C); // true
alert(o instanceof A); // false
var arr = [];
alert(arr instanceof Array); // true
var x = "";
var y = 1;
alert(x instanceof Object); // false
alert(x instanceof y); // Ошибка. y не является функцией
Оператор in
| Оператор | Тип оператора | А | О | Типы значений |
|---|---|---|---|---|
… in … |
Проверка наличия свойства | слева направо | 2 | строка, объект → булево |
Оператор in выполняет проверку наличия свойства в объекте. Если проверяемое свойство есть в объекте (собственное или наследуемое), результатом будет значение true, иначе – false:
var obj = {x:1};
alert("x" in obj); // true
alert("a" in obj); // false
var arr = [1];
alert("0" in arr); // true
alert(0 in arr); // true. 0 преобразован в "0"
alert(1 in arr); // false
С этой темой смотрят: