код для eval и new Function различается и работают они по-разному. Если нужен результат выполнения, то eval вернёт значение последней операции. А new Function потребует return внутри кода. К тому же eval не работает с await, у new Function можно выкрутиться через прототип async функции. далее eval работает в локальном scope, поэтому гораздо медленее, функции все работают только в глобальном scope.
Обычно никто не юзаеи ни первое ни второе ни в каких случаях.
ключевое слово "обычно". есть много кейсов, когда это необходимо. вот джуны поначитались, что eval это плохо, у них это в мозгах пришкварилось и они затем при первой удобной возможности будут всегда говном поливать, когда увидят что-то про eval. Бездумно абсолютно. Не понимают, что существуют какие-то ещё кейсы, кроме их говновёрстки всяких говнолендингов. И это приводит к подобным срачам.
в каких кейсах ты применял eval? я помню только одну задачку, типа калькулятор, который принимает строку "1 + 1" и надо чтобы строка выполнилась, но там было решение и без eval
вот калькуляторы на eval это говно. мои кейсы я уже несколько раз описывал, если интересно, листай по реплаям наверх
Калькуляторы на eval это мем
Один кейс - взять и выполнить код, который ввёл пользователь. Для других случаев он не нужен
Это не правда на самом деле. Но любые кейсы для eval — ОЧЕНЬ специфичные
ок. у меня подгружаются страницы в айфрейме. и мне у этих страниц нужно выполнить код до её полной загрузки. как это сделать без eval?
а главное - зачем это делать без eval?
"у этих страниц нужно выполнить код до её полной загрузки", wtf
ну вот такое wtf. Это выходит за пределы вёрстки лендингов, да. В разработке и такое бывает.
Сама формулировка не понятна. Какой код? Зачем его выполнять до загрузки страницы?
Открыть один url, выполнить код на нём, который заредиректит на целевой url - такой вариант подойдёт? Хотя я не знаю как поможет eval в кейсе, честно говоря
Ну это не важно уже. Есть некий код. Нужно есть выполнять внутри айфрейма до его полной загрузки. Вставить код в айфрейм другим способом не вариант.
есть родительская страница, на ней айфрейм. в него подгружаются страницы. нужно у них выполнить некий код, который им посылает родительская страница. это можно было бы сделать с помощью динамически добавленного script тега. но не вариант, это надо сделать ДО загрузки страницы. и по сути добавление тега script это тот же самый eval. Вот как тут сделать без eval, а главное - зачем делать без него?
Сколько раз видел твои сообщения тут, все про eval. Ощущение, что ты специально вкидываешь, чтоб холивар развести
я только лишь отвечаю
алсо, я в этом чате уже дохрена лет, плохо ты видишь
Через конструктор функции еще можно
Хорошо. А зачем?
Я ответил на вопрос, как еще без eval
Обсуждают сегодня