Необъявленная переменная — при использовании в качестве ссылки для присваивания значения будет произведён поиск по контекстам и (при отсутствии use strict) будет создано свойство глобального объекта (или выброшено исключение), а в остальных случаях будет однозначно выброшено исключение.
Поднятие работает в контекстах. Не только функции их создают. Есть, например, глобальный контекст, или контекст eval, не говоря уже про тонкости в некоторых инструкциях.
Да вы жжоте:) Кому всё это надо?
Никто не будет проверять код скрипта PHP. Как минимум, нужен код HTML/
Необходимо выложить минимально проблемный код на что-то типа jsfiddle.net или codepen.io.
Хотите — давайте ссылку на работающий сайт.
И описать, в чём именно проблема.
Илья Шатохин: Да, я для точного определения обычно брал от строкового представления регулярку, хотя slice быстрее будет. Интересно, ТС не сойдёт с ума, читая этот пинг-понг?)
Илья Шатохин: Я знал, что ты вывернешься:) Только никакой полифилл мы не сломали — вторая часть будет выполнена.
Я же и второй вопрос задал. Не думаю, что вопросы создания объектов с помощью Object.create(Array.prototype) сильно волнуют ТС:) К тому же мы ещё не вспомнили про:
Илья Шатохин: Вот любопытны 2 вещи:)
1. Зачем ты передаёшь в качестве прототипа не прототип Array?
console.log(Array.prototype.isPrototypeOf(ar1)); //true
console.log(Array.prototype.isPrototypeOf(ar2)); //false — вот про это я и говорил
console.log(ar1.isArray); //undefined
console.log(ar2.isArray); //function isArray() — откуда в Африке названия воронежских улиц?)
2. Ты разбираешь литерал объекта, в котором могут появиться литералы массива. Вот покажи мне создание этого псевдо-массива (который вовсе не массив) на примере литерала:)
SelenIT2: А я-то как дурак в JS полез для проверки:) Там по узлам div в p лежит и не жужжит... Спасибо за пояснение.
И пусть у вложившего блок в параграф случится разрыв только этого параграфа:)
Илья Шатохин: Ну это несерьёзно:) Ты же понимаешь, что массиву, как и прочим объектам можно назначить любое свойство. Массив при этом останется массивом.
Ну а что Object заявит свои права на всё, на что только возможно — это факт, да.
SelenIT2: Мне тоже так казалось, но подтвердить не могу, а раз так, то... SPAN разорвёт на части, это точно.
Если у тебя есть соображения, как можно достоверно проверить — я с удовольствием послушаю:)
andreyqin: ОК:) Я помню те времена, когда такой фокус не прокатывал в IE. Впрочем, мне и без него кажется идеологически некорректным на ходу менять тип нативного элемента, дизайн которого зачастую зависит от ОС. Состояния — не вопрос, но тип...
К тому же, не нужно подстраивать размер — оболочка растянется под элемент формы.
Поднятие работает в контекстах. Не только функции их создают. Есть, например, глобальный контекст, или контекст eval, не говоря уже про тонкости в некоторых инструкциях.