"Какая форма заявления должна быть? Куда подавать?"
Я задал (кеш гугла) такой вопрос на Тостере. Его удалили через некоторое время, так как он "вне тематики ресурса". Далее я попросил у модератора разъяснить поподробней и он ответил: "Это вопрос дискуссионный и на него не существует однозначного ответа".
За время пока вопрос существовал я получил несколько ответов:
1 Обратиться в Конституционный суд.
2 Оформить визу и выехать из юрисдикции полномочий РосКомНадзора.
Задав такой же вопрос интернету, оказалось, что не я один задался этим вопросом. Пользователь zakabum сайта RuTracker.org выложил на форуме образец заявления (зеркало) которое необходимо подать провайдеру. А также выкладывает новые свои заявления в ходе переписки со своим провайдером.
В прошлый раз мы попытались разобраться со следующими вещами:
1. Не смотря на расхожее мнение «всё в JS является объектами» — это не так, мы выяснили, что из 6 доступных программисту типов данных аж 5 является примитивами и лишь один представляет тип объектов.
2. Про объекты мы узнали, что это такая структура данных, которая содержит в себе пары «ключ-значение». Значением может быть любой из типов данных (и это будет свойство объекта) или функция (и это будет метод объекта).
3. А вот примитивы – это не объекты. Хотя с ними и можно работать как с объектом (и это вызывает заблуждение что примитив – это объект), но…
4. Переменные можно объявить как по простому (литерально) (var a = ‘str’), так и через функцию-конструктор (обёртка)(var a = new String(‘str’)). Во втором случае мы получим уже не примитив, а объект созданный конструктором String(). (что за магический оператор new и что такое функция-конструктор мы узнаем дальше).
5. Узнали, что именно за счёт создания обёртки над примитивом (new String(‘str’)) c ним можно работать как с объектом. Именно эту обёртку создаёт интерпретатор вокруг примитива, когда мы пытаемся работать с ним как с объектом, но после выполнения операции она разрушается (поэтому примитив никогда не сможет запомнить свойство, которое мы ему присвоим a.test = ‘test’- свойство test исчезнет с обёрткой).
6. Узнали, что у объектов есть метод toString() который возвращает строковое представление объекта (для типа number valueOf() – вернёт числовое значение).
7. Поняли, что при выполнении операций конкатенации или математических операциях примитивы могут переопределить свой тип в нужный. Для этого они используют функции-обёртки своих типов, но без оператора new (str = String(str)).(в чём разница и как это работает, поговорим дальше)
8. И наконец, узнали, что typeof берёт значения из жёстко зафиксированной таблицы (вот откуда ещё одно заблуждение, основанное на typeof null //object).