Он проверяет, равны ли одинаковые стороны как по типу, так и по значению.
'1' === 1 // will return "false" because `string` is not a `number`
0 == '' // will be "true", but it's very common to want this check to be "false"
null == undefined // returns "true", but in most cases a distinction is necessary