Solución de problemas en las secuencias de comandos
Todos los lenguajes de programación incluyen posibles dificultades y sorpresas tanto para los usuarios sin experiencia como para los programadores expertos. A continuación se incluyen algunas de las áreas problemáticas con las que se puede encontrar al escribir scripts de JScript.
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 scripts. Si, por ejemplo, desea que un parámetro en particular sea una cadena, tendrá problemas si se olvida de encerrarlo entre comillas.
Orden de interpretación de los scripts
En una página web, la interpretación de JScript depende del proceso de análisis HTML de cada explorador. Un script incluido en la etiqueta <HEAD> se interpreta antes que el texto incluido en la etiqueta <BODY>. Por tanto, los objetos creados en la etiqueta <BODY> no existen cuando el explorador analiza el elemento <HEAD> y no pueden ser manipulados por el script.
Nota
Este comportamiento es específico de Internet Explorer. ASP y WSH tienen modelos de ejecución diferentes (al igual que otros hosts).
Conversión automática de tipos
JScript es un lenguaje con establecimiento flexible de tipos y conversión automática. Por tanto, pese a que los valores con tipos distintos no son estrictamente 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;
Precedencia de operadores
El orden de ejecución de las operaciones durante la evaluación de una expresión depende en mayor medida de la prioridad del operador que del orden de los operadores en la expresión. Así, en el siguiente ejemplo, la multiplicación se realiza antes que la resta, aunque el operador de resta aparezca antes que el operador de multiplicación en la expresión.
theRadius = aPerimeterPoint - theCenterpoint * theCorrectionFactor;
Para obtener más información, vea Precedencia de operadores.
Usar bucles for...in con objetos
Cuando un script pasa por las propiedades de un objeto con un bucle for…in, no siempre es posible 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. Para obtener más información, vea for...in (Instrucción).
Palabra clave with
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. Para obtener más información, vea with (Instrucción).
Palabra clave this
Aunque la palabra clave this se encuentre dentro de la definición de un objeto, no puede utilizar this o palabras clave similares para hacer referencia a la función que se está ejecutando cuando esa 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, un script puede usar la palabra clave this dentro de la función. Para obtener más información, vea this (Instrucción).
Escribir un script que escribe un script en Internet Explorer o ASP.NET
La etiqueta <SCRIPT> terminará el script actual en caso de que el intérprete lo encuentre. Para mostrar el propio "</SCRIPT>", vuelva a escribir esto como dos o más cadenas (por ejemplo, "</SCR" e "IPT>"), que el script pueda concatenar en la instrucción que las escribe.
Referencias implícitas a una ventana en Internet Explorer
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 utilizar otras ventanas, debe utilizar una referencia explícita.
Vea también
Tareas
Escribir código JScript con Visual Studio
Conceptos
Depurar JScript con Visual Studio