Descargar

Tutorial de Jscript (página 3)

Enviado por Everts Garay


Partes: 1, 2, 3, 4, 5

Creación avanzada de objetos

Usar constructores para crear objetos

En Microsoft JScript, se utilizan los constructores para crear y generar una clase de objetos. Se llama a un constructor con la instrucción new. Devuelve lo que construye.

El caso especial del constructor Function le permite crear funciones que son anónimas. Una función anónima es una función que no tiene un nombre. Por ejemplo, puede usar el constructor Function para generar una función inmediatamente como una de las instrucciones que aparece dentro de otra función. Esa función, a la que sólo se llama desde una ubicación, no necesita un nombre.

En el siguiente ejemplo, la función anónima genera una línea de una lista de "nombre-y-dirección-de-correo-electrónico". Comprueba el valor de la variable nombrePrimero para decidir si debe colocar primero el nombre o el apellido y el valor de la variable nombreCorreoPrimero para decidir si debe colocar primero el nombre o el alias de correo electrónico. El ejemplo asume que los valores de nombrePrimero y nombreCorreoPrimero se establecen en otro lugar.

for (j = 1; j

< listaDirecciones[length]; j++)

{

unaLíneaDeLista = new Function(nombreCorreoPrimero, nombrePrimero, listaDirecciones, j, elNombre = new Function(nombrePrimero, listaDirecciones, j, var elNombre=(listaDirecciones[j].nombre + listaDirecciones[j].apellido);

if(nombrePrimero)

{

elNombre=(listaDirecciones[j].nombre + listaDirecciones[j].apellido);

},) ;

if (nombreCorreoPrimero)

{

laLista = listaDirecciones[j].nombreCorreo+ ":t" + elNombre

} else laLista = elNombre + ":t" + listaDirecciones[j].nombreCorreo; return laLista;)

document.write(unaLíneaDeLista + "<br>");

}

Escribir constructores

Para escribir sus propios constructores, se utiliza la palabra clave this dentro del constructor para hacer referencia al objeto recién creado. El constructor inicia el objeto.

Aunque el constructor del siguiente ejemplo empieza en un índice de 0, esto no es necesario. Puede empezar con un primer índice de 1 si, por ejemplo, necesita un parámetro que indique el número real de índices de la matriz o del objeto. En el ejemplo, se llama extent para distinguirlo del parámetro de longitud mantenido automáticamente del objeto incorporado Array( )). Si escribe código que agrega propiedades a la matriz, debe actualizar el parámetro extent (o su equivalente) porque JScript no mantiene este parámetro. Observe que incluso un ejemplo extremadamente sencillo como éste utiliza estilos en notación de objeto (punto) y de matriz (llave) para hacer referencia al objeto actual.

function ConvertirCadenaEnMatriz (length) {

this.extent = length;

for (iNum = 0; iNum

< length; i++) {

this[iNum] = "";

}

}

// Utilice el constructor para crear e inicializar una matriz.

miMatrizString = new ConvertirCadenaEnMatriz(63);

Usar prototipos para crear objetos

Cuando escriba la definición de un objeto, puede utilizar las propiedades prototype para crear propiedades que no sean comunes a todos los objetos generados por la definición. Las propiedades Prototype se copian por referencia en cada objeto de una clase, por lo que tienen el mismo valor para todos los objetos de la clase. Sin embargo, puede cambiar el valor de una propiedad prototipo en un objeto, y el nuevo valor sustituye al predeterminado, pero sólo en esa instancia. El resto de los objetos miembros de esa clase no se ven afectados por el cambio.

Siguiendo este principio, puede definir propiedades adicionales para objetos que formen parte del lenguaje JScript, ya que todos tienen prototipos. Por ejemplo, si quiere utilizar una constante especial para realizar un cálculo, y la constante no se encuentra entre las proporcionadas por los objetos Math y Number, puede definirla y asignarla sus prototipos de objeto respectivos, o la propiedad prototipo de la clase de su objeto.

Math.prototype.Avogadro = 6.0232E23;

function CuantasMoleculas (wtGrams,molWt) {

return ((wtGrams/molWt)*Math.prototype.Avogadro);

}

document.write("Hay " + CuantasMoleculas(window.prompt("¿Cuántos gramos?",0),window.prompt

("¿Cuál es el peso molecular? ",0)) +

" moléculas en esa cantidad.");

Quizá sea más útil definir una función, asignarla como método al prototipo String y utilizarla en cualquier cadena de cualquier parte de su secuencia de comandos. El siguiente ejemplo asume la existencia de una matriz Tabla Periódica llamada "losElementos", definida en algún lugar de la secuencia de comandos, que contiene los símbolos de los elementos, sus nombres, sus pesos atómicos y otra información necesaria sobre ellos.

function atomoNombre(elSimbolo) {

return(losElementos[elSimbolo].NombreCompleto);

}

String.prototype.atomoNombre = atomoNombre;

function decodificaFormula(laFormula) {

var elElementoActual = "";

var laFormulaDecodificada = "";

for (i = 1; i = laFormula.length ; i++);

if (elElementoActual

// Sentencias de código para separar la cadena de la fórmula en una matriz de símbolos y números.

// Recorre la matriz de la fórmula y compone la cadena decodificada. Cada término es :

laFormulaDecodificada += formula[n].number

laFormulaDecodificada += " ";

laFormulaDecodificada += formula[n].symbol.prototype.atomoNombre;

laFormulaDecodificada += " "

// Fin del bucle.

return laFormulaDecodificada;

}

decodificaFormula(window.prompt("Formula?","Al2O3"));

Caracteres especiales

JScript admite caracteres especiales que le permiten incluir en las cadenas algunos caracteres que no se pueden teclear directamente. Cada uno de estos caracteres comienza con una barra invertida. La barra invertida es un carácter de escape que se utiliza para indicar al intérprete de JScript que el siguiente carácter es especial.

Secuencia de escape

Carácter

b

Retroceso

f

Avance de página

n

Avance de línea (nueva línea)

r

Retorno de carro

t

Tabulador horizontal (Ctrl-I)

'

Marca de comillas simples

"

Marca de comillas dobles

/

Barra invertida

Observe que, dado que la barra invertida se utiliza como carácter de escape, no se puede utilizar directamente en la secuencia de comandos. Si quiere escribir una barra invertida deberá teclearla dos veces seguidas (/).

document.write('La ruta de la imagen es C:/web/mipagina/gifs/jardin.gif.');

document.write('El texto dice: "Después de la nevada del '97, la casa de la abuela está cubierta de nieve."');

Puede utilizar estas secuencias de escape para controlar el formato del texto dentro de las marcas <PRE> y <XMP> y, hasta cierto punto, dentro de los cuadros de diálogo de alerta, solicitud de datos y confirmación.

Solucionar problemas en sus secuencias de comandos

Hay partes de un lenguaje de programación en las que se puede ver enredado si no tiene cuidado y cada lenguaje tiene sorpresas específicas. Usemos como ejemplo el valor null: Este valor en Microsoft JScript se comporta de forma diferente al valor null de los lenguajes C o C++.

Algunas de las áreas problemáticas con las que se puede encontrar al escribir secuencias de comandos de Jscript son las siguientes.

Errores de sintaxis

Como la sintaxis es mucho más rígida en los lenguajes de programación que en los lenguajes naturales, es importante prestar mucha atención a los detalles al escribir secuencias de comandos. Si, por ejemplo, desea que un parámetro particular sea una cadena, tendrá problemas si se olvida de encerrarlo entre comillas al escribirlo.

Orden de interpretación de la secuencia de comandos

La interpretación de JScript es parte del proceso de análisis de HTML de su explorador de Web. Por tanto, si coloca una secuencia de comandos dentro de una etiqueta <HEAD> en un documento, se interpreta antes de examinar cualquier etiqueta <BODY>. Si tiene objetos que están creados en la etiqueta <BODY>, no existen en el momento que se está analizando <HEAD> y no los puede utilizar la secuencia de comandos.

Conversión automática de tipos

JScript es un lenguaje en el que no necesita declarar los tipos de datos y convierte automáticamente los tipos de datos. En consecuencia, independientemente del hecho de que los valores que tienen distintos tipos no son iguales, las expresiones de los siguientes ejemplos devuelven como resultado true.

"100" == 100

false == 0

Precedencia de operadores

Al realizar una operación particular durante la evaluación de una expresión influye más la precedencia de operadores que la ubicación de la expresión. Así, en el siguiente ejemplo, la multiplicación se realiza antes que la sustracción, aunque la sustracción aparezca primera en la expresión.

elRadio = unPuntoDelPerimetro – elPuntoDelCentro * elFactorDeCorreccion;

Usar bucles for…in con objetos

Al pasar por las propiedades de un objeto con un bucle for…in, no necesariamente puede predecir o controlar el orden en el que se asignan los campos del objeto a la variable contadora del bucle. Más aún, el orden puede ser distinto en distintas implementaciones del lenguaje.

Palabra clave with

La instrucción with es adecuada para hacer referencia a propiedades que ya existen en un objeto especificado, pero no se pueden utilizar para agregar propiedades a un objeto. Para crear nuevas propiedades en un objeto, debe hacer referencia al objeto específicamente.

Palabra clave this

Aunque utilice la palabra clave this dentro de la definición de un objeto, para hacer referencia al propio objeto, no puede utilizar this o palabras clave similares para hacer referencia a la función que se está ejecutando cuando la función no es una definición de objeto. Si la función se va a asignar a un objeto como un método, puede usar la palabra clave this dentro de la función, para hacer referencia al objeto.

Escribir una secuencia de comandos que escribe una secuencia de comandos

La etiqueta <SCRIPT> termina la secuencia de comandos actual si el intérprete la encuentra. Para mostrar el propio "<SCRIPT>", vuelva a escribir esto como, al menos, dos cadenas; por ejemplo, "</SCR" y "IPT>", que puede concatenar en la instrucción que las escribe.

Referencias implícitas a una ventana

Como se puede abrir más de una ventana a la vez, cualquier referencia implícita a una ventana, apunta a la ventana actual. Para otras ventanas, debe utilizar una referencia explícita.

Mostrar información en el explorador

Microsoft JScript proporciona dos formas de mostrar datos directamente en su explorador. Puede usar write( ) y writeln( ), que son métodos del objeto document. También puede mostrar información en formularios dentro del explorador y en cuadros de mensajes de aviso, solicitud y confirmación.

Usar document.write( ) y document.writeln( )

La forma más usada para mostrar información es el método write( ) del objeto document. Recibe un argumento, una cadena, que muestra en el explorador. La cadena puede ser texto sin formato o HTML. Las cadenas se pueden encerrar entre comillas simples o comillas dobles. Esto permite encerrar entre comillas algún texto que contenga apóstrofes o comillas.

document.write("Pi es, aproximadamente, igual a " + Math.PI);

document.write( );

 

Sugerencia  La siguiente función sencilla es una forma de evitar tener que escribir "document.write" cada vez que desea que algo aparezca en la ventana del explorador. Esta función no le avisa cuando algo que intenta escribir no está definido, pero permite usar el comando "w();", que muestra una línea en blanco.

function w(m) { // Función Write.

m = "" + m + ""; // Se asegura de que la variable m es una cadena.

if ("undefined" != m) { // Comprueba si la cadena está vacía o si contiene un elemento no definido.

document.write(m);

}

document.write("<br>");

}

w('<IMG SRC="caballo.gif">');

w();

w("Esto es un grabado de un caballo.");

w();

 
 

El método writeln( ) es casi idéntico al método write( ) excepto porque agrega un carácter de nueva línea a cualquier cadena que se le proporcione. En HTML normalmente produce un espacio en blanco después del elemento, pero si se usan etiquetas<PRE> y <XMP>, el carácter de nueva línea se interpreta literalmente y el explorador lo muestra.

Cuando llama al método write( ), éste abre y borra el documento si en ese momento no se encuentra en el proceso de apertura y análisis al llamar a write( ), por lo que puede resultar peligroso. El ejemplo muestra una secuencia de comandos que muestra la hora un vez cada minuto, pero sólo puede hacerlo una vez porque se borra a sí mismo en el proceso.

<HTML>

<HEAD>

<SCRIPT LANGUAGE="JScript">

function singOut () {

var elMomento = new Date();

var laHora = elMomento.getHours();

var elMinuto = elMomento.getMinutes();

var elDesplazamiento = (elMomento.getTimezoneOffset() / 60);

laHora -= elDesplazamiento;

if (laHora > 23) {

laHora -= 24

}

document.write(laHora + " horas, " + elMinuto + " minutos, Horario Universal Coordinado.");

window.setTimeout("singOut();", 60000);

}

</SCRIPT>

</HEAD>

<BODY>

<SCRIPT>

singOut();

</SCRIPT>

</BODY>

</HTML>

Si usa el método alert() del objeto window en lugar de document.write(), la secuencia de comandos funcionará.

window.alert(laHora + " horas, " + elMinuto + " minutos, Horario Universal Coordinado.");

window.setTimeout("singOut();", 60000);

}

Borrar el documento actual

El método clear() del objeto document vacía el documento actual. Este método también elimina la secuencia de comandos (junto con el resto del documento), por lo que debe tener mucho cuidado con cómo y cuándo lo utiliza.

document.clear();

Usar cuadros de mensaje

Usar avisos, solicitudes y confirmaciones

Utilice cuadros de mensaje de aviso, confirmación y solicitud de datos para obtener datos escritos por su usuario. Los cuadros son métodos del objeto de interfaz window. Como el objeto window ocupa la parte superior de la jerarquía de objetos, realmente no necesita utilizar el nombre completo (por ejemplo, "window.alert()") de cualquiera de estos cuadros de mensaje, pero es una buena idea hacerlo, porque le ayuda a recordar a qué objeto pertenecen.

Cuadro de mensaje de aviso

El método alert tiene un argumento: la cadena de texto que desea mostrar al usuario. La cadena no es HTML. El cuadro de mensaje ofrece un botón Aceptar para que el usuario pueda cerrarlo y es un cuadro modal; es decir, el usuario debe cerrar el cuadro de mensaje antes de continuar.

window.alert("Bienvenido. Presione Aceptar para continuar.");

Cuadro de mensaje de confirmación

El cuadro de mensaje de confirmación le permite preguntar al usuario una pregunta de tipo "Sí o No" y ofrece al usuario la opción de hacer clic en un botón Aceptar o en un botón Cancelar. El método confirm devuelve true o false. Este cuadro de mensaje también es modal: el usuario debe responder a él (hacer clic en un botón) y, por tanto, cerrarlo, antes de continuar.

var aceptaEntrar = window.confirm("Haga clic en Aceptar para continuar. Haga clic en Cancelar para detener.");

if (aceptaEntrar) {

window.alert("Bienvenido a nuestra página Web.");

} else window.alert("Hasta luego.");

Cuadro de mensaje de solicitud

El cuadro de mensaje de solicitud ofrece un campo de texto en el que el usuario puede escribir una respuesta a su solicitud. Este cuadro tiene un botón Aceptar y un botón Cancelar. Si proporciona un segundo argumento de cadena, el cuadro de mensaje de solicitud muestra esa segunda cadena en el campo de texto, como respuesta predeterminada. De lo contrario, el texto predeterminado es "<no definido>".

Al igual que los métodos alert( ) y confirm( ), el método prompt muestra un cuadro de mensaje modal. El usuario debe cerrarlo antes de continuar.

var laRespuesta = window.prompt("Bienvenido","Escriba su nombre aquí.");

Microsoft® JScript®  Operadores

Operador +

Descripción

Se utiliza para sumar dos números o realizar una concatenación de cadenas.

Sintaxis

resultado = expresión1 + expresión2

La sintaxis del operador + tiene las siguientes partes:

Parte

Descripción

resultado

Cualquier variable.

expresión1

Cualquier expresión.

expresión2

Cualquier expresión.

Comentarios

El tipo subyacente de las expresiones determina el comportamiento del operador +.

Si

Entonces

Ambas expresiones son numéricas o de tipo Boolean

Sumar.

Ambas expresiones son cadenas

Concatenar.

Una expresión es numérica y la otra es una cadena

Concatenar.

Para obtener información acerca de cuándo se genera un error en tiempo de ejecución por el operador +, consulte la tabla de comportamiento de operadores.

Operador =

Descripción

Asigna un valor a una variable.

Sintaxis

resultado = expresión

La sintaxis del operador = tiene las siguientes partes:

Parte

Descripción

resultado

Cualquier variable.

expresión

Cualquier expresión numérica.

Comentarios

Como el operador = se comporta como otros operadores, las expresiones que lo utilizan tienen un valor además de asignar ese valor a variable. Esto significa que puede encadenar operadores de asignación como se muestra a continuación:

j = k = l = 0;

j, k y l son iguales a cero después de ejecutar la instrucción de ejemplo.

Operador &

Descripción

Realiza una comparación AND de bits en dos expresiones.

Sintaxis

resultado = expresión1 & expresión2

La sintaxis del operador & tiene las siguientes partes:

Parte

Descripción

resultado

Cualquier variable.

expresión1

Cualquier expresión.

expresión2

Cualquier expresión.

Comentarios

El operador & obtiene la representación binaria de los valores de las dos expresiones y realiza una operación AND con los bits de las mismas. El resultado de esta operación se comporta de la siguiente manera:

0101 (expresión1)

1100 (expresión2)

—-

0100 (resultado)

Cada vez que ambas expresiones tienen un 1 en un dígito, el resultado tendrá un 1 en ese dígito. De otra forma, el resultado es 0 en ese dígito.

Para obtener información acerca de cuándo se genera un error en tiempo de ejecución por el operador &, consulte la tabla de comportamiento de operadores.

Operador >>

Descripción

Desplaza los bits de una expresión hacia la derecha, manteniendo el signo.

Sintaxis

resultado = expresión1 >> expresión2

La sintaxis del operador >> tiene las siguientes partes:

Parte

Descripción

resultado

Cualquier variable.

expresión1

Cualquier expresión.

expresión2

Cualquier expresión.

Comentarios

El operador >> desplaza los bits de expresión1 hacia la derecha, el número de bits especificado en expresión2. El bit de signo de expresión1 se utiliza para rellenar los dígitos de la izquierda. Los dígitos desplazado hacia la derecha se descartan. Por ejemplo, después de evaluar el siguiente código, temp tiene un valor de -4: 14 (11110010 en binario) desplazado hacia la derecha dos bits es igual a -4 (11111100 en binario).

var temp

temp = -14 >> 2

Para obtener información acerca de cuándo se genera un error en tiempo de ejecución por el operador >>, consulte la tabla de comportamiento de operadores.

Operador <<

Descripción

Desplaza los bits de una expresión hacia la izquierda.

Sintaxis

resultado = expresión1 << expresión2

La sintaxis del operador << tiene las siguientes partes:

Parte

Descripción

resultado

Cualquier variable.

expresión1

Cualquier expresión.

expresión2

Cualquier expresión.

Comentarios

El operador << desplaza los bits de expresión1 hacia la izquierda, el número de bits especificado en expresión2. Por ejemplo:

var temp

temp = 14 << 2

La variable temp tiene un valor igual a 56 porque 14 (00001110 en binario) desplazado hacia la izquierda dos bits, es igual a 56 (00111000 en binario).

Para obtener información acerca de cuándo se genera un error en tiempo de ejecución por el operador <<, consulte la tabla de comportamiento de operadores.

Operador <<

Descripción

Desplaza los bits de una expresión hacia la izquierda.

Sintaxis

resultado = expresión1 << expresión2

La sintaxis del operador << tiene las siguientes partes:

Parte

Descripción

resultado

Cualquier variable.

expresión1

Cualquier expresión.

expresión2

Cualquier expresión.

Comentarios

El operador << desplaza los bits de expresión1 hacia la izquierda, el número de bits especificado en expresión2. Por ejemplo:

var temp

temp = 14 << 2

La variable temp tiene un valor igual a 56 porque 14 (00001110 en binario) desplazado hacia la izquierda dos bits, es igual a 56 (00111000 en binario).

Para obtener información acerca de cuándo se genera un error en tiempo de ejecución por el operador <<, consulte la tabla de comportamiento de operadores.

Operador |

Descripción

Realiza una comparación OR de bits en dos expresiones.

Sintaxis

resultado = expresión1 | expresión2

La sintaxis del operador | tiene las siguientes partes:

Parte

Descripción

resultado

Cualquier variable.

expresión1

Cualquier expresión.

expresión2

Cualquier expresión.

Comentarios

El operador | obtiene la representación binaria de los valores de las dos expresiones y realiza una operación OR con los bits de las mismas. El resultado de esta operación se comporta de la siguiente manera:

0101 (expresión1)

1100 (expresión2)

—-

1101 (resultado)

Cada vez que cualquiera de las dos expresiones tiene un 1 en un dígito, el resultado tendrá un 1 en ese dígito. De lo contrario, el resultado tendrá un 0 en ese dígito.

Para obtener información acerca de cuándo se genera un error en tiempo de ejecución por el operador |, consulte la tabla de comportamiento de operadores.

Operador ^

Descripción

Realiza una comparación OR exclusivo de bits en dos expresiones.

Sintaxis

resultado = expresión1 ^ expresión2

La sintaxis del operador ^ tiene las siguientes partes:

Parte

Descripción

resultado

Cualquier variable.

expresión1

Cualquier expresión.

expresión2

Cualquier expresión.

Comentarios

El operador ^ examina las representaciones binarias de los valores de las dos expresiones y realiza una operación OR exclusivo de bits sobre ellas. El resultado de esta operación se comporta de la siguiente manera:

0101 (expresión1)

1100 (expresión2)

—-

1001 (resultado)

Si una y sólo una de las expresiones tiene un dígito 1, el resultado es 1 en ese dígito. De otra forma, el resultado es 0 en ese dígito.

Para obtener más información acerca de cuándo se genera un error en tiempo de ejecución por el operador ^, consulte la tabla de comportamiento de operadores.

Operador ,

Descripción

Hace que dos expresiones se ejecuten secuencialmente.

Sintaxis

expresión1, expresión2

La sintaxis del operador , tiene las siguientes partes:

Parte

Descripción

expresión1

Cualquier expresión.

expresión2

Cualquier expresión.

Comentarios

El operador , hace que las expresiones a ambos lados del operador se ejecuten en orden de izquierda a derecha y obtiene el valor de la expresión de la derecha. El uso más común para el operador , es la expresión de incremento en un bucle for. Por ejemplo:

for (i = 0; i < 10; i++, j++)

{

k = i + j;

}

La instrucción for sólo permite que se ejecute una única expresión al final de cada ciclo del bucle. El operador , se utiliza para permitir que se traten múltiples expresiones como una sola y, de esta forma, ignorar la restricción.

Operador ?:

Descripción

Ejecuta una de dos expresiones dependiendo de una condición.

Sintaxis

prueba ? expresión1 : expresión2

La sintaxis del operador ?: tiene las siguientes partes:

Parte

Descripción

prueba

Una expresión de tipo Boolean.

expresión1

La expresión que se debe ejecutar si prueba es igual a True.

expresión2

La expresión que se debe ejecutar si prueba es igual a False.

Comentarios

La sintaxis del operador ?: es una forma abreviada de una instrucción if…else. Se utiliza típicamente como parte de una expresión mayor en la que una instrucción if…else sería incómoda. Por ejemplo:

var ahora = new Date();

var saludo = "Buen" + ((ahora.getHours() > 17) ? "as tardes." : "os días.");

El ejemplo crea una cadena que contiene "Buenas tardes." si es más tarde de las 6 p.m.. El código equivalente que utiliza una instrucción if…else es el siguiente:

var ahora = new Date();

var saludo = "Buen";

if (ahora.getHours() > 17)

saludo += "as tardes.";

else

saludo += "os días.";

Operador ?:

Descripción

Ejecuta una de dos expresiones dependiendo de una condición.

Sintaxis

prueba ? expresión1 : expresión2

La sintaxis del operador ?: tiene las siguientes partes:

Parte

Descripción

prueba

Una expresión de tipo Boolean.

expresión1

La expresión que se debe ejecutar si prueba es igual a True.

expresión2

La expresión que se debe ejecutar si prueba es igual a False.

Comentarios

La sintaxis del operador ?: es una forma abreviada de una instrucción if…else. Se utiliza típicamente como parte de una expresión mayor en la que una instrucción if…else sería incómoda. Por ejemplo:

var ahora = new Date();

var saludo = "Buen" + ((ahora.getHours() > 17) ? "as tardes." : "os días.");

El ejemplo crea una cadena que contiene "Buenas tardes." si es más tarde de las 6 p.m.. El código equivalente que utiliza una instrucción if…else es el siguiente:

var ahora = new Date();

var saludo = "Buen";

if (ahora.getHours() > 17)

saludo += "as tardes.";

else

saludo += "os días.";

Operador ?:

Descripción

Ejecuta una de dos expresiones dependiendo de una condición.

Sintaxis

prueba ? expresión1 : expresión2

La sintaxis del operador ?: tiene las siguientes partes:

Parte

Descripción

prueba

Una expresión de tipo Boolean.

expresión1

La expresión que se debe ejecutar si prueba es igual a True.

expresión2

La expresión que se debe ejecutar si prueba es igual a False.

Comentarios

La sintaxis del operador ?: es una forma abreviada de una instrucción if…else. Se utiliza típicamente como parte de una expresión mayor en la que una instrucción if…else sería incómoda. Por ejemplo:

var ahora = new Date();

var saludo = "Buen" + ((ahora.getHours() > 17) ? "as tardes." : "os días.");

El ejemplo crea una cadena que contiene "Buenas tardes." si es más tarde de las 6 p.m.. El código equivalente que utiliza una instrucción if…else es el siguiente:

var ahora = new Date();

var saludo = "Buen";

if (ahora.getHours() > 17)

saludo += "as tardes.";

else

saludo += "os días.";

Operadores de comparación

Descripción

Devuelve un valor de tipo Boolean que indica el resultado de la comparación.

Sintaxis

expresión1 operadordecomparación expresión2

La sintaxis del operador de comparación tiene las siguientes partes:

Parte

Descripción

expresión1

Cualquier expresión.

operadordecomparación

Cualquier operador de comparación.

expresión2

Cualquier expresión.

Comentarios

Al comparar cadenas de caracteres, JScript utiliza el valor de los caracteres Unicode de la expresión de cadena.

El siguiente ejemplo describe cómo se comportan los diversos tipos de operadores dependiendo de los valores de expresión1 y expresión2:

Relacional (<, >, <=, >=)

  • Intenta convertir ambas expresión1 y expresión2 en número.
  • Si ambas expresiones son cadenas realiza una comparación lexicográfica de cadenas.
  • Si ambas expresiones son NaN, devuelve False.
  • Cero negativo se iguala a cero positivo.
  • Infinito negativo es menor que cualquier cosa, incluso que sí mismo.
  • Infinito positivo es mayor que cualquier cosa, incluso sí mismo.

Igualdad (==, !=)

  • Si los tipos de las dos expresiones son diferentes, intenta convertirlas en cadena de caracteres, número o tipo Boolean.
  • NaN no es igual a nada, incluso a sí mismo.
  • Cero negativo es igual que cero positivo.
  • null equivale tanto a null como a no definido.
  • Los valores se consideran iguales si son cadenas idénticas, números numéricamente equivalentes, el mismo objeto, valores de tipo Boolean idénticos, o (si son de tipos distintos) pueden ser forzados a una de estas situaciones.
  • Cualquier otra comparación es considerada desigual.

Identidad (===. !==)

Estos operadores se comportan de la misma forma que los operadores de igualdad, excepto que no se realiza ninguna conversión de tipos y ambos tipos deben ser iguales para que las expresiones se consideren iguales.

Operador >>>

Descripción

Aplica un desplazamiento a la derecha sin signo a una expresión.

Sintaxis

resultado = expresión1 >>> expresión2

La sintaxis del operador >>> tiene las siguientes partes:

Parte

Descripción

resultado

Cualquier variable.

expresión1

Cualquier expresión.

expresión2

Cualquier expresión.

Comentarios

El operador >>> desplaza los bits de expresión1 hacia la derecha, el número de bits especificado en expresión2. Los bits insertados por la derecha se rellenan con ceros. Los dígitos desplazado hacia la derecha se descartan. Por ejemplo:

var temp

temp = -14 >>> 2

La variable temp tiene un valor igual a 1073741820 porque -14 (11111111 11111111 11111111 11110010 en binario) desplazado hacia la derecha dos bits es igual a 1073741820 (00111111 11111111 11111111 11111100 en binario).

Para obtener información acerca de cuándo se genera un error en tiempo de ejecución por el operador >>>, consulte la tabla de comportamiento de operadores.

Operador /

Descripción

Se usa para dividir dos números y devolver un resultado numérico.

Sintaxis

resultado = número1 / número2

La sintaxis del operador / tiene las siguientes partes:

Parte

Descripción

resultado

Cualquier variable numérica.

número1

Cualquier expresión numérica.

número2

Cualquier expresión numérica.

Comentarios

Para obtener información acerca de cuándo se genera un error en tiempo de ejecución por el operador /, consulte la tabla de comportamiento de operadores.

Operador instanceof

Descripción

Devuelve un valor Booleano que indica si un objeto es una instancia de una clase en particular.

Sintaxis

resultado = objeto instanceof clase

La sintaxis del operador instanceof tiene las siguientes partes:

Parte

Descripción

resultado

Cualquier variable.

objeto

Cualquier expresión de objeto.

clase

Cualquier clase de objeto definida.

Observaciones

El operador instanceof devuelve true si objeto es una instancia de clase. Devuelve false si objeto no es una instancia de la clase especificada, o si objeto es null.

El ejemplo siguiente muestra el uso del operador instanceof:

function Pruebaobj(obj)

{

var i, t, s = ""; // Crear variables.

t = new Array(); // Crear una matriz.

t["Fecha"] = Date; // Llenar la matriz.

t["Objeto"] = Object;

t["Matriz"] = Array;

for (i in t)

{

if (obj instanceof t[i]) // Comprobar clase de obj.

{

s += "obj. es una instancia de " + i + "n";

}

else

{

s += "obj. no es una instancia de" + i + "n";

}

}

return(s); // Devolver cadena.

}

var obj = new Date();

response.write(Pruebaobj(obj));

Operador &&

Descripción

Realiza una conjunción lógica de dos expresiones.

Sintaxis

resultado = expresión1 && expresión2

La sintaxis del operador && tiene las siguientes partes:

Parte

Descripción

resultado

Cualquier variable.

expresión1

Cualquier expresión.

expresión2

Cualquier expresión.

Comentarios

Si y sólo si el resultado de la evaluación de ambas expresiones devuelve True, resultado es True. Si el resultado de evaluar alguna de las expresiones devuelve False, resultado es False.

Para obtener información acerca de cuándo se genera un error en tiempo de ejecución por el operador &&, consulte la tabla de comportamiento de operadores.

JScript utiliza las siguientes reglas para convertir valores que no son de tipo Boolean en valores de tipo Boolean:

  • Todos los objetos se consideran iguales a True.
  • Las cadenas se consideran como valores False si y sólo si están vacías.
  • null y no definido se consideran iguales a False.
  • Los números se consideran como valores False si y sólo si son cero.

Operador !

Descripción

Realiza una negación lógica en una expresión.

Sintaxis

resultado = !expresión

La sintaxis del operador ! tiene las siguientes partes:

Parte

Descripción

resultado

Cualquier variable.

expresión

Cualquier expresión.

Comentarios

La siguiente tabla indica como se determina resultado.

Si expresión tiene un valor igual a

Entonces resultado tiene un valor igual a

True

False

False

True

Todos los operadores unarios, como, por ejemplo, el operador ! , evalúan las expresiones como se indica a continuación:

  • Si se aplica a expresiones con valores no definido o null , se genera un error en tiempo de ejecución.
  • Los objetos se convierten en cadenas.
  • Las cadenas se convierten en números, si es posible. Si no, se genera un error en tiempo de ejecución.
  • Los valores de tipo Boolean se tratan como números (0 si es igual a False, 1 si es True).

Se aplica el operador al número resultante.

Para el operador ! , si expresión tiene un valor distinto de cero, resultado tiene un valor igual a cero. Si expresión tiene un valor igual a cero, resultado tiene un valor igual a 1.

Operador ||

Descripción

Realiza una disyunción lógica de dos expresiones.

Sintaxis

resultado = expresión1 || expresión2

La sintaxis del operador || tiene las siguientes partes:

Parte

Descripción

resultado

Cualquier variable.

expresión1

Cualquier expresión.

expresión2

Cualquier expresión.

Comentarios

Si el resultado de evaluar alguna de las dos expresiones devuelve True, resultado tiene un valor igual a True. La siguiente tabla indica como se determina resultado.

Si expresión1 tiene un valor igual a

Y expresión2 tiene un valor igual a

Entonces resultado tiene un valor igual a

True

True

True

True

False

True

False

True

True

False

False

False

Para obtener información acerca de cuándo se genera un error en tiempo de ejecución por el operador &&, consulte la tabla de comportamiento de operadores.

JScript utiliza las siguientes reglas para convertir valores que no son de tipo Boolean en valores de tipo Boolean:

  • Todos los objetos se consideran iguales a True.
  • Las cadenas se consideran iguales a True si y sólo si están vacías.
  • null y no definido se consideran iguales a False.
  • Los números se consideran como valores False si y sólo si son iguales a 0.

Operador %

Descripción

Divide dos números y devuelve el resto.

Sintaxis

resultado = número1 % número2

La sintaxis del operador % tiene las siguientes partes:

Parte

Descripción

resultado

Cualquier variable.

número1

Cualquier expresión numérica.

número2

Cualquier expresión numérica.

Comentarios

El operador módulo, o resto, divide número1 por número2 (los número de coma flotante se redondean a enteros) y devuelve el resto como el valor de resultado. Por ejemplo, en la siguiente expresión, A (que es resultado) tiene un valor igual a 5.

A = 19 % 6.7

Para obtener más información acerca de cuándo se genera un error en tiempo de ejecución por el operador %, consulte la tabla de comportamiento de operadores.

Operador *

Descripción

Multiplica dos números.

Sintaxis

resultado = número1*número2

La sintaxis del operador * tiene las siguientes partes:

Parte

Descripción

resultado

Cualquier variable.

número1

Cualquier expresión.

número2

Cualquier expresión.

Comentarios

Para obtener información acerca de cuándo se genera un error en tiempo de ejecución por el operador *, consulte la tabla de comportamiento de operadores.

Operador –

Descripción

Se utiliza para encontrar la diferencia entre dos números o para indicar el valor negativo de una expresión numérica.

Sintaxis 1

resultado = número1 número2

Sintaxis 2

número

La sintaxis del operador tiene las siguientes partes:

Parte

Descripción

resultado

Cualquier variable numérica.

número

Cualquier expresión numérica.

número1

Cualquier expresión numérica.

número2

Cualquier expresión numérica.

Comentarios

En la sintaxis 1, el operador es el operador aritmético de sustracción utilizado para encontrar la diferencia entre dos números. En la sintaxis 2, el operador se utiliza como el operador unario de negación para indicar el valor negativo de una expresión.

Para obtener información acerca de cuándo se genera un error en tiempo de ejecución por la sintaxis 2, consulte la tabla de comportamiento de operadores.

Para la sintaxis 2, como para todos los operadores unarios, las expresiones se evalúan de la siguiente forma:

  • Si se aplica a expresiones con valores no definido o null, se genera un error en tiempo de ejecución.
  • Los objetos se convierten en cadenas.
  • Las cadenas se convierten en números, si es posible. Si no, se genera un error en tiempo de ejecución.
  • Los valores de tipo Boolean se tratan como números (0 si es igual a False, 1 si es True).

Se aplica el operador al número resultante. En la sintaxis 2, si el número resultante es distinto de cero, resultado tiene un valor igual al número resultante con el signo invertido. Si el número resultante es cero, resultado tiene un valor igual a cero.

Operador new

Descripción

Crea un nuevo objeto.

Sintaxis

new constructor[(argumentos)]

El argumento constructor llama al constructor del objeto. Se pueden omitir los paréntesis si el constructor no recibe argumentos.

Comentarios

El operador new realiza las siguientes tareas:

  1. Crea un objeto sin miembros.
  2. Llama al constructor para el objeto, pasando un puntero al objeto recién creado como puntero this.

El constructor inicia el objeto de acuerdo con los argumentos pasados al constructor.

Estos son ejemplos de uso correcto del operador new:

mi_objeto = new Object;

mi_matriz = new Array();

mi_fecha = new Date("5 de enero de 1996");

 

Precedencia de operadores

EN JScript los operadores se evalúan en un orden particular. Este orden se conoce como la precedencia de operadores. La siguiente tabla muestra una lista de los operadores en orden de precedencia de mayor a menor. Los operadores con igual precedencia se evalúan de izquierda a derecha en la expresión.

Operador >>

Descripción

. [] ()

Acceso a campos, indexación de matrices y llamadas a funciones

++ — – ~ ! delete new typeof void

Operadores unarios, tipos de datos devueltos, creación de objetos, valores no definidos

* / %

Multiplicación, división, división módulo

+ – +

Adición, sustracción, concatenación de cadenas

<< >> >>>

Desplazamiento de bits

< <= > >= instanceof

Menor que, menor o igual que, mayor que, mayor o igual que, instanceof

== != === !==

Igualdad, desigualdad, identidad, desidentidad

&

AND de bits

^

XOR de bits

|

OR de bits

&&

AND lógico

||

OR lógico

?:

Condicional

= OP=

Asignación, asignación con operación

,

Evaluación múltiple

Los paréntesis se usan para modificar el orden de evaluación. La expresión encerrada entre paréntesis se evalúa por completo antes de usar su valor en el resto de la instrucción.

Un operador con mayor precedencia se evalúa antes que uno con menor precedencia. Por ejemplo:

z = 78 * (96 + 3 + 45)

En esta expresión hay cinco operadores: =, *, (), + y +. Según las normas de precedencia, se evalúan en el siguiente orden: (), *, +, +, =.

  1. Lo primero es la evaluación de la expresión que está encerrada entre paréntesis: Hay dos operadores de adición y tienen la misma precedencia: Se suma 96 y 3 y al total resultante se suma 45, dando como resultado un valor igual a 144.
  2. Lo siguiente es la multiplicación: Se multiplican 78 y 144, dando como resultado un valor igual a 10998.
  3. Por último se realiza la asignación: Se asigna 11232 a z.

Operador typeof

Descripción

Devuelve una cadena que identifica el tipo de datos de una expresión.

Sintaxis

typeof [ ( ] expresión [ ) ] ;

El argumento expresión es cualquier expresión para la que se busca la información del tipo.

Comentarios

El operador typeof devuelve información del tipo como una cadena. El operador typeof devuelve uno de entre seis valores posibles: "number," "string," "boolean," "object," "function," y "undefined."

Los paréntesis son opcionales en la sintaxis de typeof.

Operador void

Descripción

Evita que una expresión devuelva un valor.

Sintaxis

void expresión

El argumento expresión es un cualquier expresión Jscript válida.

Comentarios

El operador void evalúa su expresión y devuelve no definido. Este operador se usa cuando desea evaluar una expresión pero no desea que permanezca visible al resto de la secuencia de comandos.

Operadores de asignación compuestos

Operador +=

Descripción

Usado para incrementar una variable en una cantidad especificada.

Sintaxis

resultado += expresión

La sintaxis del operador += tiene las siguientes partes:

Parte

Descripción

resultado

Cualquier variable.

expresión

Cualquier expresión.

Comentarios

Usar este operador es exactamente igual que especificar:

resultado = resultado + expresión

El tipo subyacente de las expresiones determina el comportamiento del operador +=.

Si

Entonces

Ambas expresiones son numéricas o de tipo Boolean

Sumar.

Ambas expresiones son cadenas

Concatenar.

Una expresión es numérica y la otra es una cadena

Concatenar.

Para obtener información acerca de cuándo se genera un error en tiempo de ejecución por el operador += consulte la tabla de comportamiento de operadores.

Operador &=

Descripción

Se utiliza para realizar una operación AND de bits en una expresión.

Partes: 1, 2, 3, 4, 5
 Página anterior Volver al principio del trabajoPágina siguiente