Page 75 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 75

хранить специальные значения (такие, как NumЬer . INFINITY) и обеспечивать функ­
       циональные возможности в форме функции. Рассмотрим следующий код.
       const  s   =  " h e l l o " ;
       s  . toUpperCase ( ) ;    / /   "HELLO"

          В  этом примере создается  впечатление,  что  s  - это  объект  (мы обратились
       к функциональному свойству,  как будто оно есть). Но  нам известно, что  s  - это
       базовый строковый тип. Так как же это произошло? Для этого JavaScript создает вре­
       менный объект  t ring (у которого есть функция toUpperCase, кроме других про­
                      S
       чих). По завершении вызова функции JavaScript удаляет объект. Для доказательства
       давайте попробуем присвоить свойство строке.
       const  s  =  "hello" ;
       s  . rating  =  3 ;    / /  ошибки  нет .  .  .  удача ?
       s . rating;         / /  undefined

          JavaScript позволяет сделать это, создавая впечатление, что мы присваиваем свой­
                                                                             S
       ство строке s. На самом деле свойство присваивается временному объекту  t ring,
       который для этого и создается. Сразу после этого временный объект удаляется, по­
       этому результатом  .   rating будет undefined.
                        s
          Хотя такое поведение JavaScript применяется редко (если вообще применяется),
       о нем следует знать.


       Массивы

          Массивы (array) в JavaScript - это объекты специального типа. В отличие от обыч­
       ных объектов содержимое массива упорядочено (элемент О всегда следует перед эле­
       ментом 1 ) ,   а ключи являются числовыми и последовательными. Массивы поддержи­
       вают  много  полезных  методов,  делающих этот  тип данных чрезвычайно мощным
       средством выражения информации, которое мы рассмотрим в главе 8.
          Если вы переходите на JavaScript с других языков, то  вы найдете, что массивы
       в JavaScript - это некий гибрид эффективности индексированных массивов язы­
       ка С, а также мощности динамических массивов и  связанных списков. Массивы
       в JavaScript обладают следующими свойствами.

          •  Размер массива не ограничен; вы можете добавлять и удалять элементы в лю­
             бое время.
          •  Массивы не являются гомогенными; каждый индивидуальный элемент может
             иметь любой тип.

          •  Элементы массива нумеруются от нуля. Таким образом, первый элемент в мас­
             сиве - элемент О.
   70   71   72   73   74   75   76   77   78   79   80