Page 83 - 6105
P. 83

Вона перетворює рядок в число аналогічно +, а потім поверне true, якщо це

               NaN, тобто якщо перетворення не вдалося:


                      var x = prompt ( "Введіть значення", "-11.5");
                      if (isNaN (x)) {


                        alert ( "Рядок перетворилася в NaN. Чи не число");
                      } Else {


                        alert ( "Число");
                      }

                      Однак, у такої перевірки є дві особливості:

                            порожній рядок і рядок з пробільних символів перетворюються до 0,


                              тому вважаються числами.

                            якщо  застосувати  таку  перевірку  не  до  рядка,  то  можуть  бути

                              сюрпризи,  зокрема  isNaN  вважатиме  числами  значення  false,  true,

                              null, так як вони хоча і не числа, але перетворюються до них.

                      alert (isNaN (null)); // false - НЕ NaN, тобто "Число"

                      alert  (isNaN  (  "\  n  \  n"));  //  false  -  НЕ  NaN,  тобто

               "Число"

                      Якщо  така  поведінка  допустима,  то  isNaN  -  прийнятний  варіант.  Якщо  ж

               потрібна дійсно точна перевірка на число, яка не вважає числом рядок з пробілів,

               логічні та спеціальні значення, а також відсікає Infinity доцільно використовувати

               використовуйте функцію isNumeric:

                      function isNumeric (n) {

                        return! isNaN (parseFloat (n)) && isFinite (n);

                      }

                      Функція перетворює аргумент до числа і повертає true, якщо це не Infinity /

               -Infinity / NaN. Таким чином, права частина відсіє свідомо не-числа, але залишить

               такі  значення  як  true  /  false  /  null  і  порожній  рядок  ,  так  як  вони  коректно





                                                                82
   78   79   80   81   82   83   84   85   86   87   88