Метод предполагает, что переданный параметр является полным URI, поэтоу не кодирует зарезервированные значения, которые имеют специальные значения в URI.
Метод encodeURI заменяет все символы, исключая следующие, соответствующими им UTF-8 escape-последовательностями.
Заметим, что encodeURI не может формировать данные для GET или POST-запросов, например, для XMLHttpRequest, так как "&", "+", и "=" не кодируются - а они являются специальными символами.