Storage Overhead - macmcmeans/localDataStorage GitHub Wiki
The very nature of storing JavaScript primitives in localStorage involves some extra work. Effectively, this means that a one-byte marker flag is used to track the data type for the key value.
For example, a key value of 3.14159 requires 8 bytes of storage (7 for the value plus 1 for the flag). Where everything is treated as a string, one additional byte per key value stored is the price of maintaining the integrity of the data type.
Memory Keys have no such overhead.
To understand exactly how data is stored and consumed, see the memory requirements.