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

const  arr  =  [ 1 ,   2 ,   3 ] ;
       arr [ l ]   =  getGreeting;  //  arr  теперь  [1 ,  function  getGreeting () ,  2]
       arr [ l ]   ( ) ;    / /   "Hello,  World! "
          Этот последний пример проясняет роль круглых скобок: если JavaScript встреча­
       ет кругш.rе скобки, которые следуют за значением, значение считается функцией и эту
                                                         1
       функцию следует вызвать. В приведенном примере arr [  ]   является выражением, ко­
       торое возвращает значение. Данное значение, сопровождаемое круглыми скобками,
       является сигналом JavaScript о том, что это значение - функция и ее следует вызвать.
                  Если вы попытаетесь добавить круглые скобки к значению, не явля­
                  ющемуся функцией, то вы получите ошибку. Например,  "whoo s "   ( )
                                                                           p
                  приведет к сообщению об ошибке TypeError :  "whoops "  i s   not  а
                  function.

       Ар г ументы фун к ции

          Мы теперь знаем, как вызывать функции и получать значения из них. А как пере­
       давать информацию в них� Основной механизм передачи информации при вызове
       функции - это а р гументы (argument) функции (иногда называемые ее параметрами
       (parameter)). Аргументы похожи на переменные, которые не существуют, пока функ­
       ция не будет вызвана. Давайте рассмотрим функцию, получающую два числовых ар­
       гумента и возвращающую их средние значения.
       function  avg ( a ,   Ь )    {
           return  ( а  +  Ь ) /2 ;


          В  этом  объявлении  функции  а  и  Ь   - это  формальные  аргументы  (formal
       argument). При вызове функции формальные аргументы получают значения и стано­
       вятся фактическими аргументами (actual argument).
       avg  5 ,   1 0 ) ;   11  7 .   5
          (
          В этом примере формальные аргументы а и Ь получают значения 5 и 1 О и стано­
       вятся фактическими аргументами (которые очень похожи на переменные, но специ­
       фичны для тела функции).
          У новичков нередко возникает недопонимание того, что аргументы существуют
       только в  функции, даже если у  них то же  имя,  что и у переменных за пределами
       функции. Рассмотрим пример.
       const  а  =  5,  Ь  =  1 0 ;
       avg  а ,   Ь ) ;
          (
          Переменные  а  и  Ь  здесь  являются  отдельными  переменными,  независимы­
       ми от аргументов а  и Ь функции avg, несмотря на совпадение их имен. Когда вы



                                                             Аргументы функци и    1 3 1
   126   127   128   129   130   131   132   133   134   135   136