1. Conversión de tipo
1.Convertir a cadena
Lo interesante de los valores booleanos, números y primitivas de cadena de ECMAScript es que son pseudoobjetos, lo que significa que en realidad tienen propiedades y métodos.
como:
Copie el código de código de la siguiente manera:
var sColor = "azul";
alert(sColor.length);//genera "4"
En resumen, los tres valores primitivos principales, valores booleanos, números y cadenas, tienen métodos toString(). Todos los objetos definidos por ECMAScript tienen un método toString(), ya sea un pseudoobjeto o un objeto real.
El método booleano toString() simplemente genera "verdadero" o "falso", y el resultado está determinado por el valor de la variable:
Copie el código de código de la siguiente manera:
var bEncontrado = falso;
alert(bFound.toString());//resulta "falso"
El método toString() del tipo Número es especial. Tiene dos modos, a saber, el modo predeterminado y el modo base. Usando el modo predeterminado, el método toString() solo usa la cadena correspondiente para generar el valor numérico (ya sea). un número entero, un número de coma flotante o un método de notación científica).
Copie el código de código de la siguiente manera:
var iNúm1 = 10;
var fNúm2 = 10,0;
alert(iNum1.toString()); //genera "10"
alert(fNum2.toString()); //genera "10"
Usando el modo base del método toString() del tipo Número, los números se pueden generar en diferentes bases (bases).
Copie el código de código de la siguiente manera:
var iNúm = 10;
alert(iNum.toString(2)); //genera "1010"
alert(iNum.toString(8)); //genera "12"
alert(iNum.toString(16)); //genera "A"
2. Convertir a números
ECMAScript proporciona dos métodos para convertir valores primitivos no numéricos en números, a saber, parseInt() y parseFloat().
Nota: Solo cuando estos métodos se llamen en el tipo Cadena (excepto Número), se ejecutarán correctamente. Todos los demás tipos devolverán NaN.
Por ejemplo:
Copie el código de código de la siguiente manera:
var iNum1 = parseInt("1234blue");//devuelve 1234
var iNum2 = parseInt("oxA"); //devuelve 10
var iNum3 = parseInt("22.5"); //devuelve 22
var iNum4 = parseInt("azul"); //devuelve NaN
El método parseInt() también tiene un modo base, que puede convertir una cadena binaria, octal, hexadecimal o cualquier otra cadena base en un entero decimal. El segundo parámetro especifica qué base analizar.
Copie el código de código de la siguiente manera:
var iNum1 = parseInt("AF",16);// devuelve 175
var iNum2 = parseInt("10",2 // devuelve 2);
var iNum3 = parseInt("10",8); //devuelve 8
var iNum4 = parseInt("10",10); //devuelve 10
Nota: Si el número decimal contiene ceros a la izquierda, es mejor utilizar la base 10; de lo contrario, obtendrá un valor octal.
Copie el código de código de la siguiente manera:
var iNum1 = parseInt("010"); // devuelve 8
var iNum2 = parseInt("010",8); //devuelve 8
var iNum3 = parseInt("010",10);//devuelve 10
El método parseFloat() es similar al método parseInt(). Examina cada carácter desde la posición 0 hasta que se encuentra el primer carácter no válido y luego convierte la cadena antes del carácter en un número. Para este método, el primer punto decimal es un carácter válido. Si se utilizan dos puntos decimales, el segundo punto decimal se considerará inválido. Otra diferencia al utilizar este método es que la cadena debe representar un número de punto flotante en forma decimal.
Copie el código de código de la siguiente manera:
var fNum1 = parseFloat("1234blue"); //devuelve 1234.0
var fNum2 = parseFloat("0xA"); //devuelve NaN
var fNum3 = parseFloat("22.5"); //devuelve 22.5
var fNum4 = parseFloat("22.34.5");//devuelve 22.34
var fNum5 = parseFloat("0908");//devuelve NaN
var fNum6 = parseFloat("azul");//devuelve NaN
3. Conversión de tipo forzada
Los 3 tipos de conversiones disponibles en ECMAScript son los siguientes:
(1).Booleano(valor)
Convierta el valor dado a tipo booleano.
La función Boolean() devuelve verdadero cuando el valor a convertir es una cadena, un número distinto de cero u un objeto con al menos un carácter. Si el valor es una cadena vacía, el número 0, indefinido o nulo, devolverá falso.
como:
Copie el código de código de la siguiente manera:
var b1 = Booleano(""); // falso;
var b2 = Booleano("hola");//verdadero
var b3 = booleano(100);//verdadero
var b4 = Booleano(nulo);//falso
var b5 = booleano(0);//falso
var b6 = Booleano(nuevo Objeto());//verdadero
(2).Número(valor)
Convierte el valor dado en un número (puede ser un número entero o de punto flotante).
Recuerde también que los métodos parseInt() y parseFloat() solo convierten la cadena antes del primer carácter no válido, por lo que "4.5.6" se convertirá a "4.5". Al convertir con Number(), "4.5.6" se devolverá NaN porque el valor completo de la cadena no se puede convertir en un número. Si la cadena se puede convertir completamente, Number() determinará si se llama al método parseInt() o al método parseFloat().
como:
Copie el código de código de la siguiente manera:
Número(falso);//0
Número(verdadero);//1
Número(indefinido);//NaN
Número(nulo);//0
Número("5.5");//5.5
Número("56");//56
Número("5.6.7");//NaN
Número(nuevo objeto());//NaN
Número(100);//100
(3).Cadena(valor)
Convierte el valor dado en una cadena.
La única diferencia con llamar al método toString() es que convertir un valor nulo o indefinido produce una cadena sin generar un error:
Copie el código de código de la siguiente manera:
var s1 = Cadena(nulo);//"nulo"
var oNulo = nulo;
var s2 = oNull.toString();//provoca un error
2. Tipo de referencia
Los tipos de referencia generalmente se denominan clases, lo que significa que cuando se encuentra un valor de referencia, se procesa el objeto. ECMAScript define "definiciones de objetos" que son lógicamente equivalentes a clases en otros lenguajes de programación.
1.Clase de objeto
Todas las clases en ECMAScript se heredan de esta clase y todas las propiedades y métodos de la clase Objeto aparecerán en otras clases (anuladas).
Propiedades de la clase de objeto:
(1).Constructor----Referencia (puntero) a la función que crea el objeto. Para la clase Objeto, este puntero apunta a la función object() original.
(2).Prototipo----Una referencia al prototipo del objeto. Para todas las clases, devuelve una instancia del objeto Object de forma predeterminada.
Métodos de clase de objeto:
(1).HasOwnProperty(propiedad)----Determine si el objeto tiene un atributo específico. La propiedad debe especificarse como una cadena (por ejemplo: o.hasOwnProperty("nombre")).
(2).IsPrototypeOf(object)----Determine si el objeto es el prototipo de otro objeto.
(3).PropertyIsEnumerable(propiedad)----Determine si la propiedad dada se puede enumerar usando la declaración for..in.
(4).ToString()----Devuelve la representación de cadena original del objeto. Las diferentes implementaciones de ECMAScript tienen valores diferentes.
(5).ValueOf()----Devuelve el valor original que mejor se adapta al objeto. Para muchas clases, el valor devuelto por este método es el mismo que el valor devuelto de toString().
2.Clase booleana
Los objetos booleanos rara vez se utilizan en ECMAScript e incluso si lo fueran, no son fáciles de entender.
Por ejemplo:
Copie el código de código de la siguiente manera:
var oFalseObject = nuevo booleano (falso);
var bResult = oFalseObject && true;//da salida verdadera;
Motivo: en las expresiones booleanas, todos los objetos se convierten automáticamente a verdadero.
3.clase numérica
Los valores especiales como Number.MAX_VALUE son propiedades estáticas de la clase Number. Para obtener el valor original de Número de un objeto numérico, simplemente use el método valueOf():
var iNumber = oNumberObject.valueOf();
Además de los métodos estándar heredados de la clase Objeto, la clase Número tiene varios métodos especializados para manejar valores numéricos.
Método toFixed():
Devuelve una representación de cadena de un número con el número especificado de decimales. El método puede representar números con 0 a 20 decimales. Los valores fuera de este rango provocarán un error.
como:
Copie el código de código de la siguiente manera:
var oNumberObject = nuevo Número(99);
aler(oNumberObject.toFixed(2));//genera "99.00"
Método toExponential():
Devuelve la representación en cadena del número en notación científica. Este método también toma un parámetro que especifica el número de decimales que se generarán. Por ejemplo:
Copie el código de código de la siguiente manera:
var oNumberObj = nuevo Número(99);
alert(oNumberObj.toExponential(1));//genera "9.9e+1"
Método toPrecision():
Devuelve una forma predeterminada o exponencial de un número, según qué forma tenga más sentido. Tiene un argumento, que es el número total de dígitos utilizados para representar el número (excluyendo el exponente).
Copie el código de código de la siguiente manera:
var oNumberObj = nuevo Número(99);
alert(oNumberObj.toPrecision(1));// genera "1e+2" ==100
Como puede verse, el método toPrecision() redondea el número para obtener un número lo más cercano posible al valor real.
como:
Copie el código de código de la siguiente manera:
var oNumberObj = nuevo Número(99);
alert(oNumberObj.toPrecision(2));// genera "99"
alert(oNumberObj.toPrecision(3));// genera "99.0"
Los métodos toFixed(), toExponential() y toPrecision() realizan operaciones de redondeo para representar correctamente un número con el número correcto de decimales.
Método toLocaleString():
Se puede mostrar en el formato de la página, por ejemplo, 5210,50 se muestra como 5210,50, pero si se usa su valor, debe reemplazarse en el formato parseFloat($("N_YJJE").value.replace(// ,/g, "")); Elimine la coma y obtenga su valor.
Nota: Al igual que los objetos booleanos, los objetos numéricos también son importantes, pero deben usarse con moderación para evitar posibles problemas. Siempre que sea posible, utilice la representación bruta de números.
4.clase de cuerda
El método valueOf() y el método toString() del objeto String devuelven el valor original del tipo String:
Copie el código de código de la siguiente manera:
alert(oStringObj.valueOf() == oStringObj.toString());//da salida "verdadero"
La clase String tiene el atributo longitud, que es el número de caracteres de la cadena:
Copie el código de código de la siguiente manera:
var oStringObj = new String("hola mundo");
alerta (oStringObj.length); genera "11"
Nota: Incluso si la cadena contiene caracteres de doble byte, cada carácter cuenta como un solo carácter.
método charAt():
Devuelve una cadena que contiene el carácter en la posición especificada:
Copie el código de código de la siguiente manera:
var oStringObj = new String("hola mundo");
alerta(oStringObj.charAt(1)); genera "e"
Método charCodeAt():
Devuelve una cadena que contiene el código de carácter en la posición especificada:
Copie el código de código de la siguiente manera:
var oStringObj = new String("hola mundo");
alerta(oStringObj.charCodeAt(1)); genera "101"
método concat():
Se utiliza para concatenar una o más cadenas con el valor original de un objeto String. El objeto String original permanece sin cambios.
Copie el código de código de la siguiente manera:
var oStringObj = new String("hola ");
var sResult = oStringObj.concat("mundo");//oStringObj+"mundo";
alert(sResult);//genera "hola mundo"
alert(oStringObj);//muestra "hola"
Los métodos indexOf() y lastIndexOf() devuelven la posición de la subcadena especificada en otra cadena (o -1, si no se encuentra la subcadena). La diferencia entre estos dos métodos es que indexOf() comienza a buscar la subcadena desde el principio de la cadena (posición 0), mientras que lastIndexOf() comienza a buscar la subcadena desde el final de la cadena.
localeCompare(), compara cadenas (compare en orden alfabético, las últimas son más grandes). Este método tiene un parámetro: la cadena que se va a comparar y devuelve uno de los tres valores siguientes:
1. Si el objeto String está ordenado alfabéticamente antes de la cadena en el parámetro, se devuelve un número negativo (el más común es -1, pero el retorno real lo determina la implementación).
2. Si el objeto String es igual a la cadena en el parámetro, se devuelve 0.
3. Si el objeto String está ordenado alfabéticamente después de la cadena en el parámetro, devuelve un número positivo (el más común es 1, pero el retorno real lo determina la implementación)
Métodos slice() y substring():
Ambos métodos devuelven subcadenas de la cadena que se va a procesar y ambos aceptan uno o dos parámetros. El primer parámetro es la posición inicial de la subcadena que se obtendrá y el segundo parámetro es la posición antes de que se obtenga el final de la subcadena (los caracteres en la posición terminal no están incluidos en el valor devuelto). Si se omite el segundo argumento, el bit de terminación tiene por defecto la longitud de la cadena. Ninguno de estos métodos cambia el valor del propio objeto String.
Copie el código de código de la siguiente manera:
var oStringObj = new String("hola mundo");
alert(oStringObj.slice(3));//genera "lo world"
alert(oStringObj.slice(3,7));//salida "baja"
Nota: Para parámetros negativos, el método slice() agregará la longitud de la cadena al parámetro y el método substring() lo tratará como 0 (es decir, se ignorará).
Copie el código de código de la siguiente manera:
var oStringObj = new String("hola mundo");
alert(oStringObj.slice(-3));//las salidas "rld" equivalen a la recuperación inversa
alert(oStringObj.substring(-3));//genera "hola mundo"
alert(oStringObj.slice(3,-4));//genera "baja"
alert(oStringObj.substring(3,-4));//da salida "hel" substring() siempre usa el número menor como bit inicial y el número mayor como bit final.
toLowerCase(), toLocalLowerCase(), toUpperCase() y toLocaleUpperCase():
Los dos primeros métodos convierten la cadena a minúsculas y los dos últimos métodos se utilizan para convertir la cadena a mayúsculas. Los métodos toLocalLowerCase() y toLocaleUpperCase() se implementan en función de regiones específicas.
Recuerde: todas las propiedades y métodos de la clase String se pueden aplicar a valores primitivos de String porque son pseudoobjetos.
5.instancia del operador
Hay un problema al usar el tipo de referencia para almacenar valores cuando se usa el operador typeof. No importa a qué tipo de objeto se haga referencia, devuelve "objeto". El método instancia de requiere que los desarrolladores confirmen explícitamente que el objeto es de un tipo específico. como:
Copie el código de código de la siguiente manera:
var oStrObj = new String("hola mundo");
alert(oStrObj instancia de String);//da salida "verdadero"