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: el valor en 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.
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 en particular sea una cadena, tendrá problemas si se olvida de encerrarlo entre comillas al escribirlo.
La interpretación de JScript es parte del proceso de análisis de HTML de los exploradores 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 se crean en la etiqueta <BODY>, no existen en el momento que se está analizando <HEAD> y no los puede utilizar la secuencia de comandos.
Nota Este comportamiento es específico de Internet Explorer. ASP y WSH tienen modelos de ejecución diferentes (al igual que otros hosts).
JScript es un lenguaje en el que no se necesita declarar los tipos de datos y se convierten automáticamente. En consecuencia, independientemente del hecho de que los valores que tienen tipos distintos no son iguales, las expresiones de los siguientes ejemplos devuelven como resultado true.
"100" == 100; false == 0
Para comprobar que el tipo y el valor coinciden, use el operador de igualdad estricta, ===. Los siguientes ejemplos dan como resultado false:
"100" === 100; false === 0;
Al realizar una operación concreta durante la evaluación de una expresión influye más la precedencia de los operadores que la ubicación de la expresión. Así, en el siguiente ejemplo, la multiplicación se realiza antes que la resta, aunque ésta aparezca primera en la expresión.
elRadio = unPuntoDelPerimetro - elPuntoDelCentro * elFactorDeCorreccion;
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 implementaciones diferentes del lenguaje.
La instrucción with es adecuada para hacer referencia a propiedades que ya existen en un objeto especificado, pero no se puede utilizar para agregar propiedades a un objeto. Para crear nuevas propiedades en un objeto, debe hacer referencia al objeto específicamente.
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, para hacer referencia al objeto puede usar la palabra clave this dentro de la función.
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 pueda concatenar en la instrucción que las escribe.
Como se puede abrir más de una ventana a la vez, cualquier referencia implícita a una ventana se considera que apunta a la ventana actual. Para utilizar otras ventanas, debe utilizar una referencia explícita.
Ayuda de Javascript y Vbscript para Javascripts.astalaweb.com. |