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...
 
     
    