instanseof is an operator to test if the first operand, an object, is an instance of the second, a constructor. Follow the whole chain of prototypes, if you find it returns
true , if you can not find it returns
console.log(1 instanceof Object); //Devuelve false
console.log(Object(1) instanceof Object); //Devuelve true
Based on the documentation
From Grammar and Types
Boolean type literals have 2 possible values: true and false.
Do NOT confuse the Boolean primitive values true and false with the true and false values of the Boolean Object. The Boolean object is a container around the Boolean Primitive data type. For more information check Boolean .
A literal string corresponds to zero or more characters, enclosed in double quotes (") or simple ('.) A string must be delimited by quotes of the same type, this means that they are always double or single in each of the cases The following are examples of String literals:
- "One line \ n another line"
- "Jhon's cat"
Below what I think are the sections of ECMAScript 2016 (Version 7) that clarify this
§4.3.2 primitive value
member of one of the types Undefined, Null, Boolean, Number, Symbol,
or String as defined in clause 6
A primitive value is a datum that is directly represented at the
lowest level of the language implementation.
member of the type Object
An object is a collection of properties and has a single
prototype object. The prototype may be the null value.
Note that an object is not at the lowest level of language implementation, contrary to what happens with primitives.
The full explanation of the data types and values in ECMAScript 2016 (version 7) is in §6 ECMAScript Data Types and Values
On the differences between primitives and primitive objects