Esta traducción está incompleta. Por favor, ayuda a traducir este artículo del inglés.
Este capítulo presenta la forma de trabajar con números y fechas en JavaScript.
Números
En JavaScript, todos están en double-precision 64-bit binary format IEEE 754 (i.e. a número entre -(253 -1) and 253 -1). No existe un tipo específico de números enteros. Además de ser capaz de representar los números de punto flotante, el tipo de número tiene tres valores simbólicos: +
Infinity
, -
Infinity
, y NaN
(not-a-number). Ver también JavaScript data types and structures para el contexto con otros tipos primitivos en JavaScript.
Puede utilizar cuatro tipos de literales numéricos: decimal, binario, octal y hexadecimal.
Los números decimales
1234567890 42 // Caution when using leading zeros: 0888 // 888 parsed as decimal 0777 // parsed as octal in non-strict mode (511 in decimal)
Tenga en cuenta que los literales decimales pueden comenzar con un cero (0), seguido de otro dígito decimal, pero si la cifra siguiente después de que el 0 inicial es menor que 8, el número consigue analizada como un número octal.
Los números binarios
Sintaxis número binario utiliza un cero seguido de una minúscula o mayúscula América letra "B" (0b o 0B). Si los dígitos después del 0b no son 0 o 1, la siguiente SyntaxError
se lanza: "falta dígitos binarios después 0b".
var FLT_SIGNBIT = 0b10000000000000000000000000000000; // 2147483648 var FLT_EXPONENT = 0b01111111100000000000000000000000; // 2139095040 var FLT_MANTISSA = 0B00000000011111111111111111111111; // 8388607
Números octales
Sintaxis número Octal utiliza un cero a la izquierda. Si los dígitos después del 0 se encuentran fuera del rango de 0 a 7, el número se interpreta como un número decimal.
var n = 0755; // 493 var m = 0644; // 420
Los números hexadecimales
Sintaxis número hexadecimal utiliza un cero seguido de una minúscula o mayúscula letra latina líder "X" (0x
or 0X)
. Si los dígitos después 0x están fuera del rango(0123456789ABCDEF), la siguiente SyntaxError
es lanzado: "Identificador comienza inmediatamente después literal numérico".
0xFFFFFFFFFFFFFFFFF // 295147905179352830000 0x123456789ABCDEF // 81985529216486900 0XA // 10
Número de objetos
El incorporado Number
objeto tiene propiedades para constantes numéricas, como valor máximo, not-a-número, y el infinito. No puede cambiar los valores de estas propiedades y los utilizan de la siguiente manera:
var biggestNum = Number.MAX_VALUE; var smallestNum = Number.MIN_VALUE; var infiniteNum = Number.POSITIVE_INFINITY; var negInfiniteNum = Number.NEGATIVE_INFINITY; var notANum = Number.NaN;
Siempre se refiere a una propiedad del objeto Number predefinido como se muestra arriba, y no como una propiedad de un objeto Number se crea a sí mismo.
La siguiente tabla resume las propiedades del objeto Number.
Property | Description |
---|---|
Number.MAX_VALUE |
El número más grande representable |
Number.MIN_VALUE |
El número más pequeño representable |
Number.NaN |
"No es un número" valor especial |
Number.NEGATIVE_INFINITY |
Valor infinito negativo Especial; regresó el desbordamiento |
Number.POSITIVE_INFINITY |
Valor infinito positivo Especial; regresó el desbordamiento |
Number.EPSILON |
Diferencia entre uno y el valor más pequeño mayor que uno que se puede representar como una Number . |
Number.MIN_SAFE_INTEGER |
Número entero de seguridad mínima en JavaScript. |
Number.MAX_SAFE_INTEGER |
Entero máximas seguras en JavaScript. |
Method | Description |
---|---|
Number.parseFloat() |
Analiza un argumento de cadena y devuelve un número de punto flotante. Igual que lo global parseFloat() funcion. |
Number.parseInt() |
Analiza un argumento de cadena y devuelve un número entero de la raíz o base especificada. Igual que lo global parseInt() funcion. |
Number.isFinite() |
Determina si el valor pasado es un número finito. |
Number.isInteger() |
Determina si el valor pasado es un entero. |
Number.isNaN() |
Determina si el valor pasado es NaN . Versión más robusta de lo global originales isNaN() . |
Number.isSafeInteger() |
Determina si el valor proporcionado es un número que es un número entero seguro. |
El prototipo Número proporciona métodos para recuperar información de objetos número en varios formatos.La siguiente tabla resume los métodos de Number.prototype
.
Method | Description |
---|---|
toExponential() |
Devuelve una cadena que representa el número en notación exponencial. |
toFixed() |
Devuelve una cadena que representa el número en notación de coma fija. |
toPrecision() |
Devuelve una cadena que representa el número con una precisión especificada en notación de coma fija. |
Objeto Math
El incorporado Math
objeto tiene propiedades y métodos para las constantes y funciones matemáticas. Por ejemplo, la propiedad PI del objeto Math tiene el valor de pi (3.141...), que se usaría en una aplicación como :
Math.PI
Del mismo modo, las funciones matemáticas estándar son métodos de Math. Estos incluyen trigonométricas, logarítmicas, exponenciales, y otras funciones. Por ejemplo, si desea utilizar la función seno trigonométrico, usted escribiría
Math.sin(1.56)
Tenga en cuenta que todos los métodos trigonométricos de Matemáticas toman argumentos en radianes.
La siguiente tabla resume los métodos del objeto Math.
Method | Description |
---|---|
abs() |
Valor Abasoluto |
sin() , cos() , tan() |
Funciones trigonométricas estándar; argumento en radianes |
asin() , acos() , atan() , atan2() |
Funciones trigonométricas inversas; devolver valores en radianes |
sinh() , cosh() , tanh() |
Funciones trigonométricas hiperbólicas; devolver valores en radianes. |
asinh() , acosh() , atanh() |
Funciones trigonométricas hiperbólicas inversas; devolver valores en radianes. |
Funciones exponenciales y logarítmicas. | |
floor() , ceil() |
Devoluciones mayor / menor entero inferior / superior o igual al argumento |
min() , max() |
Devuelve la lista de menor o mayor (respectivamente) de números separados por comas de los argumentos |
random() |
Devuelve un número aleatorio entre 0 y 1. |
round() , fround() , trunc() , |
Completan y funciones de truncamiento. |
sqrt() , cbrt() , hypot() |
Raíz cuadrada, raíz cúbica, Raíz cuadrada de la suma de los argumentos cuadrados. |
sign() |
El signo de un número, que indica si el número es positivo, negativo o cero. |
clz32() ,imul() |
Número de líder cero bits en la representación binaria de 32 bits. El resultado de la multiplicación de 32 bits C-como de los dos argumentos. |
A diferencia de muchos otros objetos, nunca se crea un objeto de Matemáticas de los tuyos. Siempre se utiliza el objeto incorporado en Matemáticas.
Objeto Date
JavaScript no tiene un tipo de datos de fecha. Sin embargo, puede utilizar el Date
objeto y sus métodos para trabajar con fechas y horas en sus aplicaciones. El objeto Date cuenta con un gran número de métodos para configurar, obtener y manipular fechas. No tiene ninguna propiedad.
JavaScript maneja fechas de manera similar a Java. Los dos idiomas tienen muchos de los mismos métodos de la fecha, y los dos idiomas almacenar fechas como el número de milisegundos desde el 1 de enero de 1970, 00:00:00.
La gama Fecha objeto es -100000000 día a 100.000.000 día relativos a 01 de enero 1970 UTC.
Para crear un objeto Date:
var dateObjectName = new Date([parameters]);
Donde dateObjectName es el nombre del objeto Date que se está creando; que puede ser un nuevo objeto o una propiedad de un objeto existente.
Llamando Fecha sin la nueva palabra clave simplemente convierte la fecha prevista para una representación de cadena.
Los parámetros de la sintaxis anterior pueden ser cualquiera de los siguientes:
- Nada: crea la fecha y hora de hoy. por ejemplo,
today = new Date();
. - Una cadena que representa una fecha en la forma siguiente: "Mes día, año horas: minutos: segundos". Por ejemplo,
var Xmas95 = new Date("December 25, 1995 13:30:00")
. Si omite horas, minutos o segundos, el valor se establece en cero. - Un conjunto de valores enteros para año, mes y día. Por ejemplo,
var Xmas95 = new Date(1995, 11, 25)
. - Un conjunto de valores enteros para año, mes, día, hora, minutos y segundos. Por ejemplo,
var Xmas95 = new Date(1995, 11, 25, 9, 30, 0);
.
Métodos del objeto Date
Los métodos Fecha de objetos para la manipulación de fechas y horas caen en estas amplias categorías:
- "set" métodos, para el establecimiento de los valores de fecha y hora en
Date
objects. - "get" métodos, para obtener los valores de fecha y hora de
Date
objects. - "to" métodos, para devolver valores de cadena de
Date
objects. - parse and UTC métodos, para el análisis
Date
strings.
Con los métodos "get" y "set" puede obtener y establecer segundos, minutos, horas, días del mes, día de la semana, meses y años por separado. Hay un método getDay que devuelve el día de la semana, pero ningún método setDay correspondiente, ya que el día de la semana se ajusta automáticamente. Estos métodos utilizan números enteros para representar estos valores como sigue:
- Seconds y minutes: 0 a59
- Hours: 0 a 23
- Day: 0 (Domingo) a 6 (sábado)
- Date: 1 al 31 (día del mes)
- Months: 0 (enero) a 11 (diciembre)
- Year: año desde 1900
Por ejemplo, suponga que define la siguiente fecha:
var Xmas95 = new Date("December 25, 1995");
Then Xmas95.getMonth()
returns 11, and Xmas95.getFullYear()
returns 1995.
Los métodos getTime y setTime son útiles para comparar las fechas. El método getTime devuelve el número de milisegundos desde el 1 de enero de 1970, 00:00:00 para un objeto Date.
Por ejemplo, el siguiente código muestra el número de días para que termine el año en curso:
var today = new Date(); var endYear = new Date(1995, 11, 31, 23, 59, 59, 999); // Set day and month endYear.setFullYear(today.getFullYear()); // Set year to this year var msPerDay = 24 * 60 * 60 * 1000; // Number of milliseconds per day var daysLeft = (endYear.getTime() - today.getTime()) / msPerDay; var daysLeft = Math.round(daysLeft); //returns days left in the year
En este ejemplo se crea un objeto Date llamado hoy que contiene la fecha de hoy. A continuación, crea un objeto Date llamado endYear y establece el año para el año en curso. Luego, utilizando el número de milisegundos por día, calcula el número de días entre hoy y endYear, utilizando getTime y redondeando a un número entero de días.
El método de análisis es útil para la asignación de valores de cadenas de fecha a los objetos Fecha existentes. Por ejemplo, el código siguiente utiliza analizar y setTime para asignar un valor de fecha al objeto IPOdate:
var IPOdate = new Date(); IPOdate.setTime(Date.parse("Aug 9, 1995"));
Ejemplo
En el siguiente ejemplo, la función JSClock () devuelve la hora en el formato de un reloj digital.
function JSClock() { var time = new Date(); var hour = time.getHours(); var minute = time.getMinutes(); var second = time.getSeconds(); var temp = "" + ((hour > 12) ? hour - 12 : hour); if (hour == 0) temp = "12"; temp += ((minute < 10) ? ":0" : ":") + minute; temp += ((second < 10) ? ":0" : ":") + second; temp += (hour >= 12) ? " P.M." : " A.M."; return temp; }
La función JSClock crea primero un nuevo objeto Date llamado tiempo; ya que no se dan argumentos, el tiempo se crea con la fecha y la hora actual. Entonces las llamadas a los métodos getHours, getMinutes y métodos getSeconds asignar el valor de la hora actual, los minutos y segundos a horas, minutos y segundos.
Los siguientes cuatro declaraciones construir un valor de cadena en función del tiempo. La primera sentencia crea una variable temp, asignándole un valor utilizando una expresión condicional; si hora es mayor que 12, (hora - 12), de lo contrario simplemente horas, a menos que hora es 0, en cuyo caso se convierte en 12.
La siguiente sentencia añade un valor minutos a temp. Si el valor de minutos es menor que 10, la expresión condicional añade una cadena con un precedente cero; de lo contrario se añade una cadena con dos puntos de demarcación. A continuación, una declaración anexa un valor segundos a la temperatura de la misma manera.
Por último, una expresión condicional añade "P. M." a temp si hora es 12 o mayor; de lo contrario, se anexa "A. M." a temp.