2013-02-15 13 views
6

Pracowałem nad prostym ćwiczeniem programistycznym, które dostarczył mi mój nauczyciel, i zauważyłem kilka razy, że w JavaScript, muszę podzielić liczbę przez 1, w przeciwnym razie zwróci śmieszną wartość. Jakieś wyjaśnienia? Mam jsfiddle http://jsfiddle.net/TpNay/1/Cel dzielenia przez 1 javascript

var widthrand=Math.floor(Math.random()*widthRange); width=widthrand + document.getElementById('width').value/1;

Jeśli spojrzeć na linię 22 i wyjąć podzielić przez 1, a następnie kliknij wygenerować, zwróci śmieszne długościach Dzięki

Odpowiedz

9

To sprawia, że ​​typ JavaScript żongluj wartością document.getElementById('width').value, aby stać się numeryczną.

Lepszym sposobem na to byłoby parseInt(document.getElementById('width').value, 10)

+2

Konkretnie, „śmieszne długości” można wymienić są, ponieważ znak + jest przeciążony dla ciągów, a więc można zobaczyć JavaScript łącząc dwie wartości zamiast zsumowanie je, gdy drugi to ciąg. – Interrobang

+0

nie zapomnij przekazać drugiego parametru 'radix' do' parseInt'. – jbabey

+2

Dlaczego 'parseInt' jest" lepszy "? To tylko inny sposób na osiągnięcie tego samego. – bfavaretto