Почему new String(object) устарел?
Не пойму, почему в статье http://javascript.ru/String указано что синтаксис устарел и не используется?
|
Как вариант что-то устаревает из-за его неиспользования... :)
|
klimashkin
какой вариант для вас более предпочтителен? alert('1'['constructor']); alert(new String(1)['constructor']); |
Я иногда использую для наглядности при сложении, например, или при сравнении. Можно конечно и пустую строку добавлять...
|
Т.е. разница только в этом?
|
да
|
Цитата:
var s1 = 's1', s2 = 's2'; var s3 = new String(s1) + new String(s2); Здесь сначала строки преобразуются в объекты String, после чего эти объекты преобразуются в строки. Хорошая наглядность из двух лишних преобразований. Цитата:
alert(new String('a') == new String('a')) |
Цитата:
var s1 = 5, s2 = 10; var s3 = String(s1)+s2; |
String и new String разные вещи. ТС про new String спрашивал.
|
удалено.
|
я использую для экономии памяти
|
Цитата:
Я постоянно читаю различные справки на тему производительности JS и везде пишут что new Object/Array/Function/String нужно писать именно в сокращенной нотации. |
var x= "много текста"
var y= x var x= Object( "много текста" ) var y= x что экономней? |
Только что проверил:
если количество символов небольшое, то вариант с созданием объекта требует на ~20% больше времени выполнения сценария, если же брать большое количество символов, то все с точностью наоборот. Доп. если же вызывать объект на прямую, без промежуточной переменной, то экономия получается почти в 50%. |
я про потребление памяти
что за вызов напрямую? |
Цитата:
Цитата:
var s1 = new String() alert(s1); либо сразу вызывать: alert(new String()); а не так: var s1 = new String(); s2 = s1; alert(s2); |
на небольшом количестве символов и не важно кто меньше.
|
видимо, tenshi намекает на то, что тип String - не ссылочный тип. Хотя я не знаю, что может помешать реализации использовать copy on write, например
|
например вот это:
x = "long string" y = x + "!" z = x + "!" |
Часовой пояс GMT +3, время: 17:35. |