Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Простой вопрос. Operator + 
V
    Опции темы
t77
  Дата 24.2.2010, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 459
Регистрация: 27.7.2008

Репутация: нет
Всего: нет



Доброе время суток.
Есть две переменные:
var х = 17 и 
var у = 25
Если я пишу:
var z = x + y
то получаю z=1725.....
Вообщето я ожидал получить - 42
Как отличать оператор прибавления чисел и присоединения стринга ?
Ведь в обоих случаях это оператор +
Прошу прощения за столь простой и глупый вопрос.
Заранее благодарю

PM MAIL   Вверх
12345c
Дата 24.2.2010, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 6
Всего: 101



Если x - строка, то так и будет. Чтобы получить число, пишите

var z = Number(x) + y;

или другим способом. Тип операции определяется первым аргументом.


--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
t77
Дата 24.2.2010, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 459
Регистрация: 27.7.2008

Репутация: нет
Всего: нет



Понял.Спасибо.
PM MAIL   Вверх
bars80080
Дата 24.2.2010, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



parseInt(x) или parseFloat(x), а также x*1 превращают строку в число
PM MAIL WWW   Вверх
t77
Дата 24.2.2010, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 459
Регистрация: 27.7.2008

Репутация: нет
Всего: нет



bars80080, полезная информация. smile 
Спасибо.
PM MAIL   Вверх
ksnk
Дата 25.2.2010, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



Код

var x = "17",y = "25"; alert(~~x+~~y);


сам недавно узнал про такой оператор ;)


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
t77
Дата 25.2.2010, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 459
Регистрация: 27.7.2008

Репутация: нет
Всего: нет



попробовал вариант:
Number(x) + y;
при условии если:
Код

var x = "17";
var y = "25"; 

На выходе получаю 1725 .
получается, утверждение, что "операция определяется первым аргументом" не верно...
PM MAIL   Вверх
bars80080
Дата 25.2.2010, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



а Number(x) + Number(y) ?


приоритет всё-таки определяется положением в самом конце, в начале скобки, затем операторы, а потом типом переменных. и только в конце порядком
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0559 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.