What's the difference between ES6 Map and WeakMap?

What’s the difference between ES6 Map and WeakMap?

Map - accepts different primitive datatype like numbers, strings and so on and
WeakMap - accepts only objects as keys.