|
|
|
скаляр
|
|||
|---|---|---|---|
|
#18+
Вычитал в учебнике Код: plaintext 1. 2. т.е. опечатка ли это и надо читать как Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2009, 15:10 |
|
||
|
скаляр
|
|||
|---|---|---|---|
|
#18+
Сначала не врубился, а потом посмотрел, что ты базовик и понял :) Выражения Код: plaintext Код: plaintext Просто String - это один из базовых объектов javascript. Соответственно, конструктор, - new String(). Делая присвоение переменной значения мы неявно его вызываем. А вобще, javascript в этом смысле - дико гибкий язык. Можно присвоить Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2009, 15:29 |
|
||
|
скаляр
|
|||
|---|---|---|---|
|
#18+
IDVsbruck, Спасибо. Я в принципе так и предполагал, сомнения возникли после того как почитал дальше, цитирую: Код: plaintext 1. Код: plaintext Код: plaintext Т.е. здесь говорят, что это не одно и тоже. Проясни если в теме. JavaScript & DHTML Cookbook By Danny Goodman Publisher : O'Reilly Pub Date : April 2003 ISBN : 0-596-00467-2 Pages : 540 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2009, 17:36 |
|
||
|
скаляр
|
|||
|---|---|---|---|
|
#18+
ИМХО, догоняю. === вернет False потому что это разные объекты, так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2009, 17:44 |
|
||
|
скаляр
|
|||
|---|---|---|---|
|
#18+
Хотя в этой книге следует в этом случае непонятное пояснение: авторThese two variables might contain the same series of characters but are different data types. The first is a string value, while the second is an instance of a String object. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2009, 17:46 |
|
||
|
скаляр
|
|||
|---|---|---|---|
|
#18+
IDVsbruckА вобще, javascript в этом смысле - дико гибкий язык. Это ты еще с М-технологиями не имел... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2009, 21:13 |
|
||
|
скаляр
|
|||
|---|---|---|---|
|
#18+
IDVsbruck Код: plaintext 1. Код: plaintext 1. [/src] Код: plaintext 1. 2. 3. 4. 5. 6. "Helo, word!" - 17 errors 56 warnings Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2009, 15:24 |
|
||
|
скаляр
|
|||
|---|---|---|---|
|
#18+
100%, никто и не спорит, оператор new - признак того, что создается не примитивный тип, а объект. Возможно, характеристика "идентичны" немного идеализирована, но сути в контексте данного топике не меняет. Идентичными можно назвать myString1 и myString2.toString(), результатами которых является тип String. Цитата: "Когда переменной присваивается строковый литерал, она становится строковой переменной. На самом деле JavaScript не поддерживает строковых типов, а создает стандартный объект string. Таким образом, любая строковая переменная или строковый литерал является объектом string, к которому могут быть применены соответствующие методы этого объекта. Можно явно создать строковый объект, используя ключевое слово new и конструктор string." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2009, 20:56 |
|
||
|
скаляр
|
|||
|---|---|---|---|
|
#18+
IDVsbruck-Цитата:На самом деле JavaScript не поддерживает строковых типов, а создает стандартный объект string. Таким образом, любая строковая переменная или строковый литерал является объектом string, к которому могут быть применены соответствующие методы этого объекта. Запутано, я могу это понять только так что переменные - разных типов, в одном случае строка, во втором объект, но переменная строкового типа становится объектом в момент интерпретации ее как объекта Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2009, 23:16 |
|
||
|
скаляр
|
|||
|---|---|---|---|
|
#18+
не надо искать логическое объяснение всему что происходит в яваскрипте )) а людям, которые на нём всерьёз что-то пишут надо давать медаль за отвагу. тут всё надо пробовать - слепо верить ничему нельзя. дело в том, что "new" по сути глупый оператор. его цель - скопировать прототип из функции, которую ему дали. Т.е. то что вы ему дали String() ещё не значит, что это действительно строковый тип, ведь String() - это просто функция, может вы её заменили на свою. да и ждать от того, что он побежит сравнивать прототип который ему дали со всеми встроенными типами, тоже не стоит )) так что просто запомните такое правило - в яваскрипте почти ничего не диктуется какой-то шибко умной задумкой создателей - скорей всего сделали по простому, а оно так получилось случайно )) closures в яваскрипте - ещё один такой пример, так щас люди о нём с деловым видом говорят как о какой-то фиче _______________________________________ 2pro4U ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2009, 23:52 |
|
||
|
скаляр
|
|||
|---|---|---|---|
|
#18+
Frenzy, тем не менее ИМХО все имеет причины и следствия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2009, 00:16 |
|
||
|
скаляр
|
|||
|---|---|---|---|
|
#18+
alexmsp, если решил копать js, то понадобится копательная книжка. На русском языке это только Флэнаган "JavaScript" Флэнаган Дело в том, что для каждого из трех базовых типов данных определен соответствующий класс объектов. То есть помимо поддержки числовых, строковых и логических типов данных JavaScript поддерживает классы Number, String и Boolean. Эти классы представляют собой «обертки» для базовых типов данных. Обертка (wrapper) содержит такое же значение базового типа, но кроме этого определяет еще свойства и методы, которые могут использоваться для манипуляций с этим значением. JavaScript может гибко преобразовывать один тип в другой. Когда мы используем строку в объектном контексте, т. е. когда пытаемся обратиться к свойству или методу строки, JavaScript создает внутри себя объект-обертку для строкового значения. Этот объект String используется вместо базового строкового значения. Для объекта определены свойства и методы, поэтому удается задействовать значение базового типа в объектном контексте. ...бла-бла-бла.... Следует отметить, что объект String, созданный при использовании строки в объектном контексте, временный – он служит для того, чтобы обеспечит доступ к свойству или методу, после чего необходимость в нем отпадает, и поэтому он утилизируется системой. ...бла-бла-бла.... Чтобы явно использовать объект String в своей программе, надо создать постоянный объект, который не будет автоматически удаляться системой. Объекты String создаются так же, как и другие объекты, - с помощью оператора new. Например: var s = “hello world”; // Значение строкового типа var S = new String(“Hello World”); // Объект String Что же можно делать с созданным объектом S типа String? Ничего такого, что нельзя делать с соответствующим значением базового типа. Если мы воспользуемся оператором typeof, он сообщит нам, что S – это объект, а не строковое значение, но кроме того, мы не увидим различий между базовым строковым значением и объектом String. 1 Как мы уже видели, строки автоматически преобразуются в объекты String, когда это требуется. Оказывается, что обратное тоже верно. Когда мы используем объект String там, где предполагается значение базового типа, JavaScript автоматически преобразует объект String в строку. Поэтому, если мы используем наш объект String с оператором +, для выполнения операции конкатенации создается временное значение базового строкового типа: ...бла-бла-бла.... ------------------------------ 1 Однако при этом метод eval() рассматривает строковые значения и объекты String по-разному, и если непреднамеренно передать ему объект String вместо значения базового строкового типа, он поведет себя не так, как вы предполагаете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2009, 01:06 |
|
||
|
скаляр
|
|||
|---|---|---|---|
|
#18+
Сначала хотел продолжить полемику, а потом все же решил обратиться к первоисточнику: ECMA-262 . Вот что пишется по поводу строк и строковых объектов (strings & String objects) (перевод): ECMA-262... 4.2.1 Объекты ... Объекты создаются путём использования конструкторов в выражениях new; например, new String("A String") создаёт новый объект String. Вызов конструктора без использования new имеет последствия, зависящие от конструктора. Например, String("A String") создаёт примитивную строку, а не объект. ... 4.3.16 Строковое значение Строковое значение - элемент типа String, представляющий собой конечную упорядоченную последовательность нуля или более 16-битных беззнаковых целых значений. ... 4.3.17 Тип String Тип String представляет собой множество всех строковых значений. 4.3.18 Объект String Объект String является элементом типа Object и экземпляром встроенного объекта String. Объект типа String создаётся при помощи конструктора String в составе выражения new, которому в качестве аргумента передаётся булевское значение. Результирующий объект обладает неявным (безымянным) свойством, содержащим это строковое значение. Объект типа String может быть приведён к строковому значению путём вызова конструктора String как функции (15.5.1). ... 9.8 ToString Оператор ToString (" к строке") преобразует свой аргумент к значению типа String согласно следующей таблице: Входной тип Результат String Возвращает входной аргумент (преобразование не производится) ... 15.5.1 Вызов конструктора String как функции Когда String вызывается не как конструктор, а как функция, он производит преобразование типа. 15.5.1.1 String([ value ] ) Возвращает строковое значение (не объект String), вычисляемое как ToString(value). Если value не передано, возвращается пустая строка "". ... Так как прямое присвоение действительно идентично вызову функции ("SQL" === String("SQL")), то согласно а) спецификации, б) постулату javascript, что в нем "все есть объект" и в) простым логическим сопоставлениям можно сделать следующий вывод: при простом присвоении переменной строки создается объект (причем, он либо анонимный, либо изначально присваивается нашей переменной), а затем нашей переменной присваивается внутреннее строковое значение или происходит алгоритм наподобие такого (при str = "our string"): Код: plaintext 1. Однако это такие незначительные условности, что на них даже не стоит обращать внимание. Единственное, думаю, это может объяснить природу соответствия казалось бы идентичных строк разным типам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2009, 01:40 |
|
||
|
скаляр
|
|||
|---|---|---|---|
|
#18+
illion, написал предыдущий пост еще не видя твоего, так что не прийми мой ответ как спор с тобой, просто в верхних постах я вроде как влетел не думая, в чем был обвинен (уже дважды за день), поэтому решил докопаться до истины ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2009, 01:45 |
|
||
|
скаляр
|
|||
|---|---|---|---|
|
#18+
IDVsbruckillion, написал предыдущий пост еще не видя твоего, так что не прийми мой ответ как спор с тобой а я чё, я вообще молчу, это господин Флэнаган вещает :-). Я о таких вещах вообще редко задумываюсь, уже пишешь как то на автомате str="hfugvh", и всё тут. Это уже когда кто-то другой задает подобный "странный" вопрос, начинаешь и сам мозгой шевелить :-). У флэнагана в книжке вообще немало таких разъяснений, которые вроде воспринимаешь так на автомате, как должное, типа работает и ладно, а потом почитаешь - "ух ты, вон оказывается что там творится". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2009, 03:22 |
|
||
|
скаляр
|
|||
|---|---|---|---|
|
#18+
illion, сэнкс. Ищу этого Флэнагана. До этого накачал книжек на англ, но там типа для чайников, т.е. ничего непонятно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2009, 22:18 |
|
||
|
скаляр
|
|||
|---|---|---|---|
|
#18+
Вот и не понял это скульптор или легкоатлет ? Или тынц давайте, или хотя-бы про кого речь идёт. А то чувствую себя последним идиётом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2009, 23:01 |
|
||
|
скаляр
|
|||
|---|---|---|---|
|
#18+
Нашел я этого Флэнагана. Серьезный парень, 107Мб в pdf:) Наслаждаюсь скачиванием по dial-up. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2009, 23:32 |
|
||
|
скаляр
|
|||
|---|---|---|---|
|
#18+
ShSerge тынц давайте тынць /me думает: во время летит - 5-е издание, AJAX, XML... _________________ "Helo, word!" - 17 errors 56 warnings Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2009, 23:46 |
|
||
|
скаляр
|
|||
|---|---|---|---|
|
#18+
alexmsp Нашел тынць? _________________ "Helo, word!" - 17 errors 56 warnings Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2009, 23:51 |
|
||
|
скаляр
|
|||
|---|---|---|---|
|
#18+
Ex_Soft, фигасе ты тынц дал! 926р. Тут даже у меня бы жаба проснулась :-). На букс.ру хоть 720. Букс вообще частенько выигрывает по цене, это особенно через findbook.ru видно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2009, 00:34 |
|
||
|
скаляр
|
|||
|---|---|---|---|
|
#18+
alexmspНашел я этого Флэнагана. Серьезный парень, 107Мб в pdf:) Наслаждаюсь скачиванием по dial-up. Я так понял, что это разные книги. Эта (pdf на 107Мб) - "JavaScript в примерах", а illion указала на книгу "JavaScript: подробное руководство". Если кто увидит ссылку на электронку последней - маякните, плиз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2009, 02:03 |
|
||
|
скаляр
|
|||
|---|---|---|---|
|
#18+
illion фигасе ты тынц дал! да это я дал первый попавшийся - дабы ShSerge свой дуализм заборол ;) IDVsbruck Если кто увидит ссылку на электронку последней - маякните Присовокупляюсь... Хотя... Если честно - не встречал... Ни на одно издание.. _________________ "Helo, word!" - 17 errors 56 warnings Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2009, 07:11 |
|
||
|
|

start [/forum/topic.php?fid=22&fpage=304&tid=1455240]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
301ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
91ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 644ms |

| 0 / 0 |
