2013-02-15 33 views
6

Tôi đang làm một bài tập lập trình đơn giản mà giáo viên đưa cho chúng tôi, và tôi nhận thấy nhiều lần trong Javascript, tôi phải chia số cho 1, nếu không nó sẽ trả về giá trị vô lý. Bất kỳ lời giải thích? Tôi có một jsfiddle http://jsfiddle.net/TpNay/1/Mục đích của việc chia cho 1 javascript

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

Nếu bạn nhìn vào dòng 22, và đưa ra sự phân chia bằng 1, và nhấn tạo ra, nó sẽ trở lại độ dài lố bịch Cảm ơn

Trả lời

9

Nó làm cho loại Javascript juggle buộc giá trị của document.getElementById('width').value để trở thành số.

Một cách tốt hơn để làm điều đó sẽ là parseInt(document.getElementById('width').value, 10)

+2

Cụ thể, "độ dài lố bịch" bạn đề cập đến là vì dấu + bị quá tải cho các chuỗi, và do đó bạn thấy Javascript concatenating hai giá trị thay vì tổng hợp chúng khi thứ hai là một chuỗi. – Interrobang

+0

đừng quên chuyển tham số 'radix' thứ hai sang' parseInt'. – jbabey

+2

Tại sao 'parseInt'" tốt hơn "? Chỉ là một cách khác để đạt được điều tương tự. – bfavaretto

Các vấn đề liên quan