In this post, we will use V8 Engine by Google. The V8 Engine:
- The V8 Engine is written in C++ and used in Chrome & in Node.js, among others.
- It implements the ECMAScript Standard as specified in ECMA-262. 
More specific documentation of the V8 Engine is available at docs.
Each object takes a specific size in memory and C++ or ECMAScript specify on this size.
Size: 4 bytes or 1 byte
boolean is actually
1 byte. But alignment may cause 4 bytes to be used on a 32-bit platform or 8 bytes on a 64-bit platform. This old trick comes from the observation that allocated memory takes up at least 4 or 8 bytes, and are aligned in the way that the least significant bit or three will be zero.
In C++, the size of the type
boolean is implementation-defined (expr.sizeof[p1]) and is usually equal to 1 (the size of the type char, and the smallest size a type can have), but is not required to be (expr.sizeof[fn77]): in particular, in Visual Studio up to version 4.2, it was 4. More information about C++ boolean values is available at docs[expr.sizeof(18.104.22.168)].