tutorial soljson smart remix org optimize online false español curso 59dbf8f1 javascript integer idioms

javascript - soljson - smart contracts ethereum



¿Cuál es la forma idiomática de realizar una conversión/conversión de tipo "entero" en JavaScript? (1)

parseInt es la forma "más idiomática", ya que describe exactamente lo que quiere que haga. El inconveniente de parseInt es que devuelve NaN si NaN una cadena no numérica.

Otro método es ORing bit a bit por 0 ( | 0 ), que también funciona para números negativos. Además, devuelve 0 cuando se usa en una cadena no numérica. Otra ventaja es que es un poco más rápido que el parseInt al usarlo en números reales; es más lento al alimentarlo con cuerdas.

  • 12.4 | 0 12.4 | 0 salidas 12
  • -12.4 | 0 -12.4 | 0 salidas -12
  • "12.4" | 0 "12.4" | 0 salidas 12
  • "not a number" | 0 "not a number" | 0 salidas 0

Otra 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.

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 números negativos

Esto me lleva a preguntar: ¿Cuál es la forma más idiomática de convertir un valor arbitrario a un "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 debería volver undefined o NaN en ningún caso (estos no son enteros), pero devuelve 0 para valores no numéricos.