Nó hoàn toàn an toàn.
(Như RobG chỉ ra, tôi đã không cung cấp một tham chiếu đến các quy tắc cầu DOM/JS bản thân và ông kêu gọi thận trọng FWIW, tôi tin rằng -. Nhưng không có tài liệu tham khảo để thuyết phục nhà nước - mà ToInteger
là Dưới đây là một jsfiddle cho thấy thời gian chờ được truyền như một chuỗi, một phao, và một tích phân (cùng loại như nổi trong JS) mà hoạt động tốt trong FF8 và IE9. Phản hồi chào mừng.)
là vì the DOM interface only accepts integers cho sự chậm trễ trong setTimeout/setInterval
- yup, chúng được xác định trong DOM, không phải trong ECMAScript. Giá trị trễ được chuyển đổi thích hợp thành giá trị tích phân trước tiên (và trong khía cạnh này hàm [JS-internal] ToInteger
được gọi thực hiện cắt ngắn *).
Tuy nhiên, những con số ví dụ sẽ thực sự mang lại kết quả hơi khác nhau (mặc dù nó có thể không được chú ý) :-)
này là vì, 50/3
(16.66andsomemore
->16
) và 17
định timeout khác nhau .
Mã hóa vui vẻ.
* ToInteger
được định nghĩa là sign(number) * floor(abs(number))
, trừ các trường hợp đặc biệt. Xem Phần 9.4 của đặc tả ECMAScript phiên bản thứ 5.
Nguồn
2011-12-12 01:27:35
Cách thức được xác định, đối số thứ hai là "số miligiây". Bây giờ, nếu số đó phải là tự nhiên không được xác định ... –
@ ŠimeVidas Nó được xác định hoàn toàn. Xem đặc điểm kỹ thuật DOM ;-) –