На самом деле я считаю, что мы можем сделать довольно сильный вывод из спецификации W3C (http://www.w3.org/TR/html5/webappapis.html#timers). Это не гарантируется явно, но у нас есть много свидетельств того, что почти любая разумная реализация будет иметь такое поведение:
1) Тайм-ауты и интервалы фактически используют одну и ту же базовую функцию:
Метод setTimeout () должен возвращать значение, возвращаемое шагами инициализации таймера, передавая им аргументы метода ... и флаг повтора, установленный в false.
Метод setInterval () должен возвращать значение, возвращаемое таймером
шаги инициализации, передавая им аргументы метода .... и
флаг повтора установлен на true.
2) Эта единственная функция - упомянутые выше «шаги инициализации таймера» - использует один список таймеров:
2, ... let handle - это целое число, определенное пользовательским агентом, которое больше нуля
который определит время ожидания, которое будет установлено этим вызовом в списке
активные таймеры.
10, ручка возврата ...
3) clearTimeout () и clearInterval () оба работают с этим списком (и фактически не отличаются спецификацией в любом случае)
Методы clearTimeout () и clearInterval () должны очистить запись
идентифицируется как дескриптор из списка активных таймеров
Объект WindowTimers, для которого был вызван метод, где handle
аргумент передается методу, если таковой имеется. (Если ручка не
идентифицировать запись в списке активных таймеров WindowTimers
объект, для которого был вызван метод, метод ничего не делает.)
Я полагаю, что это довольно убедительный случай, когда clearTimeout и clearInterval должны быть синонимами в соответствии со спецификацией. Это подтверждается тем фактом, что это работает во всех протестированных мной браузерах (Chrome 37, Firefox 33 и Opera 25).