![]() |
JS: сложение иногда совсем не сложениеПосмотрите на простой код. Каков будет результат алерта? localStorage.setItem("fg",1); var a = localStorage.getItem("fg"); var b = 2; var c = a + b; alert (c);Вы сказали 3? Вы не угадали. Результат 12! Давайте разберемся, почему так происходит. Так как в JavaScript мы не указываем типы переменных явно, то и могут произойти такие вот парадоксы. Да и знак плюс здесь также обозначает как непосредственно сложение, так и конкантенацию (присоединение) строк. В нашем случае интерпретатор JS посчитал именно, что произошло соединение двух строковых переменных. Точнее, он посчитал первую строкой, а тип второй уже неважен. Как этого избежать в данном случае? Все просто. С помощью parseInt. Изменим четвертую строку. var a = parseInt(localStorage.getItem("fg"));Теперь имеем тот результат, который нам нужен. ![]() Интересно, что строкой переменная a будет считаться только при сложении, а при сравнении ваш браузер выдаст требуемый результат. Будьте внимательны! ![]() Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда. ![]() |
Мои услуги
|
© upread.ru 2013-2023 При перепечатке активная ссылка на сайт обязательна. |