Если вы хотите только проверить, существует ли ключ в объекте, а не то, что значение имеет значение false
, вам следует использовать оператор in
var value = col_num in __error__ ? "The value cannot be converted" : ""
Вы также можете использовать Object.hasOwnProperty
, который возвращает true, только если объект имеет это свойство (вернет false, если свойство было унаследовано).
Вот несколько примеров, иллюстрирующихразличия
var parent = {
foo: undefined
};
var child = Object.create(parent);
console.log("foo" in parent); // parent has the "foo" property
console.log("foo" in child); // child has the "foo" property
console.log(parent.hasOwnProperty("foo")); // parent has the "foo" property
console.log(child.hasOwnProperty("foo")); // child has the "foo" property but it belonds to parent
console.log(child.foo !== undefined); // the foo property of child is undefined
console.log(!!child.foo); // the troothy of undefined is false
console.log(parent.foo !== undefined); // the foo property of parent is undefined
console.log(!!parent.foo); // the troothy of undefined is false