Ответ 1
0 == ''
Левый операнд имеет тип Number.
Правильный операнд имеет тип String.
В этом случае правый операнд принуждается к типу Number:
0 == Number('')
что приводит к
0 == 0
Из <сильного > алгоритма сравнения абстрактного равенства (номер 4):
Если Type (x) - Number и Type (y) - String, верните результат сравнение x == ToNumber (y).
Источник: http://es5.github.com/#x11.9.3