Мы, к сожалению, делаем много динамического дизайна веб-страниц, создавая строки HTML с использованием JavaScript и используя document.write
для вывода данных. Я наткнулся на некоторый код, что один из моих коллег написал, что выглядит следующим образом:String Concatenation with String()
var myString = String() + "this is my string" +
"and I am doing a lot of string concatenation" +
"doing this the worst way possible"
Эти линии идут дальше и дальше, иногда сотни строк жестко закодированы HTML (с встроенных стилей и недостающих конечных тегов). Части, которые мне интересны, это String()
. Я никогда не видел этого раньше, и я писал JavaScript в течение длительного времени. Я спросил своего коллегу, что это такое, и он сказал, что «это улучшает производительность конкатенации строк и, перейдя во время отладки, вы не будете наступать на каждую строку, а скорее прямо до конца».
Теперь я обычно принимаю эти вещи с солью, но мне было любопытно ... поэтому я проверил это. Chrome, по крайней мере, всегда делает шаг к следующему утверждению независимо от открытия String()
или нет. Поэтому я знаю, что это, по крайней мере, неверно.
A. A. есть? Это не как конструктор (как бы), и когда я ввожу String()
в консоль, я возвращаю пустую строку ""
. И Б. Есть ли какая-то правда в его заявлении, что это улучшает производительность? И если да, то почему?
Это может повлиять на конкретный отладчик, отличный от того, который находится в Chrome. Помните, что это только один браузер. При этом у него возникли проблемы с конкатенацией строк, требующих отладчика, я думаю, что с кодом больше проблем, чем с использованием 'String()' вместо '' ''. –
Ну, они содержат тонны переменных, поэтому они перешагивают, проверяя переменные как конкатенированные, так и такие. Я знаю, что это может быть сделано намного лучше, но поскольку мы не делаем этого иначе, меня интересует это, так как это – pinkfloydx33
По крайней мере, для chrome, firefox и IE11 производительность ужасная: [скрипка] (http : //jsfiddle.net/wmtc5z4f/) – Andreas