2015-01-25 6 views
0

У меня есть этот код:Как я могу получить правильный результат?

 var theNumber = Number(prompt("Pick a number", "")); 
       alert("Your number is the sum of " + theNumber + 10); 

Я замечаю, что Javascript пытается преобразовать 10 в строку (как и ожидалось), и мне было интересно, что я должен изменить в своем коде для вывода будет фактическая сумма значение theNumber (что пользователь выберет) плюс номер 10.

+0

Создать темп переменного и присвоить его значение, как темп = Thenumber +10; и использовать его вместо этого! – ErAcube

ответ

2

Скобки.

Вам нужно сделать:

alert("Your number is the sum of " + (theNumber + 10)); 

Вопрос заключается в том, что он работает слева направо, так что он видит строку, а затем преобразует theNumber в строку, а затем он видит 10 и преобразует 10 в строка. Добавляя круглые скобки, вы можете заставить его сначала выполнить добавление, а затем преобразовать в строку.

+0

Да, теперь я понимаю, и это имеет смысл. Другой пользователь написал код, изменив порядок в круглых скобках (но не добавляя лишние), а также запустил. Поэтому я полагаю, что в этом случае порядок очень важен. Я новичок в Javascript, и я все еще пытаюсь понять его :). Большое спасибо. –

1
var theNumber = Number(prompt("Pick a number", "")); 
      alert("Your number is the sum of " + (theNumber + 10)); 
+0

Это сработало отлично, много. Я новичок в Javascript, и это, казалось, самый простой способ сделать это. –

+0

да, очень легко, но я советую вам сначала изучить книгу js, если вы этого не сделали. – dsharew

-1
alert("Your number is the sum of " + (theNumber + parseInt(10))); 

Функция parseInt() анализирует строку и возвращает целое число.

+0

добавьте основание для парсинта. ie9 по умолчанию - base 8. – dewd

+0

Thx для ответа ... до сих пор не добрался до этой функции, поэтому я не уверен, как это работает. Все же :). –

+0

в основном в javascript все строка, так что даже вы говорите var a = 10; Он будет считать его как строку, поэтому для преобразования этого строкового значения в действительное целое число можно использовать функцию parseInt(), которая преобразует ее в целочисленное значение. – eLemEnt

0

Предшествующее предупреждение с преобразованием в ряд (JavaScript Number() Function) заполнит theNumber с тем, что это действительно номер:

var theNumber = Number(prompt("Pick a number", "")); alert(theNumber + 10 + " sums to your number");

+0

Ваш код очень похож на мой, просто порядок внутри круглых скобок отличается. Почему это работает? Это потому, что оно работает слева направо? –

+0

Его просто так, как JS разбирает, до тех пор, как его дело с номерами, его число. Как только строка приходит, все ее строки (т. Е. Строки имеют приоритет над числами). –

Смежные вопросы