Another question pregunta sobre el significado del fragmento de código a >>> 0
en Javascript. Resulta que es una forma inteligente de garantizar que una variable sea un entero de 32 bits sin signo.¿Cuál es la forma idiomática de realizar una conversión/tipo de letra "entero" en javascript?
Esto es bastante limpio, pero no me gusta por dos razones.
- La intención de la expresión no está clara, al menos no para mí.
- No funciona para los números negativos
Esto me lleva a preguntar: ¿Cuál es la forma más idiomática de convertir un valor arbitrario a un "número entero" en Javascript? Debería funcionar para enteros con signo, no solo números no negativos. Los casos en los que esto se rompe debido al hecho de que los enteros son solo flotantes disfrazados en Javascript son aceptables, pero deben ser reconocidos. No debe devolver undefined
o NaN
en ningún caso (estos no son enteros), pero devuelve 0
para valores no numéricos.
No hace exactamente lo que quiero. 'parseInt (" not an int, damnit ")' devuelve 'NaN'. – fmark
@fmark: respuesta ajustada. –
El '| 0' que mencionó funciona bastante bien: las cadenas son 0,' verdadero' es 1, '28.3' es 28,' -28.3' es -28, NaN (como en, por ejemplo '(+" foo) ") | 0') es 0,' undefined' es 0. ¿Me perdí algo? – Amadan