In the following code, if typeof
of something
and arbit
comes out to be string
, why doesn't instanceof String
return true
:
const roles = ['something', 'arbit'];
console.log("Array.isArray(roles):", Array.isArray(roles));
console.log("roles instanceof Array:", (roles instanceof Array));
roles.forEach(element => {
console.log(`[${element}]`);
console.log(`\ttypeof(${element}):`, typeof(element));
console.log(`\t${element} instanceof String:`, (element instanceof String));
});
The output for this is:
Array.isArray(roles): true
roles instanceof Array: true
[something]
typeof(something): string
something instanceof String: false
[arbit]
typeof(arbit): string
arbit instanceof String: false
Also, roles instanceof Array
evaluates to true
. Thoroughly confused.
This is plain JavaScript running in Nodejs 12, though I doubt that makes any difference...