Resumen
Solo pensé en tres métodos por ahora. Si los lectores piensan en otros buenos métodos, también pueden comunicarse.
parsética
bit operador
Math.floor Math.ceil
Descripción
1. Parseint
1. Ejemplo
parseInt ("13Nash"); // 13ParseInt ("") // nanparseInt ("0xa") // 10 (hexadecimal) parseint ("13") // 13parseint ("070") // es3 es 56 (octal) es5 es 70parseint (070) // eS3 y es5 son 56parseint (22.5) ///////2)2. Reglas de conversión:
(1). Según el ejemplo (1), el parseint se analizará hasta que se detenga cuando no sea número
(2). Según el ejemplo (2), es nan cuando analiza una cadena vacía, en lugar de 0
(3). Según el ejemplo (3), la parseint puede convertir los números hexadecimales en decimal
(4). Según el ejemplo (4), ParseInt ignora los espacios de la cadena
3. Desventajas:
(1). Según el ejemplo (5), podemos saber que la parseint es incompatible al convertir las matrices octales. ES3 considerará 070 como un valor octal, pero ES5 considerará 070 como decimal.
(2). Según el ejemplo (6) (7), podemos saber que cuando se ejecuta ParseInt, primero convertirá el parámetro en una cadena y luego lo ejecutará en un entero
4. Explicación: ¿Por qué (5) (6) las ejecuciones convierten 070 en enteros, pero los resultados son diferentes? Este es también el segundo punto en cómo resolver las deficiencias.
Porque al leer la documentación oficial que vi si la cadena no es una cadena, entonces se convierte a una. Este pasaje. Es decir, si el parámetro no es una cadena, primero la convertirá en una cadena y luego en un entero. Por ejemplo, ParseInt (070) en el ejemplo (6) en realidad convierte 070 en una cadena primero. Puede probar 070+ "" o cadena (070) y sabe que 070 se convertirá en "56" porque 070 es un sistema octal. Luego se convierte en parseint ("56"), y el número entero final es 56. Ya sea que esté en ES3 o ES5, es 56
2. Operador de bits
1. Ejemplo
console.log (0 | "123.45") // 123console.log (0 | 123.45) // 123console.log (0 ^ 123.45) // 123console.log (~~ 123.45) // 123
2. Principio: JavaScript no tiene el concepto de enteros, y todos los tipos numéricos son números de punto flotante de doble precisión. Al usar operadores de bits, primero convertirá el operando en un entero, que es conveniente para la operación. 0 y otros valores no cambiarán el valor de operación
3. Math.floor y matemáticas.
1. Ejemplo
console.log (math.floor (2.3) // 2console.log (math.floor (-2.3) //-3console.log (math.ceil (2.3) // 3console.log (math.ceil (-2.3) //-2
2. Los dos son insuficientes: Math.Loor obtiene el entero mínimo del número; mientras que Math.ceil obtiene el entero máximo. Entonces, si redondeamos -2.3, obtendríamos -2, pero si usamos Math.floor, obtendríamos -3. 2.3 usa Math.ceil para obtener 3, pero solo necesitamos 2.
3. Resolver:
// Definir una función de función por ti mismo getint (val) {return val> 0? Math.floor (val): Math.ceil (val);}