Está en la página 1de 869

Visual Studio 2005 JScript

Copyright© 2016 Microsoft Corporation

El contenido de este documento se ha retirado y ya no se actualiza o admite. Algunos vínculos podrían no funcionar. El contenido retirado
representa la versión más reciente actualizada de este contenido.
JScript 8.0

JScript
JScript 8.0 es un lenguaje de secuencias de comandos moderno con una gran variedad de aplicaciones. Es un auténtico
lenguaje orientado a objetos y aún mantiene su espíritu de "secuencias de comandos". JScript 8.0 mantiene compatibilidad
total con las versiones anteriores de JScript, a la vez que incorpora excelentes características nuevas, y proporciona acceso a
Common Language Runtime y .NET Framework.
Los temas que se muestran a continuación presentan los componentes esenciales de JScript 8.0 y proporcionan información
sobre el uso del lenguaje. Al igual que con cualquier lenguaje de programación moderno, JScript admite un gran número de
constructores comunes de programación y elementos de lenguaje.
Si ha programado en otros lenguajes, gran parte del material que se trata en esta sección le resultará familiar. Si bien la
mayoría de las construcciones son iguales a las de versiones anteriores de JScript, JScript 8.0 introduce nuevas y eficaces
construcciones parecidas a las de otros lenguajes basados en clases y orientados a objetos
Si es un programador principiante, el material de esta sección le servirá como introducción a las unidades de creación básicas
para escribir código. Una vez que comprenda los aspectos básicos, podrá crear eficaces secuencias de comandos y aplicaciones
utilizando JScript.
En esta sección
Introducción a JScript
Presenta las novedades de JScript 8.0.
Escribir, compilar y depurar código JScript
Proporciona una colección de vínculos a temas que explican cómo escribir, editar y depurar código con JScript 8.0.
Presentar información mediante JScript
Incluye una lista de vínculos a temas que explican cómo mostrar información desde un programa de la línea de comandos,
desde ASP.NET y en un explorador.
Introducción a las expresiones regulares
Guía de los elementos y procedimientos que incluyen expresiones regulares de JScript 8.0. Los temas explican los conceptos
de expresiones regulares, la sintaxis correcta y el uso apropiado.
Referencia de JScript
Enumera los elementos que comprende la Referencia del lenguaje JScript e incluye vínculos a temas que explican con más
detalle el uso correcto de los elementos del lenguaje.
Secciones relacionadas
Modificadores de línea de comandos para Devenv
Enumera temas de referencia del lenguaje que explican cómo iniciar Visual Studio y generar desde el símbolo del sistema.
Equivalentes del lenguaje
Compara palabras clave, tipos de datos, operadores y objetos programables (controles) para Visual Basic, C++, C#, JScript y
Visual FoxPro.
Referencia de la biblioteca de clases de .NET Framework
Contiene vínculos a temas que describen los espacios de nombres de la biblioteca de clases de .NET Framework y explica
cómo se usa la documentación de la biblioteca de clases.
Modificadores y comandos de Visual Studio
Enumera temas de referencia del lenguaje que explican cómo se han de utilizar comandos para interaccionar con el IDE
desde la ventana Comando y el cuadro Buscar/Comando.
Tutoriales de Visual Studio
Proporciona vínculos a temas que tratan los pasos de que consta el desarrollo de determinadas aplicaciones o cómo utilizar
las principales características de aplicación.
JScript 8.0

Introducción a JScript
JScript 8.0 representa un avance importante del lenguaje JScript de varias maneras. Con una mayor integración en el entorno
de desarrollo de Visual Studio, muchas características nuevas y acceso a las clases de .NET Framework, el cambio de JScript a
JScript 8.0 puede parecer inicialmente una tarea complicada.
En realidad, casi todos los cambios representan funcionalidad adicional, mientras que la funcionalidad básica de JScript es la
misma que la de las versiones anteriores. Prácticamente todas las secuencias de comandos de JScript se ejecutan sin
modificaciones en JScript 8.0 (con el modo rápido desactivado). Para la ejecución en modo rápido (el modo compatible con
ASP.NET), algunas secuencias de comandos requerirán pequeñas modificaciones.
Es fácil la transición de JScript a JScript 8.0, ya que las nuevas características se pueden incluir gradualmente en el código.
Puede actualizar las secuencias de comandos a su ritmo, agregando nuevas funciones según se vaya familiarizando con JScript
8.0.
La siguiente documentación le ayudará a actualizar las aplicaciones y a familiarizarse rápidamente con los cambios de JScript
8.0.
En esta sección
¿Qué es Jscript 8.0?
Proporciona información general sobre JScript 8.0, su relación con ECMAScript y su evolución con respecto a versiones
anteriores de JScript.
Lo nuevo en JScript 8.0
Muestra las características nuevas de JScript 8.0, que incluyen las características desarrolladas junto con ECMAScript Edition
4 y otras características adicionales no especificadas en ECMAScript.
Introducción a JScript 8.0 para programadores de JScript
Describe las diferencias existentes entre JScript y JScript 8.0, lo que proporciona unos conocimientos rápidos a los
desarrolladores de JScript experimentados.
La versión de JScript del programa "Hola a todos"
Muestra cómo escribir el conocido programa Hola a todos en JScript 8.0.
Actualizar aplicaciones creadas en versiones anteriores de JScript
Describe cómo se actualizan las aplicaciones existentes de JScript para trabajar con JScript 8.0.
Ejecutar una aplicación de JScript en una versión anterior de Common Language Runtime
Explica cómo configurar una aplicación de JScript 8.0 generada con una versión del motor en tiempo de ejecución para que
se ejecute en una versión anterior de dicho motor.
Recursos adicionales para programadores de JScript
Enumera varios sitios y grupos de noticias que proporcionan respuesta a preguntas comunes sobre programación en JScript.
Secciones relacionadas
Información de versión de JScript
Enumera todas las características de JScript y la correspondiente versión en la que se introdujo cada una de ellas.
Paseo por el lenguaje JScript
Comenta los elementos y procedimientos que utilizan los desarrolladores para escribir código de JScript, así como vínculos a
áreas específicas que explican con más detalle los elementos del lenguaje y la sintaxis del código.
Referencia de JScript
Enumera los elementos que comprende la Referencia del lenguaje JScript e incluye vínculos a temas que explican con más
detalle el uso correcto de los elementos del lenguaje.
JScript 8.0

¿Qué es Jscript 8.0?


JScript 8.0 es la siguiente generación de la implementación por parte de Microsoft del lenguaje ECMA 262. Gracias a la
combinación del conjunto de características de versiones anteriores de JScript con lo mejor de los lenguajes basados en clases,
JScript 8.0 le ofrece lo mejor de ambos mundos. Entre las mejoras de JScript 8.0, que se está desarrollando junto con
ECMAScript Edición 4, cabe destacar código compilado real, variables con tipos y sin tipos, enlace en tiempo de compilación y
en tiempo de ejecución, clases (con herencia, sobrecarga de funciones, descriptores de acceso de propiedades, etc.), paquetes,
compatibilidad entre lenguajes y acceso completo a .NET Framework.
Nuevas características
JScript 8.0 es un auténtico lenguaje de secuencias de comandos orientado a objetos. Aunque JScript 8.0 ahora puede utilizar
clases, tipos y otras características de lenguajes avanzados para escribir aplicaciones sólidas, sigue siendo un lenguaje de
"secuencias de comandos", permitiendo la programación sin tipos, funciones y clases expando, ejecución dinámica de código
(utilizando eval) y mucho más.
JScript 8.0 ya no sólo es un lenguaje sin tipos: ahora puede ser también un lenguaje con establecimiento inflexible de tipos. En
versiones anteriores, la estructura con establecimiento flexible de tipos de JScript significaba que las variables utilizaban el tipo
de valor que tuviesen asignado. De hecho, en las versiones anteriores no era posible declarar tipos de datos de variables.
JScript 8.0 proporciona más flexibilidad que las versiones anteriores de JScript, ya que admite anotaciones de tipo en las
variables. Las anotaciones sirven para enlazar una variable a un tipo de datos específico y, de este modo, la variable sólo puede
almacenar datos de ese tipo.
Las ventajas del establecimiento inflexible de tipos en un lenguaje de programación son muy numerosas. Además de la ventaja
de utilizar un tipo de datos que se ajusta a los datos utilizados, dispone de otras ventajas:
Velocidad de ejecución mejorada
Comprobación de tipos en tiempo de ejecución o de compilación
Código autoexplicativo
Finalmente, es importante recordar que JScript 8.0 no es ni una versión reducida ni una simplificación de otro lenguaje de
programación. Es un lenguaje de secuencias de comandos moderno con una gran variedad de aplicaciones.
Nota
El código incluido en muchos de los ejemplos de JScript 8.0 es, de alguna manera, más explicativo y menos denso que el de l
as secuencias de comandos reales. La intención aquí es dejar claros los conceptos, no expresar un estilo óptimo y conciso de
codificación. En cualquier caso, siempre es aconsejable escribir código fácil de leer y entender incluso pasados seis meses de
sde su creación.

Vea también
Otros recursos
Referencia de JScript
JScript 8.0

Lo nuevo en JScript 8.0


JScript 8.0, la siguiente generación del lenguaje Microsoft JScript, está diseñado como un modo de acceso rápido y sencillo a la
plataforma Microsoft .NET a través del lenguaje del Web. El propósito principal de JScript 8.0 es la creación de sitios Web con
ASP.NET y la personalización de aplicaciones con secuencia de comandos para .NET Framework.
JScript 8.0, que es compatible con el estándar ECMAScript, tiene características adicionales no especificadas por ECMAScript,
como código compilado real, admisión de varios lenguajes gracias a la compatibilidad con CLS (Common Language
Specification, Especificación de lenguaje común) y acceso a NET Framework. Si bien la versión de JScript .NET que se incluye
con Visual Studio .NET 2002 aprovechaba la seguridad inherente de .NET Framework, JScript .NET 2003 ayuda aún más a
mantener la seguridad agregando un contexto de seguridad restringido para el método eval.
Varias características nuevas de JScript 8.0 se benefician de CLS, un conjunto de reglas que normaliza aspectos como los tipos
de datos, cómo se muestran los objetos y cómo interactúan estos. Cualquier lenguaje compatible con CLS puede utilizar las
clases, los objetos y los componentes que se crean en JScript 8.0. El usuario, como programador de JScript, puede obtener
acceso a las clases, los componentes y objetos desde otros lenguajes de programación compatibles con CLS sin tener en
cuenta diferencias específicas del lenguaje tales como los tipos de datos. Algunas de las características de CLS que utilizan los
programas de JScript 7.0 son los espacios de nombres, los atributos, los parámetros por referencia y las matrices nativas.
A continuación se muestran algunas de las características nuevas de JScript .NET y JScript 8.0:
Lo nuevo en JScript 8.0
Opción del compilador /platform
La opción /platform se utiliza para especificar el tipo de procesador al que va dirigido el archivo de resultados: x86 para los
procesadores compatibles con Intel de 32 bits, Itanium para los procesadores Intel de 64 bits y x64 para los procesadores
AMD de 64 bits. El valor predeterminado (anycpu) permite ejecutar el archivo de resultados en cualquier plataforma.
Lo nuevo en JScript .NET 2003
Contexto de seguridad restringido para el método eval
Con el fin de ayudar a mantener la seguridad, el método eval integrado ejecuta ahora de manera predeterminada las
secuencias de comandos en un contexto de seguridad restringido, independientemente de los permisos que tenga el
llamador. Al llamar a eval con "unsafe" como segundo parámetro opcional, la secuencia de comandos se ejecuta con los
permisos del llamador, permitiendo así el acceso al sistema de archivos, a la red o a la interfaz de usuario. Para obtener más
información, vea eval (Método).
Lo nuevo en JScript .NET 2002
Objetos basados en clases
JScript .NET (al igual que JScript) admite la herencia mediante objetos basados en prototipos. JScript .NET admite también
objetos basados en clase que permiten la declaración de clases que definen los datos y el comportamiento de los objetos.
Las clases que se crean en JScript .NET pueden ser utilizadas y extendidas a cualquier lenguaje .NET. Las clases pueden
heredar las propiedades y métodos de una clase base. Existen varios atributos que se pueden aplicar a las clases y a los
miembros de clase que modifican su comportamiento y visibilidad. Para obtener más información, vea
Objetos basados en clases.
Tipos de datos de JScript
En JScript .NET (al igual que JScript), se puede escribir programas sin especificar los tipos de datos para las variables. JScript
.NET también se puede utilizar como un lenguaje con establecimiento inflexible de tipos, en el que todas las variables se
enlazan a un tipo de dato determinado o se puede utilizar una combinación de variables con y sin tipo. JScript .NET
proporciona algunos tipos de datos nuevos. También se pueden utilizar como tipos de datos clases y tipos .NET. Para obtener
más información, vea Tipos de datos de JScript.
Compilación condicional
Las directivas controlan la compilación del programa JScript .NET. Por ejemplo, la directiva @debug activa o desactiva la
emisión de información de depuración para una parte determinada de la secuencia de comandos Para obtener más
información, vea @debug (Directiva). la directiva @position fija el número de línea del depurador para la línea actual. Para
obtener más información, vea @debug (Directiva). Estas dos directivas son útiles si se está escribiendo código que será
incorporado en otras secuencias de comandos. Para obtener más información, vea Compilación condicional.
Espacios de nombres JScript
Los espacios de nombres evitan los conflictos de nomenclatura mediante la organización de clases, interfaces y métodos
dentro de unas jerarquías. En JScript .NET se pueden definir espacios de nombres propios. También, se puede obtener acceso
a cualquier espacio de nombres .NET Framework con JScript .NET, además de los que el usuario defina. La instrucción
package permite el empaquetado de clases relacionadas para un desarrollo sencillo y para evitar conflictos de nomenclatura.
Para obtener más información, vea package (Instrucción). La instrucción import hace que un espacio de nombres .NET
Framework este disponible para una secuencia de comandos de modo que éste pueda obtener acceso a las clases y a los
interfaces en el espacio de nombres. Para obtener más información, vea import (Instrucción).
Variables y constantes de JScript
JScript .NET presenta una instrucción const que define un identificador que representa un valor constante. Para obtener más
información, vea Variables y constantes de JScript.
Enumeraciones
JScript .NET presenta la instrucción enum que permite crear tipos de datos enumerados. Con una enumeración se pueden
especificar nombres útiles para los valores de los tipos de datos. Para obtener más información, vea enum (Instrucción).
Vea también
Conceptos
Recursos adicionales para programadores de JScript
Lo nuevo en el lenguaje Visual Basic
Otros recursos
Lo nuevo en Visual Studio 2005
Modificadores
Tipos de datos (JScript)
Directivas
Instrucciones
Referencia de JScript
JScript 8.0

Introducción a JScript 8.0 para programadores de JScript


La información que se ofrece a continuación va dirigida sobre todo a los programadores que ya conocen JScript y desean
conocer las nuevas características de JScript 8.0.
Tareas comunes
Cómo compilar programas
El compilador de línea de comandos de JScript 8.0 crea executables y ensamblados a partir de programas JScript. Para
obtener más información, vea Cómo: Compilar código JScript en la línea de comandos.
Cómo escribir un programa "Hola a todos"
Es muy sencillo escribir la versión de JScript 8.0 de "Hola a todos". Para obtener más información, vea
La versión de JScript del programa "Hola a todos".
Cómo usar los tipos de datos
En JScript 8.0, los signos de dos puntos indican el tipo en una declaración de variable o una definición de función. El tipo
predeterminado es Object, que puede contener cualquiera de los demás tipos. Para obtener más información, vea
Variables y constantes de JScript y Funciones de JScript.
JScript 8.0 tiene varios tipos de datos integrados (como int, long, double, String, Object y Number). Para obtener más
información, vea Tipos de datos de JScript. También puede usar cualquiera de los tipos de datos de .NET Framework después
de importar el espacio de nombres adecuado. Para obtener más información, vea
Referencia de la biblioteca de clases de .NET Framework.
Cómo obtener acceso a un espacio de nombres
Para obtener acceso a un espacio de nombres se utiliza la instrucción import (cuando se usa el compilador de la línea de
comandos) o la directiva @import (cuando se usa ASP.NET). Para obtener más información, vea import (Instrucción). La
opción /autoref (que está activada de manera predeterminada) intenta automáticamente hacer referencia a los
ensamblados correspondientes a los espacios de nombres utilizados en un programa de JScript .NET. Para obtener más
información, vea /autoref.
Cómo crear matrices (nativas) con tipo
Un tipo de datos de matriz con tipo se declara escribiendo corchetes ([]) detrás del nombre del tipo de datos. Todavía se
pueden usar los objetos de matriz de JScript, objetos creados con el constructor Array. Para obtener más información, vea
Información general sobre las matrices.
Cómo crear una clase
En JScript 8.0 puede definir sus propias clases. Las clases pueden incluir métodos, campos, propiedades, inicializadores
estáticos y subclases. Se puede escribir una clase totalmente nueva o heredar de una clase o interfaz existentes. Los
modificadores controlan la visibilidad de los miembros de clase, cómo se heredan los miembros y el comportamiento
general de una clase. También se pueden utilizar atributos personalizados. Para obtener más información, vea
Objetos basados en clases y Modificadores de JScript.
Vea también
Conceptos
Actualizar aplicaciones creadas en versiones anteriores de JScript
Otros recursos
Introducción a JScript
JScript 8.0

La versión de JScript del programa "Hola a todos"


El siguiente programa de consola es la versión de JScript del tradicional programa "Hola a todos", que muestra en pantalla la
cadena Hello World!.
Ejemplo
// A "Hello World!" program in JScript.
print("Hello World!");

A continuación se indican algunos puntos importantes de este programa:


Comentarios
Resultados
Compilación y ejecución
Comentarios
La primera línea del ejemplo contiene un comentario. Puesto que el compilador omite los comentarios, se puede incluir
cualquier texto. El siguiente comentario describe la finalidad del programa.

// A "Hello World!" program in JScript.

La doble barra diagonal (//) indica que el resto de la línea es un comentario. Es posible tanto hacer un comentario en toda una
línea como anexar un comentario al final de otra instrucción, como se muestra a continuación:

var area = Math.PI*r*r; // Area of a circle with radius r.

También pueden utilizarse comentarios multilínea, que comienzan con una barra inclinada seguida por un asterisco (/*) y
terminan con los mismos elementos en orden inverso (*/).

/*
Multiline comments allow you to write long comments.
They can also be used to "comment out" blocks of code.
*/

Para obtener más información, vea Comentarios de JScript.


Resultados
En este ejemplo se utiliza la instrucción print para mostrar la cadena Hello World!:

print("Hello World!");

Para obtener más información, vea print (Instrucción).


Existen otros métodos para que un programa se comunique con el usuario. La clase System.Console expone métodos y
propiedades que facilitan la interacción con la persona que utiliza la consola. Para obtener más información, vea Console. La
clase System.Windows.Forms.MessageBox expone métodos y propiedades que facilitan la interacción con el usuario de
formularios Windows Forms. Para obtener más información, vea System.Windows.Forms.
Compilación y ejecución
Puede compilar el programa "Hola a todos" utilizando el compilador de la línea de comandos.
Para compilar y ejecutar el programa desde la línea de comandos
1. Cree el archivo de código fuente utilizando cualquier editor de texto y guárdelo con un nombre como Hello.js.
2. Para iniciar el compilador, escriba lo siguiente en el símbolo del sistema:
jsc Hello.js

Nota
Deberá compilar el programa desde el símbolo del sistema de Visual Studio. Para obtener más información, vea
Cómo: Compilar código JScript en la línea de comandos.

Si el programa no contiene errores de compilación, el compilador crea un archivo Hello.exe.


3. Para ejecutar el programa, escriba lo siguiente en el símbolo del sistema:

Hello

Vea también
Otros recursos
Escribir, compilar y depurar código JScript
Presentar información mediante JScript
Referencia de JScript
JScript 8.0

Actualizar aplicaciones creadas en versiones anteriores de


JScript
La mayor parte del código de JScript existente funcionará sin problemas con las mejoras incluidas en JScript 8.0 porque JScript
8.0 es casi totalmente compatible con las versiones anteriores. Las nuevas características de JScript 8.0 abarcan nuevas áreas.
De manera predeterminada, los programas de JScript 8.0 se compilan en modo rápido. Puesto que el modo rápido restringe
en cierta medida los tipos de código permitidos, los programas pueden ser más eficaces y ejecutarse más rápidamente. Sin
embargo, algunas características disponibles en versiones anteriores no están disponibles en modo rápido. En su mayoría,
estas características no eran compatibles con las aplicaciones de múltiples subprocesos y generaban un código poco eficaz.
Para los programas compilados con el compilador de la línea de comandos, puede desactivar el modo rápido y obtener una
compatibilidad total con las versiones anteriores. Observe que el código compilado de este modo es más lento y más
susceptible a errores. El modo rápido no se puede desactivar en las aplicaciones de ASP.NET porque se producirían problemas
de estabilidad. Para obtener más información, vea /fast.
Modo rápido
En modo rápido, se desencadenan los siguientes comportamientos de JScript:
Es preciso declarar todas las variables.
Las funciones se convierten en constantes.
Los objetos intrínsecos no pueden tener propiedades expando.
No se pueden enumerar ni cambiar las propiedades de los objetos intrínsecos.
El objeto arguments no está disponible.
No se puede asignar a un método, un campo o una variable de sólo lectura.
El método eval no puede definir identificadores en el ámbito que lo contiene.
El método eval ejecuta las secuencias de comandos en un contexto de seguridad restringido.
Es preciso declarar todas las variables
Las versiones anteriores de JScript no requerían la declaración explícita de variables. Si bien está característica hace que los
programadores tengan que escribir menos caracteres, dificulta el seguimiento de los errores. Por ejemplo, se puede asignar un
valor a un nombre de variable mal escrito, lo que no generaría un error ni devolvería el resultado deseado. Además, las
variables no declaradas tienen un ámbito global, lo que puede originar más confusión.
El modo rápido requiere declaraciones explícitas de variables. Esto ayuda a evitar los tipos de error anteriormente
mencionados y genera código que se ejecuta con mayor rapidez.
JScript .NET también admite variables con anotación de tipo. Esto enlaza cada variable con un tipo de datos concreto y la
variable puede guardar sólo datos de ese tipo. Aunque la anotación de tipos no es necesaria, su uso ayuda a evitar errores
asociados con el almacenamiento accidental de datos erróneos en una variable y puede aumentar la velocidad de ejecución del
programa.
Para obtener más información, vea Variables y constantes de JScript.
Las funciones se convierten en constantes
En versiones anteriores de JScript, las funciones declaradas con la instrucción function se trataban igual que las variables que
contenían un objeto Function. En concreto, se podía utilizar cualquier identificador de función como variable para guardar
cualquier tipo de datos.
En modo rápido, las funciones se convierten en constantes. En consecuencia, a las funciones no se les pueden asignar nuevos
valores ni se pueden redefinir. De esta manera, se impide que se cambie accidentalmente el significado de una función.
Si la secuencia de comandos requiere un cambio de función, puede usar de manera explícita una variable para que contenga
una instancia del objeto Function. Observe, sin embargo, que los objetos Function son lentos. Para obtener más información,
vea Function (Objeto).
Los objetos intrínsecos no pueden tener propiedades expando
En versiones anteriores de JScript, se podían agregar propiedades expando a los objetos intrínsecos. Este comportamiento se
podía utilizar para agregar un método a un objeto String, por ejemplo, con el fin de quitarle espacios iniciales a la cadena.
Esto no está permitido en el modo rápido. Si la secuencia de comandos depende de esta característica, deberá modificarla.
Puede definir funciones en el ámbito global en lugar de asociar dichas funciones como métodos a los objetos. A continuación,
vuelva a escribir cada instancia en la secuencia de comandos en que se llama a un método expando desde el objeto para que el
objeto pase a la función adecuada.
Una excepción significativa a esta regla es el objeto Global, que puede seguir teniendo propiedades expando. Todos los
identificadores del ámbito global son en realidad propiedades del objeto Global. Naturalmente, el objeto Global tiene que ser
extensible dinámicamente para admitir la adición de nuevas variables globales.
No se pueden enumerar ni cambiar las propiedades de los objetos intrínsecos
En las versiones anteriores de JScript, se podía eliminar o enumerar las propiedades predefinidas de los objetos intrínsecos o
incluso o escribir en ellas. Este comportamiento podía utilizarse para cambiar, por ejemplo, el método toString
predeterminado del objeto Date.
Esto no está permitido en el modo rápido. Esta característica ya no es necesaria, puesto que los objetos intrínsecos no pueden
tener propiedades expando y las propiedades de cada objeto se enumeran en la sección de referencia. Para obtener más
información, vea Objetos.
El objeto arguments no está disponible
Las versiones anteriores de JScript proporcionaban un objeto arguments dentro de las definiciones de función, que permitía
que las funciones aceptaran un número arbitrario de argumentos. El objeto arguments facilitaba también una referencia a la
función actual y a la función de llamada.
El objeto arguments no está disponible en modo rápido. Sin embargo, JScript 8.0 permite que las declaraciones de función
especifiquen una matriz de parámetros en la lista de parámetros de funciones. Esto permite que la función acepte un número
arbitrario de argumentos, con lo que reemplaza parte de la funcionalidad del objeto arguments. Para obtener más
información, vea function (Instrucción).
No hay ninguna forma de tener acceso ni hacer referencia directamente a la función actual o a la función de llamada en el
modo rápido.
No se puede asignar a un método, un campo o una variable de sólo lectura
En las versiones anteriores de JScript, parecía que las instrucciones podían asignar un valor a un identificador de sólo lectura.
La asignación producía un error que podía pasar desapercibido y la única forma de advertir el error de la asignación era
comprobar si el valor había cambiado realmente. La asignación de valores a los identificadores de sólo lectura se hace
normalmente por error, ya que no surte ningún efecto.
En modo rápido, se genera un error de tiempo de compilación si se trata de asignar un valor a un identificador de sólo lectura.
Puede eliminar la asignación o tratar de asignar un valor a un identificador que no sea de sólo lectura.
Si desactiva el modo rápido, las asignaciones a identificadores de sólo lectura producirán errores que no se perciben en tiempo
de ejecución, pero en tiempo de compilación aparecerá una advertencia.
El método eval no puede definir identificadores en el ámbito que lo contiene
En las versiones anteriores de JScript, las funciones y variables se podían definir en el ámbito local o global mediante una
llamada al método eval.
En modo rápido, las funciones y variables se pueden definir en una llamada al método eval, pero son accesibles desde esa
llamada concreta. Una vez que termina el método eval, las funciones y variables definidas en el método eval ya no están
accesibles. El resultado de un cálculo realizado dentro de un método eval se puede asignar a cualquier variable que esté
accesible en el ámbito actual. Las llamadas al método eval son lentas y se recomienda volver a escribir el código que las
contenga.
El comportamiento anterior del método eval se restaura si se desactiva el modo rápido.
El método eval ejecuta las secuencias de comandos en un contexto de seguridad restringido
En las versiones anteriores de JScript, el código que se pasa al método eval se ejecutaría en el mismo contexto de seguridad
que el código de llamada.
Para ayudar a proteger a los usuarios, el código que se pasa al método eval se ejecuta en un contexto de seguridad
restringido, a menos que se pase la cadena "unsafe" como segundo parámetro. El contexto de seguridad restringido prohíbe el
acceso a los recursos del sistema, como el sistema de archivos, la red o la interfaz de usuario. Si el código intenta obtener
acceso a estos recursos, se genera una excepción de seguridad.
Si el segundo parámetro de eval es la cadena "unsafe", el código que se pasa al método eval se ejecuta en el mismo contexto
de seguridad que el código de llamada. De esta forma, se restaura el comportamiento anterior del método eval.
Nota de seguridad
Utilice eval en modo no seguro sólo para ejecutar cadenas de código obtenidas de orígenes conocidos.

Vea también
Referencia
/fast
Conceptos
Introducción a JScript 8.0 para programadores de JScript
Otros recursos
Introducción a JScript
JScript 8.0

Ejecutar una aplicación de JScript en una versión anterior de


Common Language Runtime
A menos que se especifique lo contrario, las aplicaciones de JScript se generan de forma que se ejecuten con la versión de
Common Language Runtime que utiliza el compilador para generarlas. No obstante, es posible que una aplicación .exe o
ASP.NET que se generó con una versión determinada del motor en tiempo de ejecución se ejecute en cualquier versión de
dicho motor.
Aceptar otras versiones del motor en tiempo de ejecución
Para ello, la aplicación .exe necesita un archivo app.config que contenga la información de la versión del motor en tiempo de
ejecución (con la etiqueta supportedRuntime). Otros lenguajes de Visual Studio ofrecen compatibilidad con el Entorno de
desarrollo integrado (IDE) con el fin de modificar el archivo app.config por medio del cuadro de diálogo de páginas de
propiedades del proyecto. Por ejemplo, puede modificar la propiedad SupportedRuntimes de una aplicación para Windows
de Visual C# y utilizar ese archivo app.config en la aplicación de JScript.
En tiempo de ejecución, el nombre del archivo app.config debe ser archivo.ext.config (donde archivo.ext es el nombre del
ejecutable que inició la aplicación) y el archivo debe estar en el mismo directorio que el ejecutable. Por ejemplo, si la aplicación
tiene el nombre TestApp.exe, el archivo app.config se denominará TestApp.exe.config.
Si se especifica más de una versión del motor en tiempo de ejecución y la aplicación se ejecuta en un equipo con más de un
versión instalada, utilizará la primera versión especificada en el archivo config que coincida con el motor en tiempo de
ejecución instalado que esté disponible en el sistema.
Para obtener más información, vea
Cómo: Utilizar el archivo de configuración de una aplicación para determinar la versión de .NET Framework que se va a usar.
Como las páginas Web ASP.NET de JScript son páginas de formularios Web Forms de un único archivo, no están
precompiladas en un archivo .dll con una dependencia en el ensamblado de .NET Framework asociado al compilador. Por
tanto, las páginas se compilan en tiempo de ejecución y no es necesaria la información de la versión del motor en tiempo de
ejecución en el archivo web.config.
Vea también
Referencia
SupportedRuntimes (Propiedad)
Conceptos
Modelo de código de las páginas Web ASP.NET
JScript 8.0

Recursos adicionales para programadores de JScript


Los siguientes sitios y grupos de noticias proporcionan respuesta a problemas comunes sobre programación en JScript.
Recursos de Microsoft en el Web
Servicio de soporte técnico de Microsoft (http://support.microsoft.com/)
Proporciona acceso a los artículos de Knowledge Base, a las descargas y actualizaciones, difusiones por Web del servicio de
soporte técnico y otros servicios.
Grupos de noticias de MSDN (http://www.microsoft.com/spanish/msdn/gruposnoticias.asp)
Ofrece un modo de ponerse en contacto como una comunidad de expertos de todo el mundo.
Microsoft ASP.NET (http://www.asp.net/)
Proporciona artículos, demostraciones, vistas previas de herramientas y otra información para el desarrollo Web en JScript.
Microsoft Windows Script (http://www.microsoft.com/spain/scripting)
Contiene artículos, ejemplos y otra información de interés para los desarrolladores de JScript 5.6.
Recursos de Microsoft en grupos de noticias
microsoft.public.dotnet.languages.jscript
Ofrece un foro de preguntas y debate en general sobre JScript.
microsoft.public.dotnet.scripting
Ofrece un foro de preguntas y debate en general sobre las secuencias de comandos en .NET Framework.
microsoft.public.vsnet.documentation
Ofrece un foro de preguntas y temas relacionados con la documentación de JScript.
microsoft.public.scripting.jscript
Ofrece un foro de preguntas y discusión en general acerca de JScript 5.x.
microsoft.public.scripting.wsh
Ofrece un foro de preguntas y discusión en general acerca de JScript 5.x en Microsoft Windows Script Host (WSH).
Otros recursos en el Web
4GuysFromRolla.com (http://www.4guysfromrolla.com/)
Proporciona artículos, demostraciones, vistas previas de herramientas y otra información para el desarrollo Web en JScript.
DevX (http://www.devx.com/)
Proporciona artículos, demostraciones, vistas previas de herramientas y otra información para el desarrollo en JScript.
Vea también
Otros recursos
Introducción a JScript
JScript 8.0

Escribir, compilar y depurar código JScript


El entorno de desarrollo integrado (IDE) de Visual Studio, que es el entorno de desarrollo común de todos los lenguajes,
proporciona herramientas y esquemas de validación que permiten escribir código confiable. El entorno de desarrollo integrado
proporciona también funciones de depuración que le ayudarán a resolver las incoherencias y a corregir los errores de
codificación.
En esta sección
Cómo: Compilar código JScript en la línea de comandos
Explica cómo utilizar el compilador de la línea de comandos para crear programas compilados de JScript.
Escribir código JScript con Visual Studio
Explica cómo utilizar el entorno de desarrollo integrado (IDE) de Visual Studio para escribir y editar código JScript.
Compilación condicional
Describe cómo y cuándo utilizar la compilación condicional, que permite incluir varias secciones del código en tiempo de
compilación para la depuración y simplifica el uso de las nuevas características de JScript sin renunciar a la compatibilidad
con versiones anteriores.
Detectar las funciones del explorador
Explica cómo determinar las versiones de JScript compatibles con un motor de exploración Web mediante las funciones del
motor de secuencias de comandos y la compilación condicional.
Copiar, pasar y comparar datos
Muestra la diferencia entre almacenar datos por referencia o por valor y cómo la elección de una u otra opción depende del
tipo de datos.
Cómo se sobrecargan métodos en JScript
Explica cómo sobrecargar métodos con el mismo nombre pero con firmas diferentes.
Cómo: Controlar eventos en JScript
Explica cómo controlar eventos vinculando métodos controladores de eventos a eventos existentes.
Depurar JScript con Visual Studio
Ofrece una lista de los procedimientos que permiten la depuración de un programa de línea de comandos o de un programa
de ASP.NET.
Depurar JScript con el depurador de Common Language Runtime
Ofrece una lista de los procedimientos que permiten el uso del depurador del compilador de Common Language Runtime
para un programa de línea de comandos o un programa de ASP.NET.
Solución de problemas en las secuencias de comandos
Proporciona consejos y sugerencias para evitar errores típicos de secuencias de comandos en áreas específicas, como la
sintaxis, el orden de interpretación de la secuencia de comandos, la conversión de tipos automática, etc.
Secciones relacionadas
Generar desde la línea de comandos
Explica cómo invocar el compilador desde la línea de comandos y proporciona ejemplos de sintaxis de línea de comandos
que devuelven resultados específicos.
Depurar y generar perfiles de aplicaciones
Explica el proceso de depurar una aplicación de .NET Framework y cómo optimizar aplicaciones mediante .NET Framework si
no está instalado Visual Studio.
JScript 8.0

Cómo: Compilar código JScript en la línea de comandos


Para crear un programa de JScript ejecutable, debe utilizar el compilador de la línea de comandos, jsc.exe. Hay varias formas de
iniciar el compilador.
Si Visual Studio está instalado, puede utilizar el Símbolo del sistema de Visual Studio para tener acceso al compilador desde
cualquier directorio del equipo. El símbolo del sistema de Visual Studio está en la carpeta Tools de Visual Studio, dentro del
grupo de programas Microsoft Visual Studio.
Otra opción es iniciar el compilador desde el Símbolo del sistema de Windows, que es el procedimiento que se suele utilizar
cuando no está instalado Visual Studio.
El Símbolo del sistema de Windows
Para iniciar el compilador desde el Símbolo del sistema de Windows, debe ejecutar la aplicación desde su directorio o escribir
la ruta de acceso completa del ejecutable en el símbolo del sistema. Para cambiar este comportamiento predeterminado, debe
modificar la variable de entorno PATH, que permite ejecutar el compilador desde cualquier directorio escribiendo simplemente
el nombre del compilador.
Para modificar la variable de entorno PATH
1. Utilice la función Buscar de Windows para localizar el archivo jsc.exe en la unidad local. El nombre exacto del directorio
donde se encuentra jsc.exe depende del nombre y la ubicación del directorio Windows, y de la versión instalada de .NET
Framework. Si se han instalado varias versiones de .NET Framework, deberá determinar la versión que va a utilizar
(normalmente, la más reciente).
Por ejemplo, el compilador puede estar ubicado en C:\WINNT\Microsoft.NET\Framework\v1.0.2914.
2. Haga clic con el botón secundario del mouse (ratón) en el icono Mi PC del escritorio (Windows 2000) y, en el menú
contextual, elija Propiedades.
3. Seleccione la ficha Avanzadas y haga clic en el botón Variables de entorno.
4. En el panel Variables del sistema, seleccione "Path" de la lista y haga clic en Modificar.
5. En el cuadro de diálogo Modificar la variable del sistema, desplace el cursor hasta el final de la cadena en el campo
Valor de variable y escriba un punto y coma (;) seguido del nombre de directorio completo localizado en el paso 1.
Siguiendo con el ejemplo del paso 1, debería escribir:
;C:\WINNT\Microsoft.NET\Framework\v1.0.2914

6. Haga clic en Aceptar para aceptar los cambios y cerrar los cuadros de diálogo.
Después de cambiar la variable de entorno PATH, podrá ejecutar el compilador de JScript en el símbolo del sistema de
Windows desde cualquier directorio del equipo.
Usar el compilador
El compilador de la línea de comandos dispone de ayuda integrada. La pantalla de ayuda se muestra cuando se utiliza la
opción de la línea de comandos /help o /? o cuando se usa el compilador sin ninguna opción. Por ejemplo:

jsc /help

Hay dos formas de utilizar JScript. Puede escribir programas para compilarlos desde la línea de comandos o para ejecutarlos
en ASP.NET.
Para compilar mediante jsc
En el símbolo del sistema, escriba jsc archivo.js
El comando compila el programa llamado archivo.js para generar el archivo ejecutable denominado archivo.exe.
Para producir un archivo .dll mediante jsc
En el símbolo del sistema, escriba jsc /target:library archivo.js
El comando compila el programa llamado archivo.js con la opción /target:library para producir el archivo de biblioteca
llamado archivo.dll.
Para producir un ejecutable con otro nombre mediante jsc
En el símbolo del sistema, escriba jsc /out:nuevonombre.exe archivo.js
El comando compila el programa llamado archivo.js con la opción /out: para producir el ejecutable llamado
nuevonombre.exe.
Para compilar con información de depuración mediante jsc
En el símbolo del sistema, escriba jsc /debug archivo.js
El comando compila el programa llamado archivo.js con la opción /debug para producir el ejecutable llamado
archivo.exe y un archivo denominado archivo.pdb que contiene información de depuración.
Hay muchas más opciones de la línea de comandos disponibles para el compilador de la línea de comandos de JScript. Para
obtener más información, vea Opciones del compilador de JScript.
Vea también
Otros recursos
Escribir, compilar y depurar código JScript
Opciones del compilador de JScript
Compilación condicional
JScript 8.0

Escribir código JScript con Visual Studio


El entorno de desarrollo integrado (IDE) de Visual Studio proporciona algunas herramientas para el desarrollo en JScript
similares a las disponibles para otros lenguajes. El cuadro de diálogo Nuevo archivo incluye varias plantillas que
proporcionan un marco de trabajo para los distintos archivos de JScript.
Procedimientos de IDE
Para escribir código JScript nuevo utilizando Visual Studio
1. Inicie Microsoft Visual Studio.
2. En el menú Archivo, haga clic en Nuevo archivo.
3. En el cuadro de diálogo Categorías, haga clic en la carpeta Secuencia de comandos.
4. En el cuadro de diálogo Plantillas, elija Archivo JScript o Web Forms de JScript .NET y haga clic en Abrir.
Para modificar código JScript utilizando Visual Studio
1. Inicie Microsoft Visual Studio.
2. En el menú Archivo, haga clic en Abrir y, a continuación, en Archivo.
3. En el cuadro de diálogo Abrir archivo, localice el archivo de código fuente, selecciónelo y haga clic en Abrir.
Las palabras clave están coloreadas de acuerdo con el lenguaje utilizado en cada archivo. Conforme modifique el código,
aparecerá ayuda aplicable al contexto en la ventana Ayuda dinámica.
Para guardar código JScript en Visual Studio
En el menú Archivo, haga clic en Guardar <nombre de archivo> o en Guardar <nombre de archivo> como.
Nota
No puede compilar código JScript en el IDE de Visual Studio. Este paso se debe llevar a cabo desde la línea de comando
s o con la página ASP.NET.

Vea también
Conceptos
Generar desde la línea de comandos
Depurar JScript con Visual Studio
Depurar JScript con el depurador de Common Language Runtime
Otros recursos
Escribir, compilar y depurar código JScript
Entorno de desarrollo integrado de Visual Studio
Utilizar IntelliSense
JScript 8.0

Compilación condicional
La compilación condicional permite que JScript utilice las nuevas características del lenguaje JScript sin renunciar a la
compatibilidad con versiones anteriores que no admitan dichas características. Entre los usos típicos de la compilación
condicional destacan el uso de las nuevas características de JScript, la compatibilidad con la incrustación y depuración en una
secuencia de comandos, así como el seguimiento de la ejecución del código.
En esta sección
Directivas de compilación condicional
Proporciona una lista de las directivas que controlan el modo en que se compila una secuencia de comandos y vínculos a
información que explica la sintaxis correcta de cada directiva.
Instrucciones de compilación condicional
Proporciona una lista junto con una descripción de las instrucciones que controlan la compilación de una secuencia de
comandos en función de los valores de las variables.
Variables de compilación condicional
Ofrece una lista de las variables predefinidas para la compilación condicional.
Secciones relacionadas
Escribir, compilar y depurar código JScript
Proporciona vínculos a temas que explican cómo utilizar el entorno de desarrollo integrado (IDE) para escribir código JScript.
Cómo: Compilar código JScript en la línea de comandos
Explica cómo utilizar el compilador de la línea de comandos para crear programas compilados de JScript.
Detectar las funciones del explorador
Explica cómo determinar las versiones de JScript compatibles con un motor de exploración Web mediante las funciones del
motor de secuencias de comandos y la compilación condicional.
Opciones del compilador de JScript
Proporciona vínculos a información sobre las opciones del compilador disponibles para el compilador de la línea de
comandos de JScript.
JScript 8.0

Directivas de compilación condicional


Las siguientes directivas modifican el comportamiento predeterminado cuando se compila código para depuración.
Directivas
Directiva Descripción
@debug Activa o desactiva la emisión de símbolos de depuración.

@position Proporciona información de posición útil en los mensajes de error.

Estas directivas se proporcionan para desarrolladores que diseñan código que los entornos host (como ASP.NET) incluyen
automáticamente en programas de JScript. El código incluido no suele tener interés para los autores que escriben secuencias
de comandos que se ejecutan en el entorno. Cuando estos autores depuran su código, sólo desean ver las partes del programa
que escribieron, y no el código u otras partes generadas por las herramientas de desarrollo.
Estas directivas de compilación condicional pueden "ocultar" código desactivando la emisión de símbolos de depuración y
restableciendo la posición de línea. De este modo, los creadores sólo pueden ver el código que escriben al depurar una
secuencia de comandos.
Vea también
Referencia
/debug
Conceptos
Variables de compilación condicional
Instrucciones de compilación condicional
Otros recursos
Compilación condicional
JScript 8.0

Instrucciones de compilación condicional


Las instrucciones siguientes permiten que JScript controle la compilación de una secuencia de comandos en función de los
valores de las variables de compilación condicional. Puede utilizar las variables proporcionadas por JScript o puede definir las
suyas propias con la directiva @set o con la opción /define de la línea de comandos.
Instrucciones
Instrucción Descripción
@cc_on Activa la compatibilidad con la compilación condicional.

@if Ejecuta de forma condicional un grupo de instrucciones, dependiendo del valor de una expresión.

@set Crea variables utilizadas con instrucciones de compilación condicional.

Las instrucciones @cc_on, @if o @set activan la compilación condicional. Entre los usos típicos de la compilación condicional
destacan el uso de las nuevas características de JScript, la compatibilidad con la incrustación y depuración en una secuencia de
comandos, así como el seguimiento de la ejecución del código.
Cuando escriba secuencias de comandos para que se ejecuten con exploradores Web, debe incluir siempre el código de
compilación condicional entre delimitadores de comentario. De esta forma, los hosts que no admitan la compilación
condicional podrán omitir este código. A continuación se muestra un ejemplo.

/*@cc_on @*/
/*@if (@_jscript_version >= 5)
document.write("JScript Version 5.0 or better.<BR>");
@else @*/
document.write("You need a more recent script engine.<BR>");
/*@end @*/

En este ejemplo se utilizan delimitadores de comentario especiales que sólo se emplean si la compilación condicional se activa
mediante la instrucción @cc_on. Los motores de secuencias de comandos que no admiten la compilación condicional
muestran un mensaje que informa de la necesidad de un nuevo motor de secuencias sin generar errores. Los motores que
admiten la compilación condicional compilan el primer o el segundo document.write, dependiendo de la versión del motor.
Tenga en cuenta que la versión 7.x representa JScript .NET. Para obtener más información, vea
Detectar las funciones del explorador.
La compilación condicional es útil también para las secuencias de comandos del servidor y los programas de línea de
comandos. En estas aplicaciones, se puede utilizar la compilación condicional para compilar funciones adicionales en un
programa que simplifiquen la creación de perfiles cuando se emplea el modo de depuración.
Vea también
Referencia
/define
Conceptos
Variables de compilación condicional
Directivas de compilación condicional
Detectar las funciones del explorador
Otros recursos
Compilación condicional
JScript 8.0

Variables de compilación condicional


Las siguientes variables predefinidas se pueden usar con la compilación condicional.
Variables
Variable Descripción
@_win32 true si se ejecuta en un sistema Win32 y no se especifica la opción /platform o se especifica la opción /platform:
anycpuse; de lo contrario NaN.

@_win16 true si se ejecuta en un sistema Win16; en caso contrario, NaN.

@_mac true si se ejecuta en un sistema Apple Macintosh; en caso contrario, NaN.

@_alpha true si se ejecuta en un procesador DEC Alpha; en caso contrario, NaN.

@_x86 true si se ejecuta en un sistema Win32 y no se especifica la opción /platform o se especifica la opción /platform:
anycpuse; de lo contrario NaN.

@_mc680x0 true si se ejecuta en un procesador Motorola 680x0; en caso contrario, NaN.

@_PowerPC true si se ejecuta en un procesador Motorola PowerPC; en caso contrario, NaN.

@_jscript Siempre true.

@_jscript_bui Número de compilación del motor de secuencias de comandos de JScript.


ld

@_jscript_ver Número que representa el número de versión de JScript con la forma principal.revisión.
sion

@_debug true si se compila en modo de depuración; en caso contrario, false.

@_fast true si se compila en modo rápido; en caso contrario, false.


Nota
El número de versión que aparece para JScript .NET es 7.x. El número de versión que aparece para JScript 8.0 es 8.x.

Antes de utilizar una variable de compilación condicional, la compilación condicional debe estar activada. La instrucción
@cc_on puede activar la compilación condicional. Las variables de compilación condicional se suelen utilizar en secuencias de
comandos escritas para exploradores Web. No es muy común utilizar variables de compilación condicional en secuencias de
comandos escritas para páginas de ASP o ASP.NET, o programas de línea de comandos, ya que las características de los
compiladores pueden determinarse mediante otros métodos.
Cuando escriba secuencias de comandos para una página Web, incluya siempre el código de compilación condicional entre
delimitadores de comentario. De esta forma, los hosts que no admitan la compilación condicional podrán omitir este código. A
continuación se muestra un ejemplo.

/*@cc_on
document.write("JScript version: " + @_jscript_version + ".<BR>");
@if (@_win32)
document.write("Running on 32-bit Windows.<BR>");
@elif (@_win16)
document.write("Running on 16-bit Windows.<BR>");
@else
document.write("Running on a different platform.<BR>");
@end
@*/

Las variables de compilación condicional se pueden utilizar para determinar la información de versión del motor que
interpreta una secuencia de comandos. De este modo, las secuencias de comandos pueden aprovecharse de las funciones
disponibles en las últimas versiones de JScript y mantener, al mismo tiempo, la compatibilidad con versiones anteriores. Para
obtener más información, vea Detectar las funciones del explorador.
Vea también
Conceptos
Directivas de compilación condicional
Instrucciones de compilación condicional
Detectar las funciones del explorador
Otros recursos
Compilación condicional
JScript 8.0

Detectar las funciones del explorador


Si bien los exploradores son compatibles con casi todas las características de JScript, las nuevas características de .NET
Framework, los objetos basados en clases, los tipos de datos, las enumeraciones, las directivas de compilación condicional y la
instrucción const sólo se admiten en el servidor. Por tanto, estas características deben utilizarse exclusivamente en las
secuencias de comandos del servidor. Para obtener más información, vea Información de versión de JScript.
Una secuencia de comandos de JScript puede detectar las funciones del motor que la interpreta o compila. Esto no es
necesario si se escribe código para una aplicación de servidor (que se va a ejecutar en ASP o ASP.NET) o para un programa de
la línea de comandos, ya que es fácil descubrir la versión admitida de JScript y escribir el código correspondiente. Sin embargo,
cuando se ejecutan secuencias de comandos de cliente en un explorador, esta detección es importante para garantizar que la
secuencia de comandos es compatible con el motor de JScript en el explorador.
La compatibilidad con JScript se puede comprobar de dos maneras: utilizando las funciones del motor en tiempo de ejecución
o la compilación condicional. Cada uno de estos enfoques tiene sus propias ventajas.
Funciones del motor en tiempo de ejecución
Las funciones del motor en tiempo de ejecución (ScriptEngine, ScriptEngineBuildVersion, ScriptEngineMajorVersion,
ScriptEngineMinorVersion) devuelven información sobre su versión actual. Para obtener más información, vea
Funciones de JScript.
Para obtener la máxima compatibilidad, sólo se deben utilizar las características de la versión 1 de JScript en una página que
comprueba las versiones compatibles de JScript. Si un motor es compatible con una versión de JScript posterior a la versión
1.0, se puede ir a otra página que contenga las características avanzadas. Esto quiere decir que se debe tener distintas
versiones de cada página Web que se correspondan con cada una de las versiones de JScript para las que se desea tener
compatibilidad. En la mayoría de las situaciones, la mejor solución consiste en tener sólo dos páginas: una diseñada para una
versión concreta de JScript y otra diseñada para trabajar sin JScript.
Nota
El código de JScript que utiliza las características avanzadas debe colocarse en una página independiente que no ejecuten los
exploradores con motores incompatibles. Esto es obligatorio porque el motor en tiempo de ejecución de un explorador inter
preta todo el código de JScript de una página. El uso de una instrucción if…else para alternar entre un bloque de código que
utiliza la versión más reciente de JScript y un bloque de código de la versión 1 de JScript no funciona con motores más antig
uos.

En el siguiente ejemplo se muestra el uso de las funciones del motor en tiempo de ejecución. Puesto que estas funciones se
introdujeron en la versión 2.0 de JScript, es necesario determinar primero si el motor es compatible con las funciones antes de
intentar utilizarlas. Si el motor sólo es compatible con JScript Versión 1.0 o no reconoce JScript, el operador typeof devolverá
la cadena "undefined" para cada nombre de función.

if("undefined" == typeof ScriptEngine) {


// This code is run if the script engine does not support
// the script engine functions.
var version = 1;
} else {
var version = ScriptEngineMajorVersion();
}
// Display the version of the script engine.
alert("Engine supports JScript version " + version);
// Use the version information to choose a page.
if(version >= 5) {
// Send engines compatible with JScript 5.0 and better to one page.
var newPage = "webpageV5.htm";
} else {
// Send engines that do not interpret JScript 5.0 to another page.
var newPage = "webpagePre5.htm";
}
location.replace(newPage);

Compilación condicional
Las variables e instrucciones de la compilación condicional pueden ocultar código de JScript a los motores no compatibles con
la compilación condicional. Este enfoque resulta útil si se desea incluir una pequeña cantidad de código alternativo
directamente en la página Web.
Nota
No utilice comentarios de varias líneas en los bloques de compilación condicional, ya que los motores no compatibles con es
ta compilación podrían interpretarlos erróneamente.

<script>
/*@cc_on
@if(@_jscript_version >= 5 )
// Can use JScript Version 5 features such as the for...in statement.
// Initialize an object with an object literal.
var obj = {"a" : "Athens" , "b" : "Belgrade", "c" : "Cairo"};
var key;
// Iterate the properties.
for (key in obj) {
document.write("The "+key+" property has value "+obj[key]+".<BR>");
}
@else
@*/
alert("Engine cannot interpret JScript Version 5 code.");
//@end
</script>

Si el bloque condicional @if contiene mucho código, puede resultar más fácil utilizar el enfoque anteriormente descrito para
usar las funciones del motor en tiempo de ejecución.
Vea también
Conceptos
Información de versión de JScript
Otros recursos
Escribir, compilar y depurar código JScript
Funciones de JScript
Compilación condicional
JScript 8.0

Copiar, pasar y comparar datos


El modo en que JScript copia, pasa y compara datos depende de cómo se almacenen los datos, lo que, a su vez, depende del
tipo de datos. JScript almacena los datos por valor o por referencia.
Por valor o por referencia
JScript copia, pasa y compara números y valores Boolean (true y false) por valor. Este proceso asigna un espacio en la
memoria del equipo y copia en él el valor del original. Los cambios en el original no afectan a la copia (y viceversa), porque son
entidades independientes. Dos números o valores Boolean se consideran equivalentes si tienen el mismo valor.
JScript copia, pasa y compara los objetos, matrices y funciones por referencia. Básicamente, este proceso crea una referencia al
elemento original y la utiliza como si fuera una copia. Los cambios en el original afectan tanto al original como a su copia (y
viceversa). En realidad, sólo hay una entidad; la copia es sólo otra referencia a los datos.
Para que la comparación por referencia sea correcta, las dos variables deben hacer referencia exactamente a la misma entidad.
Por ejemplo, el resultado de una comparación entre dos objetos Array siempre será diferente, aunque contengan los mismos
elementos. Para que la comparación se realice correctamente, una de las variables debe ser una referencia a la otra. Para
comprobar si los dos objetos Array contienen los mismos elementos, compare los resultados del método toString().
Por último, JScript copia y pasa cadenas por referencia. El modo en que se comparan las cadenas depende de si éstas son o no
son objetos. Dos objetos String (creados con new String("cualquier cosa")) se comparan por referencia. Si una o las dos
cadenas son literales o valores de cadena primitivos, se comparan por valor. Para obtener más información, vea
Asignaciones e igualdad en JScript.
Nota
Los juegos de caracteres ASCII y ANSI se crean de modo que las letras mayúsculas preceden a las letras minúsculas en orden
de secuencia. Por ejemplo, "Zoo" es menor que "alianza". Puede llamar a toUpperCase() o toLowerCase() en ambas cadena
s si desea realizar una comparación en la que no se distingan mayúsculas y minúsculas.

Parámetros de función
Cuando JScript pasa un parámetro a una función por valor, realiza una copia independiente del parámetro que sólo existe
dentro de la función. Aunque los objetos y matrices se pasen por referencia, si se sobrescriben directamente con un nuevo
valor en la función, el nuevo valor no se reflejará fuera de la función. Sólo los cambios en las propiedades de los objetos o de
los elementos de las matrices son visibles fuera de la función.
Por ejemplo, el programa siguiente tiene dos funciones. La primera función sobrescribe el parámetro de entrada, que impide
que los cambios realizados en el parámetro afecten al argumento de entrada original. La segunda función cambia la propiedad
del objeto sin sobrescribirlo.

function clobber(param) {
// Overwrite the parameter; this will not be seen in the calling code
param = new Object();
param.message = "This will not work.";
}

function update(param) {
// Modify the property of the object; this will be seen in the calling code.
param.message = "I was changed.";
}

// Create an object, and give it a property.


var obj = new Object();
obj.message = "This is the original.";

// Call clobber, and print obj.message.


clobber(obj);
print(obj.message);

// Call update, and print obj.message.


update(obj);
print(obj.message);
El resultado de este código es:

This is the original.


I was changed.

Comparación de datos
JScript puede comparar datos por valor o por referencia. Para realizar una comprobación por valor, JScript compara dos
elementos distintos para determinar si son iguales. Normalmente, esta comparación se realiza byte a byte. Cuando la
comprobación se realiza por referencia, lo que se comprueba es si los dos elementos hacen referencia al mismo elemento. Si
es así, se comparan como elementos iguales; si no, aunque contengan exactamente los mismos valores, byte a byte, no se
comparan como elementos iguales.
Las cadenas se pueden comparar por valor o por referencia, dependiendo de si son o no son objetos. Si ambas cadenas son
objetos String, se comparan por referencia; de lo contrario, se comparan por valor. Esto permite que dos cadenas se comparen
como elementos iguales si se crearon independientemente una de otra, pero tienen el mismo contenido. Para comparar los
valores de dos objetos String, primero hay que convertir los objetos en cadenas no de objeto con los métodos toString o
valueOf y después comparar las cadenas resultantes. Para obtener más información, vea Asignaciones e igualdad en JScript.
Vea también
Conceptos
Asignaciones e igualdad en JScript
Resumen de tipos de datos
Otros recursos
Paseo por el lenguaje JScript
Funciones de JScript
JScript 8.0

Cómo se sobrecargan métodos en JScript


Cuando dos o más miembros (funciones o propiedades) de JScript de una clase tienen el mismo nombre pero firmas
diferentes, se denominan funciones (propiedades) "sobrecargadas" La "firma" de una función se basa en el número, el tipo y el
orden de los parámetros que acepta. Dos funciones tienen la misma firma si aceptan el mismo número de argumentos, con el
mismo tipo, en el mismo orden. Las funciones que aceptan los mismos tipos de argumentos en un orden diferente, o las
funciones que tienen un número diferente de argumentos o argumentos de tipos diferentes tienen distintas firmas. (Observe
que los nombres de los argumentos no tienen ningún efecto sobre la firma.) Las funciones estáticas también pueden participar
en la sobrecarga, pero como ocurre con los tipos devueltos, el estado estático de un método no afecta a su firma. Por tanto, un
método estático con el mismo nombre que un método de instancia debe tener una lista de parámetros diferente.
Procesar la lógica
Cuando se llama a una función sobrecargada, se llama a la función sobrecargada cuyos argumentos coinciden estrechamente
con los argumentos pasados, dependiendo de los tipos reales de argumentos que se pasaron a la función. Si los tipos de
argumento coinciden exactamente con una sobrecarga concreta, a continuación se llama a esa sobrecarga. Si los tipos de
argumento no coinciden exactamente con ninguna sobrecarga, un proceso de eliminación determina a qué sobrecarga se
llama. El proceso de eliminación se basa en la facilidad con la que los tipos reales pueden convertirse en los tipos de las
sobrecargas disponibles. Para obtener más información, vea Conversión en JScript. En este ejemplo, la clase MethodOverload
tiene tres métodos sobrecargados denominados Greetings. La primera sobrecarga no toma ningún parámetro, la segunda
sobrecarga toma un parámetro de un tipo String y la tercera sobrecarga toma dos parámetros: un tipo String y un tipo int.

var methodOverload = new MethodOverload();


methodOverload.Greetings();
methodOverload.Greetings("Mr. Brown");
methodOverload.Greetings(97, "Mr. Brown");

class MethodOverload
{
function Greetings()
{
print("Hello, and welcome!");
}
function Greetings(name : String)
{
print("Hello, " + name + "!");
}
function Greetings(ticket : int, name : String)
{
print("Hello, " + name + "! Your ticket number is " + ticket + ".");
}
}

El resultado de este programa es:

Hello, and welcome!


Hello, Mr.Brown!
Hello, Mr.Brown! Your ticket number is 97.

Vea también
Otros recursos
Paseo por el lenguaje JScript
Tipos de datos de JScript
JScript 8.0

Cómo: Controlar eventos en JScript


Un evento es una acción, como hacer clic con un botón del mouse (ratón), presionar una tecla, modificar datos, o abrir un
documento o un formulario que un usuario realiza normalmente. Además, el código de programa también puede realizar una
acción. Un controlador de eventos es un método enlazado a un evento. Cuando se produce el evento, se ejecuta el código del
controlador de eventos. Los controladores de eventos de JScript .NET pueden conectarse a eventos en cualquier tipo de
aplicación .NET (ASP.NET, formularios Windows Forms, consola, etc.). Sin embargo, no pueden declararse nuevos eventos en
JScript. El código JScript sólo puede utilizar los eventos que ya existen.
Para crear un controlador de eventos para el evento Click de un control Button
Agregue el código siguiente:

// Events.js
import System;
import System.Windows.Forms;

class EventTestForm extends Form


{
var btn : Button;

function EventTestForm()
{
btn = new Button;
btn.Text = "Fire Event";
Controls.Add(btn);
// Connect the function to the event.
btn.add_Click(ButtonEventHandler1);
btn.add_Click(ButtonEventHandler2);
}

// Add an event handler to respond to the Click event raised


// by the Button control.
function ButtonEventHandler1(sender, e : EventArgs)
{
MessageBox.Show("Event is Fired!");
}

function ButtonEventHandler2(sender, e : EventArgs)


{
MessageBox.Show("Another Event is Fired!");
}
}

Application.Run(new EventTestForm);

Nota
Cada controlador de eventos proporciona dos parámetros. El primer parámetro, sender, proporciona una referencia al
objeto que provocó el evento. El segundo parámetro, e en el ejemplo anterior, pasa un objeto específico al evento que s
e está controlando. Al hacer referencia a las propiedades del objeto (y, a veces, a sus métodos), puede obtener informac
ión tal como la posición del mouse (ratón) para los eventos del mouse o los datos que se están transfiriendo en los eve
ntos de arrastrar y colocar.

Para compilar el código


1. Utilice el compilador de línea de comandos, jsc.exe, suministrado con Visual Studio.
2. Escriba la directiva de línea de comandos siguiente para crear un programa ejecutable de Windows (EXE) denominado
Events.exe:
jsc /target:winexe Events.js
Nota
La provocación de un único evento puede hacer que se llame a varios controladores de eventos si se vinculan tantas fu
nciones al evento como sea necesario:

btn.add_Click(ButtonEventHandler1);
btn.add_Click(ButtonEventHandler2);
. . .

Vea también
Tareas
Cómo: Compilar código JScript en la línea de comandos
Otros recursos
Escribir, compilar y depurar código JScript
JScript 8.0

Depurar JScript con Visual Studio


Algunos programas de JScript están diseñados para que se ejecuten desde la línea de comandos y otros para que se ejecuten
en una página de ASP.NET. El tipo de programa influye en el método de depuración.
Procedimientos
Para configurar la depuración de un programa de línea de comandos
1. Compile el programa que desea depurar utilizando el indicador /debug. Para obtener más información, vea /debug.
2. Inicie Microsoft Visual Studio.
3. En el menú Archivo, haga clic en Abrir y, a continuación, en Proyecto.
4. En el cuadro de diálogo Abrir proyecto, localice el programa compilado (el archivo con la extensión .exe), selecciónelo y
haga clic en Abrir.
5. En el menú Archivo, haga clic en Abrir y, a continuación, en Archivo.
6. En el cuadro de diálogo Abrir archivo, localice el código fuente (el archivo con la extensión .js), selecciónelo y haga clic
en Abrir.
7. En el menú Archivo, haga clic en Guardar todo.
8. Elija un nombre y una ubicación para guardar el nuevo proyecto.
Una vez finalizado el proceso de configuración, puede continuar con la sección Depurar con Visual Studio.
Para configurar la depuración de un programa ASP .NET
1. Inicie Microsoft Visual Studio.
2. Abra el archivo de ASP.NET que va a depurar.
3. Establezca el indicador de depuración en true en la directiva @page. Por ejemplo:

<%@page Language=jscript debug=true %>

4. Abra la página en un explorador para compilarla.


5. En el menú Herramientas de Visual Studio, haga clic en Depurar procesos.
6. En el cuadro de diálogo Procesos, seleccione las opciones Mostrar los procesos del sistema y Mostrar los procesos
de todas las sesiones.
7. En el panel Procesos disponibles del cuadro de diálogo Procesos, seleccione el proceso de trabajo de ASP.NET que
ejecuta esa aplicación Web y haga clic en Asociar.
De manera predeterminada, el proceso de trabajo es aspnet_wp.exe para IIS 5.x (en Windows 2000 y Windows XP) y
w3wp.exe para IIS 6.0 (en Windows Server 2003).
8. En el cuadro de diálogo Asociar al proceso, seleccione Common Language Runtime y haga clic en Aceptar.
9. En el cuadro de diálogo Procesos, haga clic en Cerrar.
Una vez finalizado el proceso de configuración, puede continuar con la sección Depurar con Visual Studio.
Para depurar con Visual Studio
1. En el entorno de desarrollo integrado (IDE) de Visual Studio, abra el archivo que desee depurar, tal como se ha descrito
en las secciones de configuración anteriores.
2. Lleve el cursor hasta la ubicación del archivo donde desea establecer un punto de interrupción y presione F9.
3. Repita el paso anterior para agregar más puntos de interrupción.
4. En el menú Depurar, haga clic en Iniciar.
El programa se ejecutará hasta que encuentre un punto de interrupción o se produzca un error en tiempo de ejecución.
5. En este punto, se abrirán varias ventanas que le permitirán realizar otras operaciones de depuración. Para obtener más
información, vea Guía básica del depurador.
6. Para detener la depuración pero dejar el programa en ejecución, en el menú Depurar, elija Desasociar todo.
De lo contrario, cuando detenga la depuración, el programa terminará.
Cuando se depura un programa compilado desde la línea de comandos, Visual Studio lee de nuevo el programa compilado
cada vez que se inicia el proceso de depuración. Esto permite hacer modificaciones en el código JScript y (después de compilar
de nuevo el código) comprobar el efecto de tales cambios.
Vea también
Tareas
Escribir código JScript con Visual Studio
Conceptos
Generar desde la línea de comandos
Generar desde la línea de comandos
Depurar JScript con el depurador de Common Language Runtime
Otros recursos
Guía básica del depurador
Depurar aplicaciones Web
JScript 8.0

Depurar JScript con el depurador de Common Language


Runtime
Algunos programas de JScript están diseñados para que se ejecuten desde la línea de comandos y otros para que se ejecuten
en una página de ASP.NET. El tipo de programa influye en el método de depuración.
El depurador de Common Language Runtime, dbgclr.exe, se encuentra en el directorio GuiDebug de la instalación de .NET
Framework.
Para utilizar dbgclr.exe, deberá agregar al nombre del programa el nombre de la ruta de acceso o agregar la ruta de acceso a la
ruta de búsqueda.
Procedimientos
Para configurar la depuración de un programa de línea de comandos
1. Escriba el programa en cualquier editor y guárdelo como texto.
2. Compile el programa utilizando el indicador /debug. Para obtener más información, vea /debug.
3. Inicie dbgclr, el depurador de Common Language Runtime.
4. En el menú Archivo de dgbclr, haga clic en Abrir y, a continuación, en Archivo.
5. En el cuadro de diálogo Abrir archivo, abra el archivo de código fuente (el archivo con la extensión .js) que desee
depurar.
6. En el menú Depurar, haga clic en Programa para depurar.
7. En el cuadro de diálogo Programa para depurar, haga clic en los puntos suspensivos (…) situados junto al panel
Programa.
8. En la ventana Buscar programa para depurar, busque el programa compilado (el archivo con la extensión .exe),
selecciónelo y haga clic en Abrir.
9. En el cuadro de diálogo Programa para depurar, haga clic en Aceptar.
Una vez terminada esta operación de configuración, puede proceder con la depuración utilizando la sección del depurador de
Common Language Runtime.
Para configurar la depuración de un programa ASP .NET
1. Escriba el programa en cualquier editor y guárdelo como texto.
2. Escriba el contenedor de HTML para ASP.NET. Asegúrese de especificar que desea depurar el código JScript incluyendo
esta línea en el código:
<%@page Language=jscript debug=true %>

3. Abra la página en un explorador para compilarla.


4. Inicie dbgclr, el depurador de Common Language Runtime.
5. En el menú Herramientas de dgbclr, haga clic en Depurar procesos.
6. En la ventana Procesos, seleccione Mostrar los procesos del sistema y Mostrar los procesos de todas las sesiones.
7. En el cuadro de diálogo Procesos disponibles, seleccione el proceso de trabajo de ASP.NET que ejecuta esa aplicación
Web, haga clic en Asociar y, a continuación, haga clic en Cerrar.
De manera predeterminada, el proceso de trabajo es aspnet_wp.exe para IIS 5.x (en Windows 2000 y Windows XP) y
w3wp.exe para IIS 6.0 (en Windows Server 2003).
8. En el menú Archivo, haga clic en Abrir y, a continuación, en Archivo.
9. En la ventana Abrir archivo, localice el código fuente, selecciónelo y haga clic en Abrir.
Una vez terminada esta operación de configuración, puede proceder con la depuración utilizando la sección del depurador de
Common Language Runtime.
Para realizar una depuración utilizando el depurador de Common Language Runtime
1. Lleve el cursor hasta la ubicación del archivo donde desea establecer un punto de interrupción y presione F9.
2. Repita el paso anterior para agregar más puntos de interrupción.
3. En el menú Depurar, haga clic en Iniciar.
El programa se ejecutará hasta que encuentre un punto de interrupción o un error en tiempo de ejecución. En este punto,
se abrirán varias ventanas que le permitirán realizar otras operaciones de depuración.
4. Para detener la depuración, pero dejar el programa ejecutándose, en el menú Depurar elija Desasociar todo.
De lo contrario, cuando detenga la depuración, el programa terminará.
Cuando se depura un programa compilado desde la línea de comandos, dgbclr lee de nuevo el programa compilado cada vez
que inicia el proceso de depuración. Esto permite hacer modificaciones en el código JScript y (después de compilar de nuevo el
código) comprobar el efecto de tales cambios.
Vea también
Tareas
Escribir código JScript con Visual Studio
Conceptos
Generar desde la línea de comandos
Depurar JScript con Visual Studio
CLR Debugger (DbgCLR.exe)
Otros recursos
Guía básica del depurador
JScript 8.0

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 secuencias de comandos de JScript.
Errores sintácticos
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.
Orden de interpretación de las secuencias de comandos
En una página Web, la interpretación de JScript depende del proceso de análisis HTML de cada explorador. Una secuencia de
comandos incluida 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 compilador analiza el elemento <HEAD> y no pueden ser
manipulados por 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 otro
s 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 una secuencia de comandos 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 puede usar la palabra clave this dentro de la función.
Para obtener más información, vea this (Instrucción).
Escribir una secuencia de comandos que escribe una secuencia de comandos en Internet Explorer
o ASP.NET
La etiqueta <SCRIPT> terminará la secuencia de comandos actual en caso de que el intérprete la encuentre. Para mostrar el
propio "</SCRIPT>", vuelva a escribirlo como dos o más cadenas (por ejemplo, "</SCR" e "IPT>"), que la secuencia de
comandos 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
Otros recursos
Escribir, compilar y depurar código JScript
JScript 8.0

Presentar información mediante JScript


Normalmente, los programas muestran información al usuario. El método más básico consiste en mostrar una cadena de
texto. Un programa de JScript puede mostrar información por medio de distintos procedimientos, dependiendo del uso del
programa. Hay tres formas comunes de utilizar JScript: en una página de ASP.NET, en una página Web del cliente y desde la
línea de comandos. En este apartado, se abordan algunos métodos de presentación de cada entorno.
En esta sección
Mostrar datos desde un programa de la línea de comandos
Explica cómo se utiliza la instrucción print de JScript o el método Show de .NET Framework para mostrar datos desde un
programa de la línea de comandos.
Mostrar datos desde ASP.NET
Muestra cómo se utiliza la construcción <%= %> para mostrar datos desde un programa ASP.NET.
Mostrar información en el explorador
Explica cómo se utilizan los métodos write o writeln para mostrar datos directamente en un explorador.
Utilizar cuadros de mensaje
Muestra cómo se utilizan los métodos alert, confirm y prompt del objeto de ventana para crear cuadros de mensaje que
solicitan intervención del usuario.
Secciones relacionadas
Referencia de JScript
Enumera los elementos que componen la Referencia del lenguaje JScript y proporciona un ejemplo de la sintaxis correcta
para cada elemento.
System.Windows.Forms.MessageBox.Show
Muestra la sintaxis del método MessageBox.Show y las opciones que devuelven varios resultados.
JScript 8.0

Mostrar datos desde ASP.NET


Hay varias formas de mostrar información desde un programa ASP.NET. Una de ellas es utilizar la construcción <%= %>. Otra
consiste en utilizar la instrucción Response.Write.
Utilizar <%= %>
El modo más sencillo de mostrar información desde un programa ASP.NET es utilizar la construcción <%= %>. El valor que se
escriba detrás del signo igual se escribe en la página actual. El código siguiente muestra el valor de la variable name.

Hello <%= name %>!

Si el valor de name fuera "Frank", el código escribiría la siguiente cadena en la página actual:

Hello Frank!

La construcción <%= %> resulta muy útil para mostrar partes individuales de la información.
Response.Write (Instrucción)
Otra manera de mostrar texto es utilizar la instrucción Response.Write. Se puede incluir en un bloque <% %>.
<% Response.Write("Hello, World!") %>

La instrucción Response.Write se puede usar también en una función o un método en un bloque de secuencias de comandos.
En el ejemplo siguiente se muestra una función que contiene una instrucción Response.Write.
Nota
En páginas ASP.NET, las funciones y variables debe definirse dentro de bloques <script>, mientras que el código ejecutable d
ebe ir entre bloques <% %>.

<script runat="server" language="JScript">


function output(str) {
Response.Write(str);
}
var today = new Date();
</script>
Today's date is <% output(today); %>. <BR>

El resultado de la instrucción Response.Write se incorpora a la página que se está procesando. De este modo, el resultado de
Response.Write puede escribir código que, a su vez, muestra texto. Por ejemplo, el siguiente código escribe un bloque de
secuencias de comandos que muestra la fecha actual (del servidor) en una ventana de alerta del explorador que tiene acceso a
la página. La etiqueta <script> está dividida para que el servidor no la procese.

<script runat="server" language="JScript">


function popup(str) {
Response.Write("<scr"+"ipt> alert('"+str+"') </scr"+"ipt>");
}
var today = new Date();
</script>
<% popup(today); %>

Para obtener más información, vea Response.


Vea también
Conceptos
Información general sobre ASP.NET
Otros recursos
Presentar información mediante JScript
JScript 8.0

Mostrar datos desde un programa de la línea de comandos


JScript dispone de tres maneras para mostrar datos desde un programa de la línea de comandos. El compilador de la línea de
comandos de Microsoft JScript proporciona la instrucción print. La clase Console proporciona métodos adicionales que
facilitan la interacción con el usuario de la consola.
El método Show muestra y recibe información de cuadros emergentes.
print (Instrucción)
El modo más común de mostrar información es la instrucción print. Toma un argumento, una cadena, que muestra seguido de
un carácter de línea nueva en la ventana de línea de comandos.
Las cadenas pueden escribirse entre comillas sencillas o dobles, lo que permite tener cadenas con comillas o apóstrofos.

print("Pi is approximately equal to " + Math.PI);


print();

Nota
La instrucción print sólo está disponible para programas compilados con el compilador de línea de comandos de JScript. El
uso de print en una página de ASP.NET origina un error de compilación.

Console (Clase)
La clase Console proporciona métodos y propiedades que facilitan la interacción con los usuarios de la consola. El método
WriteLine de la clase Console proporciona una funcionalidad similar a la de la instrucción print. El método Write muestra
una cadena sin anexar el carácter de nueva línea. Otro método útil de la clase Console es ReadLine, que lee una línea de texto
escrita desde la consola.
Para utilizar las clases y los métodos de .NET Framework, utilice primero la instrucción import para importar el espacio de
nombres al que pertenece la clase. Para llamar al método, use el nombre completo o, si no hay ningún método en el ámbito
actual con el mismo nombre, simplemente el nombre.

import System;
System.Console.WriteLine("What is your name: ");
var name : String = Console.Readline();
Console.Write("Hello ");
Console.Write(name);
Console.Write("!");

El programa solicita que se escriba un nombre desde la consola. Tras escribir el nombre, Pete, el programa muestra:

What is your name:


Pete
Hello Pete!

Para obtener más información, vea Console.


Show (Método)
El método Show es versátil porque está sobrecargado. La sobrecarga más sencilla tiene un argumento, la cadena de texto que
se desea mostrar. El cuadro de mensaje es modal.
Nota
Una ventana o un formulario es modal si conserva el foco hasta que se cierra de forma explícita. Normalmente, los cuadros d
e diálogo y los mensajes son modales. Por ejemplo, en un cuadro de diálogo modal no se puede obtener acceso a otra venta
na hasta que se elija Aceptar en el cuadro de diálogo.
import System.Windows.Forms;
System.Windows.Forms.MessageBox.Show("Welcome! Press OK to continue.");
MessageBox.Show("Great! Now press OK again.");

Puede utilizar otras sobrecargas del método Show para incluir un título, otros botones, un icono o un botón predeterminado.
Para obtener más información, vea Show.
Vea también
Referencia
print (Instrucción)
import (Instrucción)
Otros recursos
Presentar información mediante JScript
JScript 8.0

Mostrar información en el explorador


Si bien los exploradores son compatibles con casi todas las características de JScript, las nuevas características de .NET
Framework, los objetos basados en clases, los tipos de datos, las enumeraciones, las directivas de compilación condicional y la
instrucción const sólo se admiten en el servidor. Por tanto, estas características deben utilizarse exclusivamente en las
secuencias de comandos del servidor. Para obtener más información, vea Información de versión de JScript.
Siempre que una secuencia de comandos se concibe para ejecutarse en un explorador (el del cliente), los programadores con
experiencia incluyen código que detecta la versión del motor de la secuencia de comandos. Una vez que la secuencia de
comandos detecta la versión del motor, se puede redirigir el explorador a una página con secuencia de comandos que sea
compatible con el motor de la secuencia de comandos del explorador. Para obtener más información, vea
Detectar las funciones del explorador.
JScript muestra información en un explorador a través de los métodos write y writeln del objeto de documento del
explorador. También puede mostrar información en formularios dentro de un explorador y en cuadros de mensaje alert,
prompt y confirm. Para obtener más información, vea Utilizar cuadros de mensaje.
Usar document.write y document.writeln
La forma más frecuente para mostrar información es el método write del objeto document. Toma un argumento, una cadena,
que muestra en el explorador. La cadena puede ser o bien texto sin formato o HTML.
Dado que las cadenas pueden ir entre comillas sencillas o dobles, se puede poner entre comillas algo que contenga comillas o
apóstrofes.

document.write("Pi is approximately equal to " + Math.PI);


document.write();

Nota
La siguiente función sencilla es una forma de evitar tener que escribir document.write cada vez que se desee que aparezca te
xto en la ventana del explorador. Esta función no avisa si lo que intenta escribir no está definido, pero permite usar el coman
do w();, que muestra una línea en blanco.

function w(m) { // Write function.


m = String(m); // Make sure that the m variable is a string.
if ("undefined" != m) { // Test for empty write or other undefined item.
document.write(m);
}
document.write("<br>");
}

w('<IMG SRC="horse.gif">');
w();
w("This is an engraving of a horse.");
w();

El método writeln, que es casi idéntico al método write, agrega un carácter de nueva línea a la cadena proporcionada.
Normalmente en HTML, este método coloca sólo un espacio en blanco después de un elemento; con las etiquetas <PRE> y
<XMP>, el carácter de nueva línea se interpreta literalmente y el explorador lo muestra.
El método write abre y limpia el documento si éste no está en el proceso que se va a abrir y analizar cuando se llama al
método write. Esto plantea resultados no esperados potencialmente. El siguiente ejemplo, que muestra una secuencia de
comandos que trata de mostrar la hora una vez cada minuto, genera un error después de la primera vez porque se borra a sí
mismo en el proceso.

<HTML>
<HEAD>
<SCRIPT LANGUAGE="JScript">
function singOut() {
var theMoment = new Date();
var theHour = theMoment.getHours();
var theMinute = theMoment.getMinutes();
var theDisplacement = (theMoment.getTimezoneOffset() / 60);
theHour -= theDisplacement;
if (theHour > 23) {
theHour -= 24
}
// The following line clears the script the second time it is run.
document.write(theHour + " hours, " + theMinute + " minutes, Coordinated Universal Time.
");
window.setTimeout("singOut();", 60000);
}
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT>
singOut();
</SCRIPT>
</BODY>
</HTML>

Si se utiliza el método alert del objeto de ventana en lugar de document.write, la secuencia de comandos funcionará.

// This line produced the intended result.


window.alert(theHour + " hours, " + theMinute + " minutes, Coordinated Universal Time.")
;

Se prefiere element.innerText o element.innerHTML en Internet Explorer versión 5 y posteriores.


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 se debe tener mucho cuidado con cómo y cuándo se utiliza.

document.clear();

Vea también
Conceptos
Utilizar cuadros de mensaje
Detectar las funciones del explorador
Otros recursos
Presentar información mediante JScript
JScript 8.0

Utilizar cuadros de mensaje


Si bien los exploradores son compatibles con casi todas las características de JScript, las nuevas características de .NET
Framework, los objetos basados en clases, los tipos de datos, las enumeraciones, las directivas de compilación condicional y la
instrucción const sólo se admiten en el servidor. Por tanto, estas características deben utilizarse exclusivamente en las
secuencias de comandos del servidor. Para obtener más información, vea Información de versión de JScript.
Siempre que una secuencia de comandos se concibe para ejecutarse en un explorador (el del cliente), los programadores con
experiencia incluyen código que detecta la versión del motor de la secuencia de comandos. Una vez que la secuencia de
comandos detecta la versión del motor, se puede redirigir el explorador a una página con secuencia de comandos que es
compatible con el motor de la secuencia de comandos del explorador. Para obtener más información, vea
Detectar las funciones del explorador.
JScript utiliza los cuadros de mensaje alert, confirm y prompt del explorador para obtener la entrada de datos desde el
usuario. Los cuadros son métodos del objeto window. Ya que el objeto window está en el nivel más alto de la jerarquía de
objetos, en realidad no se necesita utilizar el nombre completo (por ejemplo, window.alert()) de cualquiera de estos cuadros
de mensaje, pero es una buena idea hacerlo, porque ayuda a recordar a qué objeto pertenecen.
Cuadro de mensaje de alerta
El método alert tiene un único argumento, la cadena de texto que se desea mostrar en el cuadro de mensaje de alerta. La
cadena no es HTML. El cuadro de mensaje proporciona un botón Aceptar para cerrar el cuadro de mensaje y es modal, es decir,
el usuario debe cerrarlo para continuar.

window.alert("Welcome! Press OK to continue.");

Cuadro de mensaje de confirmación


El cuadro de mensaje de confirmación, que incluye los botones Aceptar y Cancelar, plantea una pregunta con dos respuestas
posibles. El método confirm devuelve true o false. Este cuadro de mensaje también es modal, es decir, el usuario debe
responder a él (hacer clic en un botón) y, por tanto, cerrarlo, antes de continuar.

var truthBeTold = window.confirm("Click OK to continue. Click Cancel to stop.");


if (truthBeTold)
window.alert("Welcome to our Web page!");
else
window.alert("Bye for now!");

Cuadro de mensaje de solicitud


El cuadro de mensaje de solicitud, que incluye los botones Aceptar y Cancelar, proporciona un campo de texto que admite
texto en respuesta a una solicitud. Si se 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 "sin definir".
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 theResponse = window.prompt("Welcome?","Enter your name here.");


document.write("Welcome "+theResponse+".<BR>");

Vea también
Conceptos
Mostrar información en el explorador
Detectar las funciones del explorador
Otros recursos
Presentar información mediante JScript
JScript 8.0

Introducción a las expresiones regulares


En estas secciones se presenta el concepto de expresiones regulares, y se explica cómo se crean y cómo se utilizan en JScript.
Aunque cada tema es independiente, conviene leer todos los temas detenidamente y por orden para una mejor compresión
del material. La mayoría de los temas se basan en la comprensión de una función o concepto presentado en un tema anterior
de la secuencia.
En esta sección
Expresiones regulares
Explica el concepto de las expresiones regulares mediante la comparación con conceptos que ya conocen la mayoría de los
lectores.
Usos de las expresiones regulares
Indica, mediante ejemplos prácticos, cómo ampliar los criterios de búsqueda convencionales con las expresiones regulares.
Sintaxis de expresiones regulares
Explica los caracteres que forman parte de una expresión regular, los caracteres que componen los metacaracteres y su
comportamiento.
Generar expresiones regulares
Describe los componentes de una expresión regular y la relación entre componentes y delimitadores.
Orden de prioridad
Explica cómo se evalúan las expresiones regulares y cómo influyen la secuencia y la sintaxis de las expresiones regulares en
el resultado.
Caracteres ordinarios
Establece las diferencias entre caracteres ordinarios y metacaracteres, y muestra cómo combinar expresiones regulares de
un único carácter para crear expresiones más extensas.
Caracteres especiales en JScript
Explica el concepto de caracteres de escape y cómo crear una expresión regular para realizar búsquedas de metacaracteres.
Caracteres no imprimibles
Enumera las secuencias de escape que se utilizan para representar caracteres no imprimibles en una expresión regular.
Coincidencia de caracteres
Muestra cómo se utilizan en las expresiones regulares el punto (.), los caracteres de escape y los corchetes para crear
secuencias que devuelven resultados específicos.
Cuantificadores de JScript
Explica cómo crear expresiones regulares cuando no se puede especificar el número de caracteres de una coincidencia.
Delimitadores
Indica cómo corregir una expresión regular al principio o al final de una línea, y cómo crear expresiones regulares que se
producen dentro de una palabra, al principio o al final de la misma.
Alternancia y agrupamiento
Muestra la forma en que la alternancia utiliza el carácter '|' para permitir elegir entre dos o más alternativas, y cómo funciona
el agrupamiento junto con la alternancia para mejorar el resultado.
Referencias inversas en JScript
Explica cómo crear expresiones regulares que pueden tener acceso a parte de un modelo de coincidencia almacenado sin
necesidad de volver a crear la expresión regular que encontró ese modelo.
Secciones relacionadas
Expresiones regulares de .NET Framework
Explica cómo la notación de búsqueda de modelos coincidentes de expresiones regulares permite a los programadores
analizar rápidamente grandes cantidades de texto para encontrar modelos de caracteres específicos; extraer, editar y
reemplazar o eliminar subcadenas de texto; o agregar las cadenas extraídas a una colección para generar un informe.
Ejemplos de expresiones regulares
Proporciona una lista de vínculos a ejemplos de código que muestran cómo utilizar las expresiones regulares en aplicaciones
comunes.
JScript 8.0

Expresiones regulares
A no ser que ya haya utilizado expresiones regulares anteriormente, es posible que no esté familiarizado con este término. No
obstante, y sin ninguna duda, ya ha tenido que utilizar alguno de los conceptos relacionados con las expresiones regulares
fuera del área de secuencias de comandos.
Ejemplos de expresiones regulares
Por ejemplo, es probable que utilice los caracteres comodín ? y * para buscar archivos en el disco duro. El carácter comodín ?
coincide con un único carácter en un nombre de archivo, mientras que el carácter comodín * coincide con cero o más
caracteres. Un modelo como data?.dat encontrará los siguientes archivos:
data1.dat
data2.dat
datax.dat
dataN.dat
La utilización del carácter * en vez del carácter ? amplía el número de archivos encontrados. data*.dat coincide con todas las
posibilidades siguientes:
data.dat
data1.dat
data2.dat
data12.dat
datax.dat
dataXYZ.dat
Aunque este método de búsqueda es muy útil, también es limitado. La capacidad de los caracteres comodín ? y * introduce el
concepto subyacente de las expresiones regulares, aunque las expresiones regulares son más eficaces y flexibles.
Vea también
Otros recursos
Introducción a las expresiones regulares
JScript 8.0

Usos de las expresiones regulares


En una operación normal de búsqueda y reemplazo es necesario proporcionar el texto exacto para que coincida con los
resultados deseados. Aunque esta técnica puede ser adecuada para tareas de búsqueda y reemplazo sencillas de texto estático,
carece de flexibilidad y hace cuando menos difícil, si no imposible, la búsqueda de texto dinámico.
Escenarios de ejemplo
Con las expresiones regulares, se puede:
Comprobar si existe un modelo dentro de una cadena.
Por ejemplo, puede probar una cadena de entrada para ver si un modelo de número de teléfono o de número de tarjeta
de crédito aparece dentro de la cadena. Esto se denomina validación de datos.
Reemplazar texto.
Puede utilizar una expresión regular para identificar el texto específico de un documento y quitarlo o reemplazarlo con
otro texto.
Extraer una subcadena de una cadena en función de la coincidencia del modelo.
Puede buscar texto específico dentro de un documento o campo de entrada.
Por ejemplo, si necesita buscar en un sitio Web, quite el material obsoleto y reemplace alguna de las etiquetas de formato
HTML. En este caso, puede utilizar una expresión regular para determinar si el material de las etiquetas de formato HTML
aparece en cada archivo. Este proceso reduce la lista de archivos afectados a los archivos que contengan el material de destino
que se desea quitar o cambiar. A continuación, puede utilizar una expresión regular para quitar el material obsoleto. Por
último, puede utilizar una expresión regular para buscar y reemplazar las etiquetas.
Una expresión regular también es útil en un lenguaje como JScript o C, que no se distinguen por su capacidad de controlar
cadenas.
Vea también
Otros recursos
Introducción a las expresiones regulares
JScript 8.0

Sintaxis de expresiones regulares


Una expresión regular es un modelo de texto formado por caracteres ordinarios (por ejemplo, las letras de la a a la z) y
caracteres especiales, conocidos como metacaracteres. El modelo describe una o varias cadenas que deben coincidir al buscar
texto.
Ejemplos de expresiones regulares
Expresión Coincidencias
/^\s*$/ Coincide con una línea en blanco.

/\d{2}-\d{5}/ Valida un número de identificador que se compone de 2 dígitos, un guión y otros 5 dí


gitos.

/<\s*(\S+)(\s[^>]*)?>[\s\S]*<\s*\/\1\s* Coincide con una etiqueta HTML.


>/

La tabla siguiente contiene la lista completa de metacaracteres y su comportamiento en el contexto de las expresiones
regulares:
C Descripción
ar
á
ct
er
\ Marca el siguiente carácter como un carácter especial, un literal, una referencia inversa o un valor de escape octal. Por ejem
plo, 'n' coincide con el carácter "n". '\n' coincide con un carácter de nueva línea. La secuencia '\\' coincide con "\" y "\(" coinci
de con "(".

^ Coincide con la posición al principio de la cadena de entrada. Si la propiedad Multiline del objeto RegExp está establecida,
^ coincide también con la siguiente posición a '\n' o '\r'.

$ Coincide con la posición al final de la cadena de entrada. Si la propiedad Multiline del objeto RegExp está establecida, $ co
incide también con la posición anterior a '\n' o '\r'.

* Coincide cero o más veces con el carácter o subexpresión anterior. Por ejemplo, zo* coincide con "z" y con "zoo". * equivale
a {0,}.

+ Coincide una o más veces con el carácter o subexpresión anterior. Por ejemplo, 'zo+' coincide con "zo" y con "zoo", pero no
coincide con "z". + equivale a {1,}.

? Coincide una vez o ninguna con el carácter o subexpresión anterior. Por ejemplo, "da(do)?" coincide con "da" en "da" o en "
dado". ? equivale a {0,1}

{n n es un entero no negativo. Coincide exactamente n veces. Por ejemplo, 'o{2}' no coincide con la 'o' de "doy", pero coincide
} con las dos oes de "cooperar".

{n n es un entero no negativo. Coincide como mínimo n veces. Por ejemplo, 'o{2,}' no coincide con la "o" de "sol" pero coincide
,} con todas las oes de "goooool". 'o{1,}' equivale a 'o+'. 'o{0,}' equivale a 'o*'.

{n M y n son enteros no negativos donde n < = m. Coincide n veces como mínimo y m veces como máximo. Por ejemplo, "o{1,
, 3}" coincide con las tres primeras oes en "gooooool". 'o{0,1}' equivale a 'o?'. Tenga en cuenta que no se puede incluir un esp
m acio entre la coma y los números.
}
? Cuando este carácter va inmediatamente después de cualquier otro cuantificador (*, +, ?, {n}, {n,}, {n,m}), el modelo coincide
nte es no expansivo. Un modelo no expansivo coincide lo menos posible con la cadena buscada, mientras que el modelo ex
pansivo predeterminado coincide tanto como sea posible con la cadena buscada. Por ejemplo, en la cadena "oooo", 'o+?' co
incide con una sola "o", mientras que 'o+' coincide con todas las oes.

. Coincide con cualquier carácter excepto con "\n". Para coincidir con cualquier carácter incluido '\n', utilice un modelo como '
[\s\S]'.

( Una subexpresión que coincide con el modelo y captura la coincidencia. La coincidencia capturada se puede recuperar de la
m colección Matches resultante mediante las propiedades $0…$9. Para que coincidan los paréntesis ( ), utilice '\(' o '\)'.
o
d
el
o)

(?: Una subexpresión que coincide con el modelo, pero que no captura la coincidencia, es decir, la coincidencia no se almacena
m para un posible uso posterior. Esto resulta útil cuando se combinan partes de un modelo con el carácter disyuntivo "or" (|).
o Por ejemplo, 'industr(?:y|ies) es una expresión más económica que 'industry|industries'.
d
el
o)

(? Una subexpresión que realiza una búsqueda anticipada positiva, la cual coincide con la cadena en cualquier punto donde e
= mpiece una cadena que coincida con el modelo. Ésta es una coincidencia sin captura, es decir, la coincidencia no se captura
m para un posible uso posterior. Por ejemplo, 'Windows (?=95|98|NT|2000)' coincide con Windows" en "Windows 2000" pero
o no con "Windows" en "Windows 3.1". Las búsquedas anticipadas no consumen caracteres, es decir, después de que se prod
d uce una coincidencia, la búsqueda de la siguiente comienza inmediatamente después de la última coincidencia, no después
el de los caracteres que componen la cadena de búsqueda anticipada.
o)

(? Una subexpresión que realiza una búsqueda anticipada negativa, la cual coincide con la cadena de búsqueda en cualquier p
! unto donde empiece una cadena que no coincida con el modelo. Ésta es una coincidencia sin captura, es decir, la coincidenci
m a no se captura para un posible uso posterior. Por ejemplo, 'Windows (?!95|98|NT|2000)' coincide con "Windows" en "Wind
o ows 3.1" pero no coincide con "Windows" en "Windows 2000". Las búsquedas anticipadas no consumen caracteres, es decir
d , después de que se produce una coincidencia, la búsqueda de la siguiente comienza inmediatamente después de la última c
el oincidencia, no después de los caracteres que componen la cadena de búsqueda anticipada.
o)

x| Coincide con x o con y. Por ejemplo, 'z|food' coincide con "z" o con "food". '(z|f)ood' coincide con "zood" o con "food".
y

[x Un juego de caracteres. Coincide con cualquiera de los caracteres incluidos. Por ejemplo, '[abc]' coincide con 'a' en "plan".
yz
]

[ Un juego de caracteres negativo. Coincide con cualquier carácter no incluido. Por ejemplo, '[^abc]' coincide con la 'p' de "pl
^ an".
xy
z]

[a Un intervalo de caracteres. Coincide con cualquier carácter del intervalo especificado. Por ejemplo, '[a-z]' coincide con cualq
-z uier carácter alfabético en minúsculas dentro del intervalo de la 'a' a la 'z'.
]
[ Caracteres de un intervalo negativo. Coincide con cualquier carácter que no esté incluido en el intervalo especificado. Por ej
^ emplo, '[^a-z]' coincide con cualquier carácter que no esté incluido en el intervalo de la 'a' a la 'z'.
a-
z]

\b Coincide con el límite de una palabra; es decir, la posición entre una palabra y un espacio. Por ejemplo, 'er\b' coincide con 'e
r' en "ceder", pero no coincide con 'er' en "verbo".

\B Coincide con una posición que no es un límite de palabra. 'er\B' coincide con 'er' en "verb", pero no coincide con 'er' en "ne
ver".

\c Coincide con el carácter de control indicado por x. Por ejemplo, \cM equivale a Control-M o un carácter de retorno de carro.
x El valor de x debe estar incluido en el intervalo A-Z o a-z. En caso contrario, se asume que c es un carácter 'c' literal.

\d Coincide con un dígito. Equivale a [0-9].

\ Coincide con un carácter que no sea un dígito. Equivale a [^0-9].


D

\f Coincide con un carácter de avance de página. Equivale a \x0c y \cL.

\n Coincide con un carácter de nueva línea. Equivale a \x0a y \cJ.

\r Coincide con un carácter de retorno de carro. Equivale a \x0d y \cM.

\s Coincide con cualquier carácter de espacio en blanco incluidos espacio, tabulación, avance de página, etc. Equivale a [\f\n\r\t
\v].

\S Coincide con cualquier carácter que no sea un espacio en blanco. Equivale a [^ \f\n\r\t\v].

\t Coincide con un carácter de tabulación. Equivale a \x09 y \cI.

\v Coincide con un carácter de tabulación vertical. Equivale a \x0b y \cK.

\ Coincide con cualquier carácter de palabra incluido el subrayado. Equivale a '[A-Za-z0-9_]'.


w

\ Coincide con cualquier carácter que no pertenezca a una palabra. Equivale a '[^A-Za-z0-9_]'.
W

\x Coincide con n, donde n es un valor de escape hexadecimal. Los valores de escape hexadecimales deben tener exactamente
n dos dígitos de longitud. Por ejemplo, '\x41' coincide con "A". '\x041' equivale a '\x04' & "1". Admite la utilización de códigos
ASCII en las expresiones regulares.

\n Coincide con num, donde num es un entero positivo. Una referencia de vuelta a las coincidencias capturadas. Por ejemplo, '(
u .)\1' coincide con dos caracteres idénticos consecutivos.
m

\n Identifica un valor de escape octal o una referencia inversa. Si \n va precedido por como mínimo n subexpresiones capturad
as, n es una referencia inversa. En caso contrario, n es un valor de escape octal si n es un dígito octal (0-7).

\n Identifica un valor de escape octal o una referencia inversa. Si \nm va precedido por como mínimo nm subexpresiones capt
m uradas, nm es una referencia inversa. Si \nm va precedido por n capturas como mínimo, n es una referencia inversa seguida
de una m literal. Si no existe ninguna de las condiciones anteriores, \nm coincide con el valor de escape octal nm cuando n
y m son dígitos octales (0-7).
\n Coincide con el valor de escape octal nml cuando n es un dígito octal (0-3) y m y l son dígitos octales (0-7).
m
l

\u Coincide con n, donde n es un carácter Unicode expresado mediante cuatro dígitos hexadecimales. Por ejemplo, \u00A9 coi
n ncide con el símbolo de copyright (©).

Vea también
Otros recursos
Introducción a las expresiones regulares
JScript 8.0

Generar expresiones regulares


La construcción de expresiones regulares es análoga a la construcción de expresiones aritméticas. Es decir, diversos
metacaracteres y operadores combinan expresiones pequeñas para crear expresiones de mayor tamaño.
Delimitadores
Puede construir una expresión regular colocando los diferentes componentes del modelo de expresión entre un par de
delimitadores. En JScript, los delimitadores son las barras diagonales (/). Por ejemplo:

/expression/

En el ejemplo anterior, el modelo de expresión regular (expression) se almacena en la propiedad Pattern del objeto RegExp.
Los componentes de una expresión regular pueden ser caracteres individuales, juegos de caracteres, intervalos de caracteres,
opciones entre caracteres o cualquier combinación de todos estos componentes.
Vea también
Otros recursos
Introducción a las expresiones regulares
JScript 8.0

Orden de prioridad
Las expresiones regulares se evalúan de izquierda a derecha y con un orden de prioridad de forma similar a las expresiones
aritméticas.
Operadores
En la tabla siguiente se muestra el orden de prioridad de mayor a menor de los diversos operadores de expresiones regulares:
Operadores Descripción
\ Escape

(), (?:), (?=), [] Paréntesis y corchetes

*, +, ?, {n}, {n,}, {n,m} Cuantificadores

^, $, \cualquiermetacarácter, cualquiercarácter Delimitadores y secuencias

| Alternancia

Los caracteres tienen mayor prioridad que el operador de alternancia, lo que permite que 'm|food' coincida con "m" o con
"food". Para que coincida con "mood" o "food", utilice paréntesis con el fin de crear una subexpresión, que quedaría como
'(m|f)ood'.
Vea también
Otros recursos
Introducción a las expresiones regulares
JScript 8.0

Caracteres ordinarios
Los caracteres ordinarios son todos los caracteres imprimibles y no imprimibles que no se han designado explícitamente como
metacaracteres. Esto incluye todos los caracteres alfabéticos en mayúsculas y minúsculas, todos los dígitos, todos los signos de
puntuación y algunos símbolos.
Expresiones simples
La forma más sencilla de expresión regular es un solo carácter ordinario que coincide consigo mismo en una cadena de
búsqueda. Por ejemplo, un modelo de carácter único, como A, coincide con la letra A siempre que aparezca en la cadena de
búsqueda. A continuación, se muestran algunos ejemplos de modelos de expresiones regulares de un único carácter:

/a/
/7/
/M/

Se pueden combinar varios caracteres para formar una expresión de mayor tamaño. Por ejemplo, la siguiente expresión
regular combina expresiones de un carácter: a, 7 y M.

/a7M/

Observe que no se ha incluido un operador de concatenación. Basta con escribir un carácter detrás de otro.
Vea también
Otros recursos
Introducción a las expresiones regulares
JScript 8.0

Caracteres especiales en JScript


Diversos metacaracteres requieren un tratamiento especial cuando se intenta que coincidan. Para buscar coincidencias con
estos caracteres especiales, primero debe especificar un carácter de escape, es decir, incluya una barra diagonal invertida (\)
antes de estos caracteres. En la tabla siguiente se incluyen los caracteres especiales y su significado:
Tabla de caracteres especiales
Carácte Comentarios
r espec
ial
$ Coincide con la posición al final de la cadena de entrada. Si la propiedad Multiline del objeto RegExp está establecid
a, $ coincide también con la posición que precede a \n o \r. Para que coincida con el carácter $, utilice \$.

() Marca el principio y el final de una subexpresión. Las subexpresiones se pueden capturar para su uso posterior. Para
buscar coincidencias con estos caracteres, utilice \( y \).

* Coincide cero o más veces con el carácter o subexpresión anterior. Para que coincida con el carácter *, utilice \*.

+ Coincide una o más veces con el carácter o subexpresión anterior. Para que coincida con el carácter +, utilice \+.

. Coincide con cualquier carácter individual excepto con el carácter de nueva línea \n. Para que coincida con ., utilice \.

[] Marca el inicio de una expresión de corchetes. Para buscar coincidencias con estos caracteres, utilice \[ y \].

? Coincide una vez o ninguna con el carácter o subexpresión anterior, o indica un cuantificador no expansivo. Para que
coincida con el carácter ?, utilice \?.

\ Marca el siguiente carácter como un carácter especial, un literal, una referencia inversa o un valor de escape octal. Por
ejemplo, el carácter n coincide con el carácter n. \n coincide con el carácter de nueva línea. La secuencia \\ coincide co
n \ y \( coincide con (.

/ Denota el comienzo o el fin de una expresión regular literal. Para buscar coincidencias con el carácter /, utilice \/.

^ Coincide con la posición al principio de una cadena de entrada excepto cuando se utiliza en una expresión con corchet
es donde niega el conjunto de caracteres. Para que el carácter ^ coincida consigo mismo, utilice \^.

{} Marca el inicio de una expresión de cuantificadores. Para buscar coincidencias con estos caracteres, utilice \{ y \}.

| Indica una opción entre dos elementos. Para que coincida con |, utilice \|.

Vea también
Otros recursos
Introducción a las expresiones regulares
JScript 8.0

Caracteres no imprimibles
Los caracteres no imprimibles también pueden formar parte de una expresión regular. En la tabla siguiente se muestran las
secuencias de escape que representan caracteres no imprimibles:
Secuencias de escape
Car Significado
áct
er
\cx Coincide con el carácter de control indicado por x. Por ejemplo, \cM equivale a Control-M o un carácter de retorno de carr
o. El valor de x debe estar incluido en el intervalo A-Z o a-z. En caso contrario, se asume que c es un carácter c literal.

\f Coincide con un carácter de avance de página. Equivale a \x0c y \cL.

\n Coincide con un carácter de nueva línea. Equivale a \x0a y \cJ.

\r Coincide con un carácter de retorno de carro. Equivale a \x0d y \cM.

\s Coincide con cualquier carácter de espacio en blanco incluidos espacio, tabulación, avance de página, etc. Equivale a [\f\n\
r\t\v].

\S Coincide con cualquier carácter que no sea un espacio en blanco. Equivale a [^ \f\n\r\t\v].

\t Coincide con un carácter de tabulación. Equivale a \x09 y \cI.

\v Coincide con un carácter de tabulación vertical. Equivale a \x0b y \cK.

Vea también
Otros recursos
Introducción a las expresiones regulares
JScript 8.0

Coincidencia de caracteres
El punto (.) coincide con cualquier carácter imprimible o no imprimible de una cadena salvo con un carácter. Esta excepción es
el carácter de nueva línea (\n). La siguiente expresión regular coincide con aac, abc, acc, adc, etc., así como con a1c, a2c, a-c y
a#c:

/a.c/

Para hacer coincidir una cadena que contenga un nombre de archivo con un punto (.) en la cadena de entrada, incluya una
barra diagonal inversa (\) antes del punto en la expresión regular. A continuación, se muestra un ejemplo de expresión regular
que coincide con filename.ext:

/filename\.ext/

Estas expresiones sólo permiten coincidencias con cualquier carácter individual. Puede buscar coincidencias con los caracteres
específicos de una lista. Por ejemplo, puede buscar encabezados de capítulo expresados numéricamente (Capítulo 1, Capítulo
2, etc.).
Expresiones de corchetes
Para crear una lista de caracteres coincidentes, coloque uno o más caracteres individuales entre corchetes ([ y ]). Cuando los
caracteres se encierran entre corchetes, la lista se denomina expresión de corchete. Dentro de los corchetes, al igual que en
cualquier otra parte, un carácter ordinario se representa a sí mismo, es decir, coincide con una aparición de sí mismo en el
texto de entrada. La mayoría de los caracteres especiales pierden su significado cuando se incluyen en una expresión con
corchetes. A continuación, se muestran algunas excepciones:
El carácter ] finaliza una lista si no es el primer elemento. Para buscar coincidencias con el carácter ] en una lista,
colóquelo en primer lugar inmediatamente después del carácter [ de apertura.
El carácter \ sigue siendo el carácter de escape. Para buscar coincidencias con el carácter \, utilice \\.
Los caracteres encerrados en una expresión de corchetes coinciden sólo con el único carácter que ocupa una posición en la
expresión regular. La siguiente expresión regular coincide con Chapter 1, Chapter 2, Chapter 3, Chapter 4, y Chapter 5:

/Chapter [12345]/

Observe que la palabra Chapter y el espacio que va detrás de esta palabra ocupan una posición fija con respecto a los
caracteres dentro de los corchetes. La expresión entre corchetes se utiliza para especificar sólo el conjunto de caracteres que
coincide con la posición de un solo carácter inmediatamente después de la palabra Chapter y un espacio. Ésta es la novena
posición del carácter.
Para expresar los caracteres de coincidencia utilizando un intervalo en vez de los caracteres mismos, utilice un guión (-) para
separar los caracteres inicial y final del intervalo. El valor del carácter de los caracteres individuales determina el orden relativo
dentro del intervalo. La siguiente expresión regular contiene una expresión de intervalo equivalente a la lista entre corchetes
mostrada en el ejemplo anterior.

/Chapter [1-5]/

Cuando se especifica un intervalo de esta forma, los valores inicial y final están incluidos en el intervalo. Es importante tener en
cuenta que el valor inicial debe ir antes del valor final en el criterio de ordenación Unicode.
Para incluir un guión en una expresión de corchetes, siga uno de estos procedimientos:
Coloque una barra diagonal inversa delante del guión:

[\-]

Coloque el guión al principio o al final de la lista con corchetes. Las expresiones siguientes coinciden con todas las letras
en minúsculas y con el guión:
[-a-z]
[a-z-]

Cree un intervalo en el que el valor del carácter inicial sea menor que el guión y el carácter final sea igual o mayor que el
guión. Las dos expresiones regulares siguientes cumplen este requisito:

[!--]
[!-~]

Para buscar todos los caracteres que no estén en una lista o intervalo, coloque el símbolo de intercalación (^) al principio de la
lista. Si el carácter de intercalación aparece en otra posición dentro de la lista, coincide consigo mismo. La siguiente expresión
regular coincide con los encabezados de capítulo cuyo número es mayor que 5:

/Chapter [^12345]/

En los ejemplos anteriores, la expresión coincide con cualquier dígito que se encuentre en la novena posición, salvo con 1, 2, 3,
4 o 5. Así, por ejemplo, coincide con Chapter 7 y con Chapter 9.
Las expresiones anteriores se pueden representar mediante el guión (-):

/Chapter [^1-5]/

La expresión de corchetes se utiliza normalmente para especificar coincidencias de caracteres alfabéticos en mayúsculas y
minúsculas o de dígitos. La siguiente expresión especifica este tipo de coincidencia:

/[A-Za-z0-9]/

Vea también
Otros recursos
Introducción a las expresiones regulares
JScript 8.0

Cuantificadores de JScript
Para los casos en los que no se puede especificar el número de caracteres que incluye una coincidencia, las expresiones
regulares admiten el concepto de cuantificadores. Con los cuantificadores se puede especificar el número de veces que debe
aparecer un elemento dado de una expresión regular para que se cumpla una coincidencia.
Qué miden los cuantificadores
Car Descripción
áct
er
* Coincide cero o más veces con el carácter o subexpresión anterior. Por ejemplo, zo* coincide con z y con zoo. * equivale a {
0,}.

+ Coincide una o más veces con el carácter o subexpresión anterior. Por ejemplo, zo+ coincide con zo y zoo, pero no con z.
+ equivale a {1,}.

? Coincide una vez o ninguna con el carácter o subexpresión anterior. Por ejemplo, da(do)? coincide con da en da o en dado.
? equivale a {0,1}

{n} n es un entero no negativo. Coincide exactamente n veces. Por ejemplo, o{2} no coincide con la o de doy pero coincide con
las dos oes en cooperar.

{n,} n es un entero no negativo. Coincide como mínimo n veces. Por ejemplo, o{2,} no coincide con la o de sol y coincide con to
das las oes en nooooo. o{1,} equivale a o+. o{0,} equivale a o*.

{n, m y n son enteros no negativos donde n < = m. Coincide n veces como mínimo y m veces como máximo. Por ejemplo, o{
m} 1,3} coincide con las tres primeras oes en gooooool. o{0,1} equivale a o?. Tenga en cuenta que no se puede incluir un espa
cio entre la coma y los números.

Como los números de capítulos son fácilmente más de nueve en un documento extenso, se necesita un sistema para tratar
números de capítulo de dos o tres dígitos. Los cuantificadores le permitirán hacerlo. La siguiente expresión regular coincide
con encabezados de capítulo que tengan cualquier número de dígitos:

/Chapter [1-9][0-9]*/

Observe que el cuantificador aparece después de la expresión del intervalo. Por tanto, se aplica a toda la expresión del intervalo
que, en este caso, especifica sólo dígitos del 0 al 9, ambos incluidos.
En este caso, no se utiliza el cuantificador + porque no es necesario que haya un dígito en la posición segunda o subsiguiente.
Tampoco se utiliza el carácter ? ya que limita los números de capítulos a dos dígitos solamente. Como mínimo debe coincidir
un dígito después de Chapter y un carácter de espacio.
Si sabe que el número de capítulos está limitado a 99, puede utilizar la siguiente expresión para especificar como mínimo un
dígito, aunque no más de dos.

/Chapter [0-9]{1,2}/

El inconveniente de la expresión anterior es que en los números de capítulos mayores que 99 sólo coincidirá con los dos
primeros dígitos. Otro inconveniente es que Chapter 0 coincidiría. A continuación, se incluyen las expresiones más adecuadas
para que sólo coincidan dos dígitos:

/Chapter [1-9][0-9]?/

o bien

/Chapter [1-9][0-9]{0,1}/
Los cuantificadores *, + y ? se conocen como expansivos porque coinciden con la mayor cantidad de texto posible. Sin
embargo, en ocasiones es preferible obtener una coincidencia mínima.
Por ejemplo, supongamos que busca en un documento HTML la aparición del título de un capítulo encerrado en una etiqueta
H1. Este texto aparece en el documento como:

<H1>Chapter 1 – Introduction to Regular Expressions</H1>

La siguiente expresión coincide con todos los elementos comprendidos entre el símbolo menor que (<) de apertura y el
símbolo mayor que (>) que cierra la etiqueta H1.

/<.*>/

Si sólo necesita hacer coincidir la etiqueta de apertura H1, la expresión siguiente no expansiva sólo coincide con <H1>.

/<.*?>/

Si coloca ? después de un cuantificador del tipo *, + o el signo ?, la expresión se transforma de coincidencia expansiva a no
expansiva, o mínima.
Vea también
Otros recursos
Introducción a las expresiones regulares
JScript 8.0

Delimitadores
Los ejemplos de los temas anteriores de esta sección están relacionados sólo con la búsqueda de encabezados de capítulo.
Cualquier aparición de la cadena Chapter seguida de un espacio o de un número podría ser un encabezado de capítulo real o,
también, podría ser una referencia cruzada a otro capítulo. Como los encabezados de capítulo verdaderos siempre aparecen al
principio de una línea, puede ser de gran utilidad idear un modo de buscar sólo los encabezados y no las referencias cruzadas.
Cómo funcionan los delimitadores
Los delimitadores permiten llevar esto a cabo. Con los delimitadores se puede fijar una expresión regular al principio o al final
de una línea. También permiten crear expresiones regulares que ocurran dentro, al principio o al final de una palabra. La tabla
siguiente contiene la lista de delimitadores de expresiones regulares y su significado:
Cará Descripción
cter
^ Coincide con la posición al principio de la cadena de entrada. Si la propiedad Multiline del objeto RegExp está establec
ida, ^ coincide también con la posición que sigue a \n o \r.

$ Coincide con la posición al final de la cadena de entrada. Si la propiedad Multiline del objeto RegExp está establecida,
$ coincide también con la posición que precede a \n o \r.

\b Coincide con el límite de una palabra; es decir, la posición entre una palabra y un espacio.

\B Coincide con una posición que no es un límite de palabra.

No se puede utilizar un cuantificador con un delimitador. Como no puede haber más de una posición justo antes o justo
después de una nueva línea o límite de palabra, no se permiten expresiones del tipo ^*.
Para que un texto coincida al principio de una línea de texto, utilice el carácter ^ al principio de la expresión regular. No se debe
confundir este uso del ^ con el uso dentro de una expresión entre corchetes.
Para que un texto coincida al final de una línea de texto, utilice el carácter $ al final de la expresión regular.
Para utilizar delimitadores en las búsquedas de encabezados de capítulo, la siguiente expresión regular coincide con un
encabezado de capítulo que no contiene más que los dos dígitos siguientes y que se encuentra al principio de una línea:

/^Chapter [1-9][0-9]{0,1}/

No sólo se encuentra un encabezado de capítulo verdadero al principio de una línea, sino que además es el único texto de la
línea. Se produce al principio y también al final de la misma línea. La siguiente expresión garantiza que la coincidencia
especificada sólo coincide con capítulos y no con referencias cruzadas. Esto se consigue mediante la creación de una expresión
regular que coincide sólo con el principio y el final de una línea de texto.

/^Chapter [1-9][0-9]{0,1}$/

La coincidencia con límites de palabra difiere en algunos aspectos, aunque agrega una capacidad importante a las expresiones
regulares. Un límite de palabra es la posición entre una palabra y un espacio. Los límites que no son de palabra son cualquier
otra posición. La siguiente expresión coincide con los tres primeros caracteres de la palabra Chapter ya que los caracteres
aparecen a continuación de un límite de palabra:

/\bCha/

La posición del operador \b es esencial. Si se encuentra al principio de una cadena con la que se va a comparar, busca la
coincidencia al principio de la palabra. Si se encuentra al final de la cadena, busca la coincidencia al final de la palabra. Por
ejemplo, la siguiente expresión coincide con la cadena ter de la palabra Chapter ya que aparece antes de un límite de palabra:

/ter\b/
La siguiente expresión coincide con la cadena apt de la palabra Chapter, pero no coincide como en aptitude:

/\Bapt/

La cadena apt coincide con una posición que no es un límite de palabra en Chapter, aunque coincide con un límite de palabra
en aptitude. Para el operador \B de posiciones que no sean límites de palabra, la posición no es importante porque la
coincidencia no está relacionada con el principio o el final de una palabra.
Vea también
Otros recursos
Introducción a las expresiones regulares
JScript 8.0

Alternancia y agrupamiento
La alternancia utiliza el carácter | para permitir una elección entre dos o más alternativas. Por ejemplo, se puede expandir la
expresión regular de encabezados de capítulo para que devuelva más de un encabezado. No obstante, esto no es tan sencillo
como parece. La alternancia coincide con la mayor expresión posible a cualquier lado del carácter |.
Ejemplo
La expresión que se muestra a continuación puede parecer que coincide con las palabras Chapter o Section seguidas de uno o
dos dígitos, que aparezcan al principio o al final de una línea:

/^Chapter|Section [1-9][0-9]{0,1}$/

Sin embargo, la expresión regular anterior coincide con la palabra Chapter al comienzo de una línea o con la palabra Section y
cualquier número que vaya después de Section al final de la línea. Si la cadena de entrada es Chapter 22, la expresión anterior
sólo coincide con la palabra Chapter. Si la cadena de entrada es Section 22, la expresión sólo coincide con Section 22.
Para conseguir que la expresión regular se ajuste mejor a la cadena buscada, se pueden utilizar los paréntesis para limitar el
ámbito de la alternancia, de este modo se garantiza que sólo se aplica a las dos palabras Chapter y Section. No obstante, los
paréntesis también se utilizan para crear subexpresiones y posiblemente capturarlas para su uso posterior, de este tema se
trata en la sección de referencias inversas. Si agrega paréntesis en el lugar adecuado de la expresión regular anterior,
conseguirá que la expresión regular coincida con Chapter 1 o Section 3.
En la siguiente expresión regular se utilizan paréntesis para agrupar Chapter y Section de forma que la expresión funcione
correctamente:

/^(Chapter|Section) [1-9][0-9]{0,1}$/

Aunque estas expresiones funcionan correctamente, los paréntesis alrededor de Chapter|Section también hacen que se capture
cualquiera de las dos palabras coincidentes para su uso futuro. Puesto que sólo hay un conjunto de paréntesis en la expresión
anterior, sólo se captura una subcoincidencia. Se puede hacer referencia a esta subcoincidencia mediante las propiedades $1-
$9 del objeto RegExp.
En el ejemplo anterior, los paréntesis se pueden utilizar únicamente para agrupar una opción entre las palabras Chapter y
Section. Para impedir que la coincidencia se guarde para un uso posterior, incluya los metacaracteres ?: antes del modelo de
expresión regular entre paréntesis. La siguiente modificación proporciona la misma capacidad sin guardar la subcoincidencia:

/^(?:Chapter|Section) [1-9][0-9]{0,1}$/

Además de los metacaracteres ?:, hay otros dos metacaracteres sin captura que crean lo que se denomina coincidencias de
búsquedas anticipadas. Una búsqueda anticipada positiva, especificada mediante ?=, coincide con la cadena de búsqueda en
cualquier punto en el que comience un modelo de expresión regular coincidente entre paréntesis. Una búsqueda anticipada
negativa, especificada mediante ?!, coincide con la cadena de búsqueda en cualquier punto en el que comience una cadena que
no coincida con el modelo de expresión regular.
Por ejemplo, supongamos que trabaja con un documento que contiene referencias a Windows 3.1, Windows 95, Windows 98 y
Windows NT. Supongamos también que tiene que actualizar el documento cambiando todas las referencias a Windows 95,
Windows 98 y Windows NT por Windows 2000. La siguiente expresión regular, que es un ejemplo de búsqueda anticipada
positiva, coincide con Windows 95, Windows 98 y Windows NT:

/Windows(?=95 |98 |NT )/

Una vez que se encuentra la coincidencia, inmediatamente comienza la búsqueda de la siguiente coincidencia después del
texto coincidente y sin incluir los caracteres de la búsqueda anticipada. Por ejemplo, si la expresión anterior coincide con
Windows 98, la búsqueda se reanuda después de Windows y no después de 98.
Vea también
Conceptos
Referencias inversas en JScript
Otros recursos
Introducción a las expresiones regulares
JScript 8.0

Referencias inversas en JScript


Una de las características más importantes de las expresiones regulares es la capacidad de almacenar parte de un modelo
coincidente para su uso posterior. Recuerde que si el modelo, o parte del modelo, de una expresión regular se incluye entre
paréntesis, esa parte de la expresión se almacena en un búfer temporal. Para que no se guarde esa parte de la expresión
regular, utilice los metacaracteres sin captura ?:, ?= o ?!.
Utilizar referencias inversas
Cada subcoincidencia capturada se almacena de izquierda a derecha tal como se encontró en el modelo de expresiones
regulares. Los números de búfer comienzan por uno y continúan hasta un máximo de 99 subexpresiones capturadas. Se puede
tener acceso a cada búfer mediante \n, donde n equivale a uno o dos dígitos decimales que identifican un búfer específico.
Una de las aplicaciones más sencillas y útiles de las referencias inversas ofrece la posibilidad de encontrar la aparición de dos
palabras idénticas y adyacentes en el texto. Considere la frase siguiente:

Is is the cost of of gasoline going up up?

Esta frase contiene claramente varias palabras duplicadas. Se podría idear alguna forma de corregir esta frase sin buscar los
duplicados de cada palabra. La siguiente expresión regular utiliza una única subexpresión para hacer esto:

/\b([a-z]+) \1\b/gi

La expresión capturada, como especifica [a-z]+, incluye uno o varios caracteres alfabéticos. La segunda parte de la expresión
regular es la referencia a la subcoincidencia capturada previamente, esto es, la segunda aparición de la palabra que se había
encontrado justo antes con respecto a la expresión entre paréntesis. \1 especifica la primera subcoincidencia. Los
metacaracteres del límite de palabra garantizan que sólo se detectan palabras enteras. En caso contrario, esta expresión
identificaría de forma incorrecta frases como "es emitido" o "esto es".
El indicador global (g), que va después de la expresión regular, indica que la expresión se aplica a todas las coincidencias que
se puedan encontrar en la cadena de entrada. El indicador (i), situado al final de la expresión, especifica que no se hace
distinción entre mayúsculas y minúsculas. El indicador multiline especifica que se pueden encontrar coincidencias en
cualquiera de los lados de un carácter de nueva línea.
Mediante la expresión regular anterior, el siguiente código puede utilizar la información de subcoincidencia para reemplazar
una aparición de dos palabras idénticas consecutivas en una cadena de texto con una sola aparición de la misma palabra:

var ss = "Is is the cost of of gasoline going up up?.\n";


var re = /\b([a-z]+) \1\b/gim; //Create regular expression pattern.
var rv = ss.replace(re,"$1"); //Replace two occurrences with one.

El uso de $1 en el método replace hace referencia a la primera subcoincidencia guardada. Si hubiera más de una
subcoincidencia, se podría hacer referencia a las mismas de forma consecutiva mediante $2, $3, etc.
Las referencias inversas también pueden desglosar un URI (Universal Resource Indicator, Indicador de recursos universal) en
sus distintos componentes. Supongamos que desea desglosar el siguiente URI en el protocolo (ftp, http, etc.), la dirección de
dominio y la página o ruta de acceso:

http://msdn.microsoft.com:80/scripting/default.htm

La siguiente expresión regular proporciona esa funcionalidad:

/(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/

La primera subexpresión entre paréntesis captura la parte del protocolo de la dirección Web. Esa subexpresión coincide con
cualquier palabra que preceda a los dos puntos y a dos barras diagonales. La segunda subexpresión entre paréntesis captura la
parte de la dirección del dominio. Esa subexpresión coincide con uno o varios caracteres distintos de / o :. La tercera
subexpresión entre paréntesis captura un número de puerto, si se ha especificado alguno. Esa subexpresión coincide con cero
o más dígitos que sigan a un signo de dos puntos. No puede repetir esta subexpresión más de una vez. Por último, la cuarta
subexpresión entre paréntesis captura la información de ruta de acceso y/o la página especificada por la dirección Web. Esa
subexpresión coincide con cualquier secuencia de caracteres que no incluya los caracteres # o espacio en blanco.
Al aplicar la expresión regular al URI anterior, las subcoincidencias contienen lo siguiente:
RegExp.$1 contiene "http"
RegExp.$2 contiene "msdn.microsoft.com"
RegExp.$3 contiene ":80"
RegExp.$4 contiene "/scripting/default.htm"
Vea también
Otros recursos
Introducción a las expresiones regulares
JScript 8.0

Referencia de JScript
El lenguaje de programación JScript incluye una gran variedad de propiedades, métodos, objetos, funciones, etc. Asimismo,
JScript puede utilizar muchas características de la biblioteca de clases de .NET Framework. Las secciones que se muestran a
continuación explican el uso correcto de estas características y la sintaxis correcta en JScript.
En esta sección
Información sobre características
Proporciona información de versión acerca de las características del lenguaje de JScript y las compara con las especificadas
por el estándar ECMAScript.
Paseo por el lenguaje JScript
Comenta los elementos y procedimientos que utilizan los programadores para escribir código de JScript, así como vínculos a
áreas específicas que explican con más detalle los elementos del lenguaje y la sintaxis del código.
Referencia del lenguaje JScript .NET
Enumera los componentes esenciales del lenguaje de programación orientado a objetos JScript y ofrece vínculos a temas
que explican el uso del lenguaje.
Opciones del compilador de JScript
Enumera las opciones disponibles para el compilador de línea de comandos e incluye vínculos a temas que organizan las
opciones alfabéticamente o por categorías.
Secciones relacionadas
Referencia de .NET Framework
Muestra vínculos a temas que explican la sintaxis y estructura de la biblioteca de clases de .NET Framework y otros
elementos esenciales.
JScript 8.0

Información sobre características


El lenguaje de programación JScript incluye una gran variedad de propiedades, métodos, objetos, funciones, etc. Asimismo,
JScript puede utilizar muchas características de la biblioteca de clases de .NET Framework. Las secciones que se muestran a
continuación explican el uso correcto de estas características y la sintaxis correcta en JScript.
En esta sección
Características de Microsoft JScript incluidas en el estándar ECMA
Identifica las características del lenguaje de JScript que forman parte de la especificación del lenguaje ECMAScript.
Características de Microsoft JScript no incluidas en el estándar ECMA
Identifica las características del lenguaje de JScript que no están incluidas en la especificación del lenguaje ECMAScript.
Información de versiones
Proporciona comparaciones entre las distintas versiones de JScript.
Secciones relacionadas
Referencia de JScript
Enumera los elementos que componen la Referencia del lenguaje de JScript y vínculos a temas que explican en detalle el uso
apropiado de los elementos del lenguaje.
JScript 8.0

Funciones de Microsoft JScript no incluidas en el estándar ECMA (JScript)


JScript incorpora casi todas las características del estándar ECMAScript Edition 3 Language Specification. Además, JScript se está desarrollando junto
con BCMAScript Edition 4 e incorpora también muchas de las características propuestas de ese lenguaje. En las tablas siguientes se incluyen las
características de ECMAScript 3 y las características propuestas de ECMAScript 4 que admite JScript.
Características admitidas por JScript
Categoría Característica de ECMAScript 3/Palabra clave
Control de Array concat,join, length, reverse, slice, sort
matrices

Asignacione Asignación (=),Asignación de suma (+=),Asignación AND bit a bit (&=),Asignación OR bit a bit (|=),Asignación XOR bit a bit (^=),Asignación de divis
s ,Asignación de desplazamiento a la izquierda (<<=),Asignación de módulo (%=),Asignación de multiplicación (*=),Asignación de desplazamiento a l
,Asignación de resta (-=),Asignación de desplazamiento a la derecha sin signo (>>>=)

Valores bool Boolean, true, false


eanos

Comentario /*...*/ o bien //


s

Costantes/Li NaN null,Infinity undefined


terales

Control del f break continue do...while for for...in if...else Labeled return switch while
lujo

Fecha y hor Date getDate, getDay, getFullYear, getHours, getMilliseconds, getMinutes, getMonth, getSeconds, getTime, getTimezoneOffset, getYear,
a getUTCDate, getUTCDay, getUTCFullYear, getUTCHours, getUTCMilliseconds, getUTCMinutes, getUTCMonth, getUTCSeconds, setDate,
setFullYear, setHours, setMilliseconds, setMinutes, setMonth, setSeconds, setTime, setYear, setUTCDate, setUTCFullYear, setUTCHours,
setUTCMilliseconds, setUTCMinutes, setUTCMonth, setUTCSeconds, toGMTString, toLocaleString, toUTCString, parse, UTC

Declaracion Function new this var with


es

Control de e Error, description, number, throw, try...catch


rrores

Funciones d caller, Function arguments, length


e creación

Métodos glo Global escape, unescape eval isFinite, isNaN parseInt, parseFloat
bales

Matemática Math abs, acos, asin, atan, atan2, ceil, cos, exp, floor, log, max, min, pow, random, round, sin, sqrt, tan, E, LN2, LN10, LOG2E, LOG10E, PI,
s SQRT1_2, SQRT2

Números Number MAX_VALUE, MIN_VALUE NaN NEGATIVE_INFINITY, POSITIVE_INFINITY

Creación de Object new constructor, instanceof, prototype, toString, valueOf


objetos

Operadores Suma (+), Resta (-) Módulo aritmético (%) Multiplicación (*), División (/) Negación (-) Igualdad (==), Desigualdad (!=) Menor que (<),
Menor o igual que (<=) Mayor que (>) Mayor o igual que (>=) And lógico (&&), Or (||), Not (!) And bit a bit (&), Or (|), Not (~),
Xor (^) Desplazamiento a la izquierda bit a bit (<<),
Desplazamiento a la derecha (>>) Desplazamiento a la derecha sin signo (>>>) Condicional (?:) Coma (, ) delete, typeof,
void Decremento ( -- ), Incremento (++),Igualdad estricta (===), Desigualdad estricta (!==)

Objetos Array Boolean Date Function Global Math Number Object RegExp Regular Expression String
Expresiones RegExp index, input, lastIndex, $1...$9, source, compile, exec, test Sintaxis de expresiones regulares
regulares y
comparació
n de modelo
s

Cadenas String charAt, charCodeAt, fromCharCode indexOf, lastIndexOf split toLowerCase, toUpperCase lengthconcat, slice match, replace,
search anchor, big, blink, bold, fixed, fontcolor, fontsize, italics, link, small, strike, sub, sup
Categoría Característica propuesta de ECMAScript 4/Palabra clave
Objetos basados en clas class, extends, implements, interface,function get, function set, static,public, private, protected, internal,abstract, final,hide,
es override,static

Declaraciones const

Enumeraciones enum

Vea también
Conceptos
Características de Microsoft JScript no incluidas en el estándar ECMA (JScript)
Otros recursos
Referencia de JScript
JScript 8.0

Características de Microsoft JScript no incluidas en el estándar ECMA


(JScript)
JScript incorpora casi todas las características de ECMAScript Edition 3 y muchas de las características propuestas para ECMAScript Edition 4.
Además, JScript también tiene muchas características únicas no proporcionadas por los lenguajes ECMAScript. En la tabla siguiente se
muestran estas características específicas de JScript.
Características específicas de JScript
Categoría Característica/Palabra clave
Control de matrices VBArray dimensions, getItem, lbound, toArray, ubound

Objetos basados en clases expando, super

Compilación condicional @cc_on,@if (Instrucción),@set (Instrucción),@debug,@position,Variables de compilación condicional

Tipos de datos boolean, byte, char, decimal,double, float, int, long,Number, sbyte, short, String,uint, ulong,
ushort

Fecha y hora getVarDate

Mostrar información print

Enumeration Enumerator atEnd, item, moveFirst, moveNext

Espacios de nombres package, import

Objetos Enumerator VBArray ActiveXObject GetObject

Identificación del motor de secuencia de coman ScriptEngine ScriptEngineBuildVersion ScriptEngineMajorVersion ScriptEngineMinorVersion


dos

Vea también
Conceptos
Funciones de Microsoft JScript no incluidas en el estándar ECMA (JScript)
Otros recursos
Referencia de JScript
JScript 8.0

Información de versión de JScript


JScript es un lenguaje que continúa evolucionando y cada nueva versión del lenguaje presenta nuevas características. Para
sacar partido a todas las características que proporciona una versión determinada del lenguaje, es necesario poseer una
versión compatible del compilador o motor de secuencias de comandos.
Versiones y aplicaciones host
Cuando se escribe código para una aplicación de servidor o un programa de línea de comandos, normalmente se conocen la
versión del compilador y la versión de JScript que admite. Sin embargo, cuando se escriben secuencias de comandos de cliente
que se ejecutan en el motor de secuencias de comandos de un explorador, la secuencia en ejecución detecta la versión del
motor. Una vez que se conoce la versión del motor, se puede ejecutar una secuencia de comandos escrita en una versión
compatible de JScript. Para obtener más información, vea Detectar las funciones del explorador.
La tabla siguiente muestra la versión de Microsoft JScript implementada por las aplicaciones host.
Aplicación host 1.0 2.0 3.0 4.0 5.0 5.1 5.5 5.6 .NET 8.0
Microsoft Internet Explorer 3.0 x

Microsoft Internet Information Server 3.0 x

Microsoft Internet Explorer 4.0 x

Microsoft Internet Information Server 4.0 x

Microsoft Internet Explorer 5.0 x

Microsoft Internet Explorer 5.01 x

Microsoft Windows 2000 x

Microsoft Internet Explorer 5.5 x

Microsoft Windows Millennium x

Microsoft Internet Explorer 6.0 x

Microsoft Windows XP x

Microsoft Windows Server 2003 x

Microsoft .NET Framework 1.0 x


Nota
El número de versión proporcionado por la función ScriptEngineMajorVersion y la variable de compilación condicional @
_jscript_version siempre son valores numéricos. De esta forma, es posible realizar la comparación numérica con el número
de versión. Para las aplicaciones de la versión .NET, la versión proporcionada es la 7.x, no la .NET. Esto significa que los motor
es que proporcionan un número de versión 7.x o superior pueden compilar código de JScript 8.0.

La tabla siguiente muestra las características del lenguaje JScript y la versión en la que se introdujeron por primera vez.
Elemento del lenguaje 1.0 2.0 3.0 4.0 5.0 5.5 .NET 8.0
0...n (Propiedad) x
Propiedades $1...$9 x

abs (Método) x

abstract (Modificador) x

acos (Método) x

ActiveXObject (Objeto) x

Operador de suma (+) x

Operador de asignación y suma (+=) x

anchor (Método) x

apply (Método) x

arguments (Objeto) x

arguments (Propiedad) x

Array (Objeto) x

asin (Método) x

Operador de asignación (=) x

atan (Método) x

atan2 (Método) x

atEnd (Método) x

big (Método) x

Operador AND bit a bit (&) x

Operador de asignación y AND bit a bit (&=) x

Operador de desplazamiento a la izquierda bit a bit (<<) x

Operador NOT bit a bit (~) x

Operador bit a bit OR (|) x

Operador de asignación y OR bit a bit (|=) x

Operador de desplazamiento a la derecha bit a bit (>>) x

Operador XOR bit a bit (^) x

Operador de asignación y XOR bit a bit (^=) x


blink (Método) x

bold (Método) x

boolean (Tipo de datos) x

Boolean (Objeto) x

break (Instrucción) x

byte (Tipo de datos) x

call (Método) x

callee (Propiedad) x

caller (Propiedad) x

catch (Instrucción) x

@cc_on (Instrucción) x

ceil (Método) x

char (Tipo de datos) x

charAt (Método) x

charCodeAt (Método) x

class (Instrucción) x

Operador coma (,) x

// (Instrucción, comentario de una sola línea) x

/*..*/ (Instrucción, comentario de varias líneas) x

Operadores de comparación x

compile (Método) x

concat (Método, Array) x

concat (Método, String) x

Compilación condicional x

Variables de compilación condicional x

Operador condicional ternario (?:) x


const (Instrucción) x

constructor (Propiedad) x

continue (Instrucción) x

cos (Método) x

Conversión de tipo de datos x

Date (Objeto) x

@debug (Directiva) x

debugger (Instrucción) x

decimal (Tipo de datos) x

decodeURI (Método) x

decodeURIComponent (Método) x

Operador de decremento (--) x

delete (Operador) x

description (Propiedad) x

dimensions (Método) x

Operador de división (/) x

Operador de asignación y división (/=) x

do...while (Instrucción) x

double (Tipo de datos) x

E (Propiedad) x

encodeURI (Método) x

encodeURIComponent (Método) x

enum (Instrucción) x

Enumerator (Objeto) x

Operador de igualdad (==) x

Error (Objeto) x

escape (Método) x
eval (Método) x

exec (Método) x

exp (Método) x

expando (Modificador) x
false (Literal) x

final (Modificador) x

fixed (Método) x

float (Tipo de datos) x

floor (Método) x

fontcolor (Método) x

fontsize (Método) x

for (Instrucción) x

for...in (Instrucción) x

fromCharCode (Método) x

function get (Instrucción) x

Fuction (Objeto) x

function set (Instrucción) x

function (Instrucción) x

getDate (Método) x

getDay (Método) x

getFullYear (Método) x

getHours (Método) x

getItem (Método) x

getMilliseconds (Método) x

getMinutes (Método) x

getMonth (Método) x

GetObject (Función) x
getSeconds (Método) x

getTime (Método) x

getTimezoneOffset (Método) x

getUTCDate (Método) x

getUTCDay (Método) x

getUTCFullYear (Método) x

getUTCHours (Método) x

getUTCMilliseconds (Método) x

getUTCMinutes (Método) x

getUTCMonth (Método) x

getUTCSeconds (Método) x

getVarDate (Método) x

getYear (Método) x

Global (Objeto) x

global (Propiedad) x

Operador mayor que (>) x

Operador mayor o igual que (>=) x

hasOwnProperty (Método) x

hide (Modificador) x

@if (Instrucción) x

if...else (Instrucción) x

ignoreCase (Propiedad) x

import (Instrucción) x

in (Operador) x

Operador de incremento (++) x

index (Propiedad) x

indexOf (Método) x
Operador de desigualdad (!=) x

Infinity (Propiedad) x

input ($_) (Propiedad) x

instanceof (Operador) x

int (Tipo de datos) x

interface (Instrucción) x

internal (Modificador) x

isFinite (Método) x

isNaN (Método) x

isPrototypeOf (Método) x

italics (Método) x

item (Método) x

Tipos de datos de JScript x

join (Método) x

Instrucción con etiqueta x

lastIndex (Propiedad) x

lastIndexOf (Método) x

lastMatch ($&) (Propiedad) x

lastParen ($+) (Propiedad) x

lbound (Método) x

leftContext ($`) (Propiedad) x

Operador de asignación y desplazamiento a la izquierda (<<=) x

length (Propiedad, argumentos) x

length (Propiedad, Array) x

length (Propiedad, Function) x

length (Propiedad, String) x


Operador menor que (<) x

Operador menor o igual que (<=) x

link (Método) x

LN2 (Propiedad) x

LN10 (Propiedad) x

localeCompare (Método) x

log (Método) x

LOG2E (Propiedad) x

LOG10E (Propiedad) x

Operador lógico AND (&&) x

Operador lógico NOT (!) x

Operador lógico OR (||) x

long (Tipo de datos) x

match (Método) x

Math (Objeto) x

max (Método) x

MAX_VALUE (Propiedad) x

message (Propiedad) x

min (Método) x

MIN_VALUE (Propiedad) x

Operador de módulo (%) x

Operador de asignación y módulo (%=) x

moveFirst (Método) x

moveNext (Método) x

multiline (Propiedad) x

Operador de multiplicación (*) x

Operador de asignación y multiplicación (*=) x


name (Propiedad) x

NaN (Propiedad, Global) x

NaN (Propiedad, Number) x

NEGATIVE_INFINITY (Propiedad) x

new (Operador) x

Operador de no identidad (!==) x


null (Literal) x

Number (Tipo de datos) x

Number (Objeto) x

number (Propiedad) x

Object (Objeto) x

Precedencia de operadores x

override (Modificador) x

package (Instrucción) x

parse (Método) x

parseFloat (Método) x

parseInt (Método) x

PI (Propiedad) x

pop (Método) x

@position (Directiva) x

POSITIVE_INFINITY (Propiedad) x

pow (Método) x

print (Instrucción) x

private (Modificador) x

propertyIsEnumerable (Propiedad) x

protected (Modificador) x

prototype (Propiedad) x
public (Modificador) x

push (Método) x

random (Método) x

RegExp (Objeto) x

Regular Expression (Objeto) x

Sintaxis de expresiones regulares x

replace (Método) x

return (Instrucción) x

reverse (Método) x

rightContext ($') (Propiedad) x

Operador de asignación y desplazamiento a la derecha (>>=) x

round (Método) x

sbyte (Tipo de datos) x

ScriptEngine (Función) x

ScriptEngineBuildVersion (Función) x

ScriptEngineMajorVersion (Función) x

ScriptEngineMinorVersion (Función) x

search (Método) x

@set (Instrucción) x

setDate (Método) x

setFullYear (Método) x

setHours (Método) x

setMilliseconds (Método) x

setMinutes (Método) x

setMonth (Método) x

setSeconds (Método) x

setTime (Método) x
setUTCDate (Método) x

setUTCFullYear (Método) x

setUTCHours (Método) x

setUTCMilliseconds (Método) x

setUTCMinutes (Método) x

setUTCMonth (Método) x

setUTCSeconds (Método) x

setYear (Método) x

shift (Método) x

short (Tipo de datos) x

sin (Método) x

slice (Método, Array) x

slice (Método, String) x

small (Método) x

sort (Método) x

source (Propiedad) x

splice (Método) x

split (Método) x

sqrt (Método) x

SQRT1_2 (Propiedad) x

SQRT2 (Propiedad) x

static (Modificador) x

static (Instrucción) x

Operador de igualdad estricta (===) x

strike (Método) x

String (Tipo de datos) x


String (Objeto) x

sub (Método) x

substr (Método) x

substring (Método) x

Operador de resta (-) x

Operador de asignación y sustracción (-=) x

sup (Método) x

super (Instrucción) x

switch (Instrucción) x

tan (Método) x

test (Método) x

this (Instrucción) x

throw (Instrucción) x

toArray (Método) x

toDateString (Método) x

toExponential (Método) x

toFixed (Método) x

toGMTString (Método) x

toLocaleDateString (Método) x

toLocaleLowerCase (Método) x

toLocaleString (Método) x

toLocaleTimeString (Método) x

toLocaleUpperCase (Método) x

toLowerCase (Método) x

toPrecision (Método) x

toString (Método) x

toTimeString (Método) x
toUpperCase (Método) x

toUTCString (Método) x

true (Literal) x

try...catch...finally (Instrucción) x

Anotaciones de tipo x

Conversión de tipos x

typeof (Operador) x

ubound (Método) x
uint (Tipo de datos) x

ulong (Tipo de datos) x

Operador unario de negación (-) x

undefined (Propiedad) x

unescape (Método) x

unshift (Método) x

Operador de desplazamiento a la derecha sin signo (>>>) x

Operador de asignación y desplazamiento a la derecha sin signo (>>>=) x

ushort (Tipo de datos) x

UTC (Método) x

valueOf (Método) x

var (Instrucción) x

VBArray (Objeto) x

void (Operador) x

while (Instrucción) x

with (Instrucción) x

Vea también
Conceptos
Lo nuevo en JScript 8.0
Otros recursos
Referencia de JScript
JScript 8.0

Paseo por el lenguaje JScript


Como en la mayoría de los lenguajes de programación, las secuencias de comandos o programas de Microsoft JScript se
escriben en formato de texto. Normalmente, una secuencia de comandos o un programa se compone de muchas instrucciones
y comentarios. En una instrucción se pueden utilizar variables, expresiones y datos literales como cadenas y números.
En esta sección
Matrices de JScript
Explica los tipos de matrices y cómo utilizarlas en JScript.
Asignaciones e igualdad en JScript
Explica cómo se asignan en JScript valores a variables, elementos de matrices y elementos de propiedades, así como la
sintaxis de igualdad utilizada.
Comentarios de JScript
Muestra cómo utilizar la sintaxis de JScript correcta para incluir comentarios en el código.
Expresiones de JScript
Explica cómo combinar palabras clave, operadores, variables y literales para obtener nuevos valores.
Identificadores de JScript
Explica cómo crear nombres de identificadores válidos en JScript.
Instrucciones de JScript
Proporciona información general de las dos unidades básicas de instrucción de JScript: instrucciones de declaración e
instrucciones ejecutables.
Tipos de datos de JScript
Contiene vínculos a temas que explican cómo utilizar los tipos de datos primitivos, los tipos de datos de referencia y los tipos
de datos de .NET Framework en JScript.
Variables y constantes de JScript
Ofrece vínculos a temas que explican cómo declarar variables y constantes y cómo utilizarlas para hacer referencia a objetos.
Objetos de JScript
Proporciona una breve descripción de objetos y ofrece vínculos que explican cómo crear y utilizar objetos en JScript.
Modificadores de JScript
Explica cómo utilizar los modificadores de visibilidad, los modificadores de herencia, los modificadores de versión segura, los
modificadores expando y los modificadores estáticos.
Operadores de JScript
Enumera los operadores de cálculo, lógicos, bit a bit y de asignación, así como operadores varios, y proporciona vínculos a la
información que explica cómo utilizarlos de forma eficaz.
Funciones de JScript
Describe el concepto de funciones y proporciona vínculos a temas que explican cómo utilizar y crear funciones.
Conversión en JScript
Explica cómo realiza acciones el compilador de JScript en valores de tipos de datos diferentes.
Copiar, pasar y comparar datos
Explica cómo se copian, pasan y comparan datos en JScript cuando se trabaja con matrices, funciones, objetos, etc.
Estructuras condicionales de JScript
Describe cómo se controla normalmente el flujo de un programa en JScript y proporciona vínculos a la información que
explica cómo regular el flujo de ejecución de un programa.
Palabras reservadas de JScript (JScript)
Explica el concepto de palabras reservadas y enumera las que se utilizan en JScript.
Consideraciones de seguridad para JScript
Explica cómo evitar los problemas comunes de seguridad en el código JScript.
Secciones relacionadas
Referencia del lenguaje
Enumera los elementos que componen la Referencia del lenguaje de JScript y vínculos a temas que explican en detalle el uso
apropiado de los elementos del lenguaje.
Referencia de la biblioteca de clases de .NET Framework
Contiene vínculos a temas sobre las clases de la biblioteca de clases de .NET Framework y explica cómo utilizar la
documentación correspondiente.
JScript 8.0

Matrices de JScript
Una matriz agrupa fragmentos de datos relacionados en una variable. Cada elemento de la matriz se distingue por un número
único, denominado índice o subíndice, combinado con el nombre de la variable compartida. Las matrices permiten en muchos
casos crear un código más simple y reducido, ya que los bucles pueden procesar eficazmente cualquier número de elementos
utilizando para ello el número de índice.
JScript proporciona dos tipos distintos de matrices: los objetos de matriz de JScript y las matrices con tipo. En los objetos de
matriz de JScript, que son objetos dispersos, una secuencia de comandos puede agregar y quitar elementos de forma
dinámica, y estos elementos pueden tener cualquier tipo de datos. En las matrices con tipo, que son matrices densas, el tamaño
es fijo, y los elementos deben tener el mismo tipo base que la matriz.
En esta sección
Información general sobre las matrices
Describe los dos tipos de matrices JScript y las diferencias entre ambos, y explica cómo elegir el tipo de matriz adecuado.
Declaración de matrices
Explica el concepto de declaración de matrices, y la diferencia entre declarar matrices con el operador new y declarar
literales de matriz.
Uso de matrices
Muestra cómo obtener acceso a los elementos de las matrices unidimensionales, las matrices multidimensionales y las
matrices de matrices.
Matrices de matrices
Explica el concepto de matrices de matrices, para qué sirven y cómo utilizarlas.
Matrices multidimensionales
Explica el concepto de matrices multidimensionales, en qué se diferencian de las matrices de matrices y cómo utilizarlas.
Secciones relacionadas
Datos de matriz
Explica cómo crear valores literales de matrices y cómo combinar tipos de datos en la misma matriz.
Array (Objeto)
Proporciona información de referencia sobre el objeto Array de JScript, su modo de uso y su interacción con el tipo de datos
System.Array.
JScript 8.0

Información general sobre las matrices


Una matriz agrupa varios fragmentos de datos en una variable. A los datos de la matriz se hace referencia mediante un único
número de índice (para las matrices unidimensionales) o mediante varios números de índice (para las matrices de matrices o
las matrices multidimensionales). A cada uno de los elementos de la matriz se hace referencia mediante el identificador de
matriz seguido del índice de matriz entre corchetes ([]). Para hacer referencia a la matriz en su totalidad, basta con utilizar el
identificador de matriz. La recopilación de datos en matrices simplifica la administración de los datos. Por ejemplo, mediante
una matriz, un método puede pasar una lista de nombres a una función utilizando un único parámetro.
Existen dos tipos de matrices en JScript: las matrices JScript y las matrices con tipo. Aunque los dos tipos de matrices son
similares, presentan algunas diferencias. Las matrices JScript y las matrices con tipo pueden interactuar entre sí. Por tanto, un
objeto Array JScript puede llamar a los métodos y propiedades de cualquier matriz con tipo, y las matrices con tipo pueden
llamar a muchos métodos y propiedades del objeto Array. Además, las funciones que aceptan matrices con tipo aceptan
objetos Array y viceversa. Para obtener más información, vea Array (Objeto).
Matrices con tipo
Las matrices con tipo (denominadas también matrices nativas) son similares a las matrices utilizadas en lenguajes como C y
C++. Las matrices con tipo proporcionan seguridad de tipos ya que sólo almacenan los datos correspondientes al tipo
especificado en la declaración de tipo de matriz.
Nota
Puede definir una matriz con tipo de tipo Object para almacenar datos de cualquier tipo.

Cuando la secuencia de comandos crea o inicializa la matriz, establece el número de elementos de una matriz con tipo. El único
modo de cambiar el número de elementos es volver a crear la matriz. Los elementos de una matriz con tipo creada con n
elementos están numerados de 0 a n-1. Cualquier intento de obtener acceso a elementos que se encuentren fuera de ese
intervalo generará un error. Además, las matrices con tipos son densas, lo que significa que cada índice del intervalo permitido
hace referencia a un elemento.
Una secuencia de comandos puede asignar una matriz declarada con tipo a una variable o constante, o puede pasar la matriz a
una función, operador o instrucción. Cuando se asigne a una variable (o constante), se deberá comprobar que el tipo de datos
de la variable coincide con el tipo de la matriz y que las matrices tienen la misma dimensionalidad.
Una matriz con tipo es una instancia del objeto System.Array de .NET Framework. Para tener acceso a los miembros estáticos
del objeto System.Array o para crear un objeto System.Array de forma explícita se requiere el nombre completo
System.Array. Esta sintaxis lo distingue de Array, el objeto intrínseco de JScript.
Matrices de JScript
Los objetos Array JScript, que proporcionan mayor flexibilidad que las matrices con tipo, deben utilizarse cuando haya que
generar una pila genérica, cuando se desee usar una lista de elementos y cuando el rendimiento no sea un aspecto crucial. Sin
embargo, dado que las matrices con tipo proporcionan seguridad de tipos, un mayor rendimiento y una interacción más eficaz
con otros lenguajes, los programadores prefieren generalmente utilizar matrices con tipo en lugar de matrices JScript.
Una matriz JScript puede almacenar datos de cualquier tipo, lo que permite escribir secuencias de comandos más fácilmente
sin tener en cuenta los conflictos entre tipos. Esta característica debe utilizarse con cautela ya que no tiene en cuenta la
comprobación de tipos inflexibles proporcionada por JScript.
Las secuencias de comandos pueden agregar o quitar elementos de forma dinámica de las matrices JScript. Para agregar un
elemento de matriz, asigne un valor al elemento. El operador delete sirve para quitar elementos.
Las matrices JScript son dispersas. Es decir, si una matriz tiene tres elementos, numerados como 0, 1 y 2, puede haber un
elemento 50 aunque no existan los elementos que van del 3 al 49. La propiedad length de las matrices de JScript se actualiza
de forma automática al agregar un elemento. Si, en el ejemplo anterior, se agrega el elemento 50, el valor de la variable lenght
cambiará a 51 y no a 4.
Un objeto Array JScript y un Object JScript son prácticamente iguales. Las dos diferencias principales estriban en que un
Object (de forma predeterminada) no tiene una propiedad de longitud automática y un Object JScript no tiene las
propiedades y métodos de un objeto Array. Para obtener más información, vea Array (Objeto de JScript).
Vea también
Referencia
Array (Objeto)
Conceptos
Datos de matriz
Array (Objeto de JScript)
Otros recursos
Matrices de JScript
JScript 8.0

Declaración de matrices
Al igual que ocurre con todos los demás datos de JScript, las variables pueden almacenar matrices. Las anotaciones de tipo
pueden especificar que una variable debe contener un objeto de matriz o una matriz con tipo, pero no pueden proporcionar
una matriz inicial. Para almacenar una matriz en una variable, debe declarar la matriz y asignarla a la variable.
Al declarar un objeto de matriz JScript se crea un nuevo objeto Array, mientras que al declarar una matriz con tipo se reserva
una sección de memoria lo suficientemente grande para almacenar todos los elementos de la matriz. Ambos tipos de matrices
se pueden declarar utilizando el operador new para crear de forma explícita una nueva matriz o utilizando un literal de matriz.
Declaración de matrices con el operador new
Para declarar un objeto Array JScript, puede utilizar el operador new con el constructor Array. Puesto que es posible agregar
dinámicamente miembros a una matriz JScript, no es necesario especificar un tamaño inicial para la matriz. En este ejemplo, a1
se asigna a una matriz de longitud cero.

var a1 = new Array();

Para asignar una longitud inicial a la matriz creada con el constructor Array, pase un entero al constructor. La longitud de la
matriz debe ser cero o un número positivo. En la siguiente línea de código se asigna una matriz de longitud 10 a a2.

var a2 = new Array(10);

Si se pasan varios parámetros o un único parámetro no numérico al constructor Array, la matriz resultante contendrá todos
los parámetros como elementos de la matriz. Por ejemplo, en la siguiente línea de código se crea una matriz en la que el
elemento 0 es el número 10, el elemento 1 es la cadena "Hello" y el elemento 2 es la fecha actual.

var a3 = new Array(10, "Hello", Date());

El operador new puede declarar también matrices con tipo. Dado que las matrices con tipo no pueden aceptar de forma
dinámica elementos agregados, en la declaración se debe especificar el tamaño de la matriz. En el constructor de las matrices
con tipo se utilizan corchetes en lugar de paréntesis para incluir el tamaño de la matriz. Por ejemplo, en la siguiente línea de
código se declara una matriz de cinco enteros.

var i1 : int[] = new int[5];

El operador new puede declarar también matrices multidimensionales. En el siguiente ejemplo se declara una matriz de
enteros de tres por cuatro por cinco.

var i2 : int[,,] = new int[3,4,5];

Cuando se declaran matrices de matrices, la matriz base debe aparecer antes que las submatrices, y éstas no pueden
declararse al mismo tiempo. De este modo, se obtiene mayor flexibilidad a la hora de determinar el tamaño de las submatrices.
En este ejemplo, la primera submatriz tiene una longitud de 1, la segunda de 2, y así sucesivamente.

// First, declare a typed array of type int[], and initialize it.


var i3 : int[][] = new (int[])[4];
// Second, initialize the subarrays.
for(var i=0; i<4; i++)
i3[i] = new int[i+1];

Declaración de matrices con literales de matriz


Otra forma de declarar e inicializar matrices simultáneamente es utilizar literales de matriz. Un literal de matriz representa una
Array JScript. Dado que las matrices JScript interactúan con las matrices con tipo, se pueden utilizar también literales para
inicializar matrices con tipo. Para obtener más información, vea Datos de matriz.
Los literales de matriz pueden inicializar de forma sencilla matrices unidimensionales. Tenga en cuenta que el compilador
intentará convertir los datos del literal de matriz en el tipo correcto cuando se asignen a una matriz con tipo. En este ejemplo,
se asigna una matriz literal a una matriz JScript y a una matriz con tipo.

var al1 : Array = [1,2,"3"];


var il1 : int[] = [1,2,"3"];

Los literales de matriz pueden inicializar también matrices de matrices. En el ejemplo siguiente, una matriz de dos matrices de
enteros inicializa la matriz JScript y la matriz con tipo.

var al1 : Array = [[1,2,3],[4,5,6]];


var il1 : int[][] = [[1,2,3],[4,5,6]];

Los literales de matriz no pueden inicializar matrices con tipo multidimensionales.


Vea también
Referencia
new (Operador)
Conceptos
Datos de matriz
Array (Objeto de JScript)
Otros recursos
Matrices de JScript
JScript 8.0

Uso de matrices
Se pueden utilizar varios tipos de matrices en JScript. En los apartados siguientes se explica cómo utilizar algunas de estas
matrices y cómo elegir la matriz apropiada para una aplicación concreta.
Matrices unidimensionales
En el ejemplo siguiente se muestra cómo obtener acceso al primer y último elemento de la matriz addressBook. Se supone que
en otra parte de la secuencia de comandos se ha definido y asignado un valor a addressBook. Dado que en las matrices de
JScript los índices empiezan en cero, el primer elemento de una matriz es cero y el último elemento es la longitud de la matriz
menos uno.

var firstAddress = addressBook[0];


var lastAddress = addressBook[addressBook.length-1];

Matrices de matrices y matrices multidimensionales


En las matrices de matrices o en las matrices multidimensionales se pueden almacenar datos a los que se haga referencia
mediante varios índices. Cada tipo de matriz tiene características propias.
Las matrices de matrices son útiles para las aplicaciones en las que cada submatriz tiene una longitud diferente. Las
submatrices pueden reorganizarse fácilmente, lo que simplifica la ordenación de los elementos de la matriz. Un ejemplo típico
en el que se utilizan matrices de matrices es un calendario, en donde una matriz Year almacena doce matrices Month, y cada
matriz Month almacena datos para el número de días correspondiente.
Las matrices multidimensionales son útiles en aplicaciones donde el tamaño de la matriz de cada dimensión se conoce en el
momento de la declaración. Son más eficaces que las matrices de matrices en lo que respecta a velocidad y consumo de
memoria. Las matrices multidimensionales deben ser matrices con tipo. Un ejemplo típico es una matriz utilizada en los
cálculos matemáticos, donde el tamaño de la matriz es fijo y se conoce desde el principio.
Recorrer mediante un bucle los elementos de una matriz JScript
Dado que las matrices JScript son dispersas, pueden tener un gran número de elementos no definidos entre el primer y el
último elemento. Esto significa que si utiliza un bucle for para tener acceso a los elementos de la matriz, deberá comprobar
cada uno de los elementos para ver si son elementos no definidos.
Afortunadamente, JScript proporciona un bucle for...in que permite tener acceso fácilmente sólo a los elementos definidos de
una matriz JScript. En el ejemplo siguiente se define una matriz JScript dispersa y se muestran sus elementos utilizando el
bucle for y el bucle for...in.

var a : Array = new Array;


a[5] = "first element";
a[100] = "middle element";
a[100000] = "last element";
print("Using a for loop. This is very inefficient.")
for(var i = 0; i<a.length; i++)
if(a[i]!=undefined)
print("a[" + i + "] = " + a[i]);
print("Using a for...in loop. This is much more efficient.");
for(var i in a)
print("a[" + i + "] = " + a[i]);

El resultado de este programa es:

Using a for loop. This is very inefficient.


a[5] = first element
a[100] = middle element
a[100000] = last element
Using a for...in loop. This is much more efficient.
a[5] = first element
a[100] = middle element
a[100000] = last element
Vea también
Referencia
for...in (Instrucción)
Conceptos
Matrices de matrices
Matrices multidimensionales (Jscript)
Otros recursos
Matrices de JScript
JScript 8.0

Matrices de matrices
Es posible crear una matriz y rellenarla con otras matrices. La matriz base puede ser una matriz JScript o una matriz con tipo.
Las matrices JScript aportan mayor flexibilidad en los tipos de datos almacenados, mientras que las matrices con tipo evitan
que se almacenen datos con tipo incorrecto en la matriz.
Las matrices de matrices son útiles para las aplicaciones en las que cada submatriz tiene una longitud diferente. Si todas las
submatrices tienen la misma longitud, es más conveniente utilizar una matriz multidimensional. Para obtener más
información, vea Matrices multidimensionales.
Matrices de matrices con tipo
En el ejemplo siguiente, una matriz de matrices de cadenas almacena nombres de animales de compañía. Dado que el número
de elementos de cada submatriz es independiente del de las otras (el número de nombres de gatos puede ser distinto del
número de nombres de perros), en lugar de utilizar una matriz multidimensional se utiliza una matriz de matrices.

// Create two arrays, one for cats and one for dogs.
// The first element of each array identifies the species of pet.
var cats : String[] = ["Cat","Beansprout", "Pumpkin", "Max"];
var dogs : String[] = ["Dog","Oly","Sib"];

// Create a typed array of String arrays, and initialze it.


var pets : String[][] = [cats, dogs];

// Loop over all the types of pets.


for(var i=0; i<pets.length; i++)
// Loop over the pet names, but skip the first element of the list.
// The first element identifies the species.
for(var j=1; j<pets[i].length; j++)
print(pets[i][0]+": "+pets[i][j]);

El resultado de este programa es:

Cat: Beansprout
Cat: Pumpkin
Cat: Max
Dog: Oly
Dog: Sib

También puede utilizar una matriz con tipo de tipo Object para almacenar matrices.
Matriz de matrices JScript
Utilizando una matriz JScript como matriz base se proporciona flexibilidad en los tipos de las submatrices almacenadas. Por
ejemplo, en la línea de código siguiente se crea una matriz JScript que almacena matrices JScript que contienen cadenas y
enteros.

// Declare and initialize the JScript array of arrays.


var timecard : Array;
timecard = [ ["Monday", 8],
["Tuesday", 8],
["Wednesday", 7],
["Thursday", 9],
["Friday", 8] ];
// Display the contents of timecard.
for(var i=0; i<timecard.length; i++)
print("Worked " + timecard[i][1] + " hours on " + timecard[i][0] + ".");

El ejemplo anterior muestra:

Worked 8 hours on Monday.


Worked 8 hours on Tuesday.
Worked 7 hours on Wednesday.
Worked 9 hours on Thursday.
Worked 8 hours on Friday.

Vea también
Conceptos
Datos de matriz
Matrices multidimensionales (Jscript)
Otros recursos
Matrices de JScript
JScript 8.0

Matrices multidimensionales (Jscript)


En JScript puede crear matrices con tipo multidimensionales. Las matrices multidimensionales utilizan varios índices para tener
acceso a los datos. Cuando la secuencia de comandos declara la matriz, establece el intervalo de cada índice. Las matrices
multidimensionales son similares a las matrices de matrices, en las que cada submatriz puede tener una longitud diferente.
Para obtener más información, vea Matrices de matrices.
Explicación
El tipo de datos de una matriz unidimensional se define mediante el nombre del tipo de datos seguido de un par de corchetes
([]). Para especificar el tipo de datos de una matriz multidimensional se utiliza el mismo procedimiento, pero se incluyen
comas (,) entre los corchetes. La dimensionalidad de la matriz es igual al número de comas más uno. En el ejemplo siguiente se
ilustra la diferencia entre definir una matriz unidimensional y definir una multidimensional.

// Define a one-dimensional array of integers. No commas are used.


var oneDim : int[];
// Define a three-dimensional array of integers.
// Two commas are used to produce a three dimensional array.
var threeDim : int[,,];

En el ejemplo siguiente, se utiliza una matriz bidimensional de caracteres para almacenar el estado de un tablero del tres en
raya.

// Declare a variable to store two-dimensional game board.


var gameboard : char[,];
// Create a three-by-three array.
gameboard = new char[3,3];
// Initialize the board.
for(var i=0; i<3; i++)
for(var j=0; j<3; j++)
gameboard[i,j] = " ";
// Simulate a game. 'X' goes first.
gameboard[1,1] = "X"; // center
gameboard[0,0] = "O"; // upper-left
gameboard[1,0] = "X"; // center-left
gameboard[2,2] = "O"; // lower-right
gameboard[1,2] = "X"; // center-right, 'X" wins!
// Display the board.
var str : String;
for(var i=0; i<3; i++) {
str = "";
for(var j=0; j<3; j++) {
if(j!=0) str += "|";
str += gameboard[i,j];
}
if(i!=0)
print("-+-+-");
print(str);
}

El resultado de este programa es:

O| |
-+-+-
X|X|X
-+-+-
| |O

Puede utilizar una matriz con tipo multidimensional de tipo Object para almacenar datos de cualquier tipo.
Vea también
Conceptos
Datos de matriz
Matrices de matrices
Otros recursos
Matrices de JScript
JScript 8.0

Asignaciones e igualdad en JScript


En JScript, el operador de asignación se utiliza para asignar un valor a una variable. El operador de igualdad compara dos
valores.
Asignaciones
Al igual que muchos lenguajes de programación, JScript utiliza el signo igual (=) para asignar valores a variables: es el
operador de asignación. El operando situado a la izquierda del operador = debe ser un valor Lvalue, es decir, una variable, un
elemento de la matriz o una propiedad de objeto.
El operando situado a la derecha del operador = debe ser un valor Rvalue. Puede utilizarse cualquier tipo de valor arbitrario
como valor Rvalue, incluido el valor resultante de una expresión. A continuación se incluye un ejemplo de instrucción de
asignación de JScript:

anInteger = 3;

JScript interpreta esta instrucción de la forma siguiente:


"Asignar el valor 3 a la variable anInteger"
o bien
""anInteger recibe el valor 3".
Una asignación será correcta siempre que la anotación de tipo no haya enlazado la variable a un tipo de datos determinado en
la instrucción. En caso contrario, el compilador intentará convertir Lvalue al tipo de datos de rvalue. Si la conversión nunca se
puede realizar correctamente, el compilador genera un error. Si la conversión se realiza correctamente para algunos valores,
pero falla con otros, el compilador genera una advertencia informando de que se puede producir un error cuando se ejecuta el
código.
En este ejemplo, el valor entero almacenado en la variable i se convierte a un valor double cuando se asigna a la variable x.

var i : int = 29;


var x : double = i;

Para obtener más información, vea Conversión de tipos.


Igualdad
A diferencia de otros lenguajes de programación, JScript no utiliza el signo igual como operador de comparación, sino sólo
como operador de asignación. Para comparar dos valores, puede utilizar el operador de igualdad (==) o el operador de
igualdad estricta (===).
El operador de igualdad compara las cadenas primitivas, los números y los valores booleanos por valor. Si dos variables tienen
el mismo valor, después de la conversión de tipos (si es necesaria), el operador de igualdad devuelve true. Los objetos
(incluidos los objetos Array, Function, String, Number, Boolean, Error, Date y RegExp) se comparan por referencia.
Aunque dos variables de objeto tengan el mismo valor, la comparación devuelve true sólo si hacen referencia al mismo objeto.
El operador de igualdad estricta compara el valor y el tipo de dos expresiones; devuelve true sólo si las dos expresiones se
comparan como iguales con el operador de igualdad, y el tipo de datos es el mismo para los dos operandos.
Nota
El operador de igualdad estricta no distingue entre los diferentes tipos de datos numéricos. Es importante comprender la dife
rencia que hay entre los operadores de asignación, de igualdad y de igualdad estricta.

Las comparaciones realizadas en las secuencias de comandos siempre tienen un resultado booleano. Observe la siguiente línea
de código de JScript:

y = (x == 2000);
En este caso, se prueba el valor de la variable x para ver si es igual al número 2000. Si es así, el resultado de la comparación es
el valor booleano true, que se asigna a la variable y. Si x no es igual a 2000, el resultado de la comparación es el valor
booleano false, asignado a y.
El operador de igualdad convertirá el tipo para comprobar si los valores son iguales. En la siguiente línea de código de JScript,
la cadena literal "42" se convertirá en un número antes de ser comparada con el número 42. El resultado es verdadero; es
decir, el valor true.

42 == "42";

Los objetos se comparan mediante otras reglas. El comportamiento del operador de igualdad depende del tipo de los objetos.
Si los objetos son instancias de una clase definida con un operador de igualdad, el valor devuelto está en función de la
implementación del operador de igualdad. Las clases que proporciona un operador de igualdad no se pueden definir en
JScript, aunque otros lenguajes de .NET Framework admiten esas definiciones de clase.
Los objetos sin un operador de igualdad definido, como un objeto basado en el objeto Object de JScript o una instancia de
una clase de JScript, se consideran iguales sólo si los dos objetos hacen referencia al mismo objeto. Es decir, el resultado de
una comparación entre dos objetos distintos siempre será diferente, aunque contengan los mismos datos. En el siguiente
ejemplo se muestra este comportamiento:

// A primitive string.
var string1 = "Hello";
// Two distinct String objects with the same value.
var StringObject1 = new String(string1);
var StringObject2 = new String(string1);
// An object converts to a primitive when
// comparing an object and a primitive.
print(string1 == StringObject1); // Prints true.

// Two distinct objects compare as different.


print(StringObject1 == StringObject2); // Prints false.
// Use the toString() or valueOf() methods to compare object values.
print(StringObject1.valueOf() == StringObject2); // Prints true.

Los operadores de igualdad son especialmente útiles en las instrucciones de condición de estructuras de control. En este caso
se combina el operador de igualdad con la instrucción que lo utiliza. Considere el ejemplo siguiente de código de JScript:

if (x == 2000)
z = z + 1;
else
x = x + 1;

La instrucción if...else de JScript lleva a cabo una acción (en este caso, z = z + 1) si el valor de x es 2000 y una acción
alternativa (x = x + 1) si el valor de x no es igual a 2000. Para obtener más información, vea
Estructuras condicionales de JScript.
El operador de igualdad estricta (===) realiza la conversión de tipos de datos numéricos únicamente. Esto significa que el
número entero 42 se considera idéntico al doble 42, pero ninguno es idéntico a la cadena "42". Este comportamiento se explica
en el siguiente código de JScript:

var a : int = 42;


var b : double = 42.00;
var c : String = "42";
print(a===b); // Displays "true".
print(a===c); // Displays "false".
print(b===c); // Displays "false".

Vea también
Conceptos
Datos booleanos
Conversión de tipos
Otros recursos
Paseo por el lenguaje JScript
Estructuras condicionales de JScript
JScript 8.0

Comentarios de JScript
Un comentario de una sola línea en JScript comienza con un par de barras (//).
Comentarios en código
A continuación se incluye un ejemplo de comentario de una sola línea, seguido de una línea de código:

// This is a single-line comment.


aGoodIdea = "Comment your code for clarity.";

Un comentario multilínea de JScript comienza con una barra seguida por un asterisco (/*) y termina con los mismos elementos
en orden inverso (*/).

/*
This is a multiline comment that explains the preceding code statement.
The statement assigns a value to the aGoodIdea variable. The value,
which is contained between the quote marks, is called a literal. A
literal explicitly and directly contains information; it does not
refer to the information indirectly. The quote marks are not part
of the literal.
*/

Si intenta incrustar un comentario de varias líneas en otro comentario del mismo tipo, JScript interpreta el comentario
resultante de forma imprevista. Los caracteres */ que marcan el final del comentario incrustado se interpretan como el final de
todo el comentario de varias líneas. Por tanto, el texto que va a continuación de un comentario de varias líneas se interpreta
como código JScript y puede generar errores de sintaxis.
En el ejemplo siguiente, la tercera línea de texto se interpreta como código ya que JScript interpreta los caracteres */ interiores
como el final del comentario exterior:

/* This is the outer-most comment


/* And this is the inner-most comment */
...Unfortunately, JScript will try to treat all of this as code. */

Es aconsejable escribir todos los comentarios como bloques de comentarios de una sola línea. Posteriormente, esto le
permitirá comentar extensos segmentos de código mediante un comentario de varias líneas:

// This is another multiline comment, written as a series of single-line comments.


// After the statement is executed, you can refer to the content of the aGoodIdea
// variable by using its name, as in the next statement, in which a string literal is
// appended to the aGoodIdea variable by concatenation to create a new variable.
var extendedIdea = aGoodIdea + " You never know when you'll have to figure out what it does
.";

De manera alternativa, puede utilizar la compilación condicional para comentar de un modo eficaz segmentos extensos de
código.
Vea también
Otros recursos
Referencia de JScript
Paseo por el lenguaje JScript
Compilación condicional
JScript 8.0

Expresiones de JScript
Una expresión de JScript es una combinación de palabras clave, operadores, variables y literales que devuelven un valor. Una
expresión puede llevar a cabo un cálculo, manipular datos, llamar a una función, probar datos o realizar otras operaciones.
Utilizar expresiones
Las expresiones más sencillas son los literales. A continuación se incluyen algunos ejemplos de expresiones con literales de
JScript: Para obtener más información, vea Datos de JScript.

3.9 // numeric literal


"Hello!" // string literal
false // Boolean literal
null // literal null value
[1,2,3] // Array literal
var o = {x:1, y:2} // Object literal
var f = function(x){return x*x;} // function literal

Las expresiones más complejas pueden incluir variables, llamadas a funciones y otras expresiones. Las expresiones pueden
combinarse para crear expresiones complejas mediante operadores. Estos son algunos ejemplos de la utilización de
operadores:

4 + 5 // additon
x += 1 // addition assignment
10 / 2 // division
a & b // bitwise AND

A continuación se incluyen algunos ejemplos de expresiones complejas de JScript:

radius = 10;
anExpression = 3 * (4 / 5) + 6;
aSecondExpression = Math.PI * radius * radius;
aThirdExpression = "Area is " + aSecondExpression + ".";
myArray = new Array("hello", Math.PI, 42);
myPi = myArray[1];

Vea también
Otros recursos
Referencia de JScript
Paseo por el lenguaje JScript
Operadores de JScript
Variables y constantes de JScript
JScript 8.0

Identificadores de JScript
En JScript, los identificadores se utilizan para:
nombrar variables, constantes, funciones, clases, interfaces y enumeraciones
proporcionar etiquetas para bucles (no se utilizan habitualmente).
Utilizar identificadores
JScript es un lenguaje que distingue entre mayúsculas y minúsculas, Por tanto, una variable denominada myCounter es distinta
de una variable denominada MyCounter. Los nombres de variable pueden tener cualquier longitud. Las reglas para crear
nombres de variable válidos son las siguientes:
El primer carácter debe ser una letra Unicode (en mayúsculas o minúsculas) o un carácter de subrayado (_). No puede
utilizarse un número como primer carácter.
Los siguientes caracteres deben ser letras, números o caracteres de subrayado.
El nombre de una variable no puede ser una palabra reservada.
A continuación se muestran algunos ejemplos de identificadores válidos:

_pagecount
Part9
Number_Items

A continuación se muestran algunos ejemplos de identificadores no válidos:

99Balloons // Cannot begin with a number.


Smith&Wesson // The ampersand (&) character is not a valid character for variable names.

A la hora de elegir identificadores también deben evitarse las palabras reservadas y las palabras que ya sean nombres de
objetos o funciones intrínsecas de JScript, como String o parseInt.
Vea también
Conceptos
Palabras reservadas de JScript (JScript)
Otros recursos
Variables y constantes de JScript
Funciones de JScript
Objetos de JScript
JScript 8.0

Instrucciones de JScript
Un programa de JScript es una colección de instrucciones. Una instrucción de JScript, que equivale a una frase completa en un
idioma natural, combina expresiones que realizan una tarea completa.
Usar instrucciones
Una instrucción se compone de una o varias expresiones, palabras claves u operadores (símbolos). Normalmente, una
instrucción se encuentra contenida en una sola línea, aunque es posible que en la misma línea aparezcan dos o más
instrucciones si van separadas por punto y coma. Además, la mayoría de las instrucciones pueden abarcar varias líneas. Las
excepciones son:
Los operadores de incremento y decremento postfijos deben aparecer en la misma línea que su argumento. Por ejemplo,
x++ y i--.

Las palabras clave continue y break deben aparecer en la misma línea que su etiqueta. Por ejemplo, continue label1 y
break label2.

Las palabras clave return y throw deben aparecer en la misma línea que su expresión. Por ejemplo, return (x+y) y
throw "Error 42".

Un atributo personalizado debe aparecer en la misma línea que la declaración que modifica, a menos que vaya precedido
de un modificador. Por ejemplo, myattribute class myClass.
Aunque no es necesario terminar las instrucciones de forma explícita al final de la línea, la mayoría de los ejemplos de JScript
proporcionados en esta documentación se terminan explícitamente para mayor claridad. Para ello se utiliza un punto y coma
(;), el carácter de terminación de instrucción de JScript. A continuación se incluyen dos ejemplos de instrucciones de JScript:

var aBird = "Robin"; // Assign the text "Robin" to the variable aBird.
var today = new Date(); // Assign today's date to the variable today.

El grupo de instrucciones de JScript rodeadas por llaves ({}) se denomina bloque. Por lo general, las instrucciones dentro de un
bloque pueden tratarse como una sola instrucción. Esto significa que los bloques pueden utilizarse en la mayor parte de los
lugares en los que JScript espera encontrar una instrucción. Las excepciones más notables a esta regla son los encabezados de
los bucles for y while. El siguiente ejemplo muestra un bucle for típico:

var i : int = 0;
var x : double = 2;
var a = new Array(4);
for (i = 0; i < 4; i++) {
x *= x;
a[i] = x;
}

Tenga en cuenta que cada instrucción incluida en un bloque finaliza con punto y coma, pero no así el bloque.
Por lo general, las funciones, condiciones y clases utilizan bloques. Observe que, a diferencia de C++ y la mayoría de los
lenguajes, JScript no considera un bloque como un ámbito nuevo; sólo las funciones, clases, inicializadores estáticos y bloques
catch crean ámbitos nuevos.
En el siguiente ejemplo, la primera instrucción inicia la definición de una función formada por una secuencia if...else de tres
instrucciones. A continuación de ese bloque hay una instrucción que no está incluida entre los corchetes del bloque de la
función. Por tanto, la última instrucción no forma parte de la definición de función.

function FeetToMiles(feet, cnvType) {


if (cnvType == "NM")
return( (feet / 6080) + " nautical miles");
else if (cnvType == "M")
return( (feet / 5280) + " statute miles");
else
return ("Invalid unit of measure");
}
var mradius = FeetToMiles(52800, "M");

Vea también
Referencia
class (Instrucción)
function (Instrucción)
if...else (Instrucción)
static (Instrucción)
Otros recursos
Referencia de JScript
Paseo por el lenguaje JScript
JScript 8.0

Tipos de datos de JScript


JScript proporciona 13 tipos de datos primitivos y 13 tipos de datos de referencia. Además, se pueden declarar tipos de datos
nuevos o utilizar los tipos de datos de .NET Framework compatibles con Common Language Specification (CLS). En esta
sección se incluye información sobre tipos de datos intrínsecos, cómo extender estos tipos, cómo definir sus propios tipos de
datos y cómo especificar y convertir datos de un tipo a otro.
En esta sección
Datos de JScript
Ofrece vínculos a temas que explican cómo escribir tipos de datos de matrices, booleanos, numéricos, de cadenas y de
objetos.
Resumen de tipos de datos
Incluye tablas de tipos de datos primitivos y de referencia en JScript, así como de las clases correspondientes en .NET
Framework.
Tipos de datos definidos por el usuario
Explica cómo utilizar la instrucción class para definir nuevos tipos de datos.
Matrices con tipo
Muestra cómo definir, inicializar y utilizar matrices con tipo.
Conversión de tipos
Explica el concepto de conversión de tipos y las diferencias entre conversión implícita y explícita.
Secciones relacionadas
Objetos de JScript
Proporciona una breve descripción de objetos y ofrece vínculos que explican cómo crear y utilizar objetos en JScript.
Tipos de datos
Ofrece vínculos a temas de referencia que explican los tipos de datos intrínsecos y las propiedades y métodos asociados.
JScript 8.0

Datos de JScript
Al igual que la mayoría de los lenguajes, JScript utiliza varios tipos de datos fundamentales. Entre ellos, los datos numéricos y
los datos de cadena. Las cadenas son bloques de texto. Existen varias maneras de especificar estos datos en un programa de
JScript. Generalmente, se especifican con expresiones literales.
En esta sección
Datos de matriz
Explica el concepto de matrices en JScript y cómo escribir datos de matrices utilizando literales en una secuencia de
comandos.
Datos booleanos
Explica el concepto de datos booleanos y cómo utilizar los dos valores literales en el código de JScript.
Datos numéricos
Describe la diferencia entre datos de punto flotante y datos enteros, y cómo escribir datos numéricos en una secuencia de
comandos.
Datos de cadena
Explica el concepto de datos de cadena, su sintaxis y el uso de caracteres de escape.
Datos de objeto
Describe el concepto de datos de objeto en JScript, su inicialización y utilización.
Secciones relacionadas
Tipos de datos de JScript
Contiene vínculos a temas que explican cómo utilizar los tipos de datos primitivos, los tipos de datos de referencia y los tipos
de datos de .NET Framework en JScript.
Tipos de datos
Ofrece vínculos a temas de referencia que explican los tipos de datos intrínsecos y las propiedades y métodos asociados.
JScript 8.0

Datos de matriz
Un literal de matriz puede inicializar una matriz en JScript. Un literal de matriz, que representa un objeto Array de JScript, se
especifica mediante una lista de elementos separados por comas y encerrados entre corchetes ([]). Los elementos de la lista
pueden ser expresiones de JScript válidas o pueden estar vacíos (dos comas seguidas). El número de índice del primer
elemento en la lista de la matriz es cero; y los siguientes elementos de la lista corresponden a los siguientes elementos de la
matriz. Un objeto Array de JScript es una matriz dispersa; si un elemento de la lista de literales de matriz está vacío, no se
inicializa el elemento correspondiente en el objeto Array de JScript.
Usar datos de matriz
En este ejemplo, se inicializa la variable arr como una matriz con tres elementos.

var arr = [1,2,3];

Se pueden utilizar los elementos vacíos de la lista de literales de Array para crear una matriz dispersa. Por ejemplo, el siguiente
literal de Array representa una matriz que define sólo los elementos 0 y 4.

var arr = [1,,,,5];

Un literal de matriz puede incluir datos de cualquier tipo, incluidas otras matrices. En la siguiente matriz de matrices, la
segunda submatriz contiene datos numéricos y de cadena.

var cats = [ ["Names", "Beansprout", "Pumpkin", "Max"], ["Ages", 6, 5, 4] ];

Como los objetos Array de JScript interactúan con matrices con tipo, los literales de matrices también pueden inicializar
matrices con tipo, aunque con algunas restricciones. Los datos del literal de la matriz se deben poder convertir al tipo de datos
de la matriz con tipo. Un literal de matriz no puede inicializar una matriz multidimensional con tipo, pero puede inicializar una
matriz de matrices con tipo. Cuando un literal de matriz inicializa una matriz con tipo, se produce un proceso que consta de
dos pasos. En primer lugar, se convierte el literal de matriz a una matriz con tipo, que se utiliza para inicializar la matriz con
tipo. Como parte de la conversión, los elementos vacíos del literal de matriz se interpretan, en primer lugar, como undefined y
después cada elemento del literal se convierte al tipo de datos correcto de la matriz con tipo. En el siguiente ejemplo, se utiliza
el mismo literal de matriz para inicializar una matriz JScript, una matriz de enteros y una matriz de tipo double.

var arr = [1,,3];


var arrI : int[] = [1,,3];
var arrD : double[] = [1,,3];
print(arr); // Displays 1,,3.
print(arrI); // Displays 1,0,3.
print(arrD); // Displays 1,NaN,3.

El elemento vacío del literal de matriz se representa con un 0 en la matriz de enteros y como NaN en la matriz de tipo double,
ya que undefined se asigna a esos valores.
Vea también
Referencia
Array (Objeto)
Conceptos
Expresiones de JScript
Conversión de tipos
Otros recursos
Datos de JScript
Tipos de datos (JScript)
Matrices de JScript
Objetos intrínsecos
JScript 8.0

Datos booleanos
Mientras que los tipos de datos de cadena y numéricos pueden tener un número prácticamente ilimitado de valores diferentes,
el tipo de datos booleano sólo puede tener dos: los literales true y false. Un valor booleano expresa la validez de una
condición pues indica si es verdadera o falsa.
Utilizar valores booleanos
Puede utilizar un valor booleano (true o false) como instrucción de condición en una estructura de control. Por ejemplo, se
puede crear un posible bucle potencialmente infinito utilizando true como condición para la instrucción while:

var s1 : String = "Sam W.";


var s2 : String = "";
while (true) {
if(s2.Length<s1.Length)
s2 = s2 + "*";
else
break;
}
print(s1); // Prints Sam W.
print(s2); // Prints ******

Observe que la condición para interrumpir un bucle infinito se puede desplazar al control del bucle, de este modo, se convierte
en un bucle explícitamente finito. Sin embargo, algunos bucles se pueden escribir con más facilidad utilizando la construcción
de bucle infinito.
El uso de un literal booleano en una instrucción if...else permite incluir fácilmente una instrucción o elegir entre instrucciones
en el programa. Esta técnica es útil para desarrollar programas. No obstante, es más eficaz incluir una instrucción directamente
(sin una instrucción if) o utilizar comentarios para evitar la inclusión de una instrucción.
Para obtener más información, vea Estructuras condicionales de JScript.
Vea también
Referencia
true (Literal)
false (Literal)
boolean (Tipo de datos de JScript)
Boolean (Objeto)
Conceptos
Expresiones de JScript
Otros recursos
Datos de JScript
Estructuras condicionales de JScript
JScript 8.0

Datos numéricos
La elección entre los dos tipos de datos numéricos de JScript, datos enteros y datos de punto flotante, depende de las
circunstancias específicas en las que se utilicen. Además, hay distintas formas de representar los datos enteros y los datos de
punto flotante literalmente.
Los números enteros positivos, los números enteros negativos y el cero son números enteros. Se pueden representar en base
10 (decimal), base 8 (octal) y base 16 (hexadecimal). La mayor parte de los números de JScript se escriben en decimal. Para
denotar enteros octales, antepóngales un 0 (cero). Sólo pueden contener dígitos del 0 al 7. Un número precedido por un 0 que
contiene los dígitos 8 o 9 se interpreta como un número decimal. El uso de números octales no suele ser recomendable.
Para indicar enteros hexadecimales (hex), antepóngales "0x" (cero y x o X). Sólo pueden contener dígitos del 0 al 9 y letras de la
A a la F (mayúsculas o minúsculas). Las letras de la A a la F representan, como dígitos individuales, los números del 10 al 15 en
base 10. Es decir, 0xF equivale a 15 y 0x10, a 16.
Los números octales y hexadecimales pueden ser negativos, pero no pueden contener una parte decimal ni escribirse en
notación científica (exponencial).
Los valores de punto flotante son números enteros con una parte decimal. Al igual que los enteros, se pueden representar
literalmente con dígitos seguidos del separador decimal y más dígitos. Además, pueden expresarse en notación científica. Es
decir, se utiliza una e en mayúsculas o minúsculas para representar "diez a la potencia de". Los números que comienzan con un
solo 0 y contienen un separador decimal se interpretan como un literal decimal de punto flotante y no como un literal octal.
Además, en JScript los números de punto flotante pueden representar valores numéricos especiales, algo que no pueden hacer
los tipos de datos integrales. Estos son:
NaN (Not a number, no es un número): se utiliza al realizar una operación matemática en datos inapropiados, como
cadenas o con el valor no definido.
Infinity: se utiliza cuando un número positivo es demasiado grande para representarlo en JScript.
-Infinity (infinito negativo): se utiliza cuando un número negativo es demasiado grande para representarlo en JScript.
Cero positivo y negativo: JScript distingue entre cero positivo y negativo en algunos casos.
A continuación se incluyen algunos ejemplos de números de JScript. Tenga en cuenta que un número que comience con "0x" y
contenga un separador decimal generará un error.
Número Descripción Equivalente
decimal
,0001, 0,0001 Cuatro números de punto flotante equivalentes. 0.0001
, 1e-4, 1,0e-4

3,45e2 Número en punto flotante. 345

42 Entero. 42

0378 Entero. Aunque parece un número octal (comienza con un cero), 8 no es un dígito octal válido, por 378
lo que el número se interpretará como un decimal. Esto genera una advertencia de nivel 1.

0377 Entero octal. Observe que aunque en apariencia se trata del número precedente al anterior, su val 255
or real es muy diferente.

0.0001, 00.00 Número de punto flotante. Aunque este número comienza con un cero, no es octal, ya que tiene u 0.0001
01 n separador decimal.

0Xff Entero hexadecimal. 255

0x37CF Entero hexadecimal. 14287


0x3e7 Entero hexadecimal. Observe que la e no se interpreta como exponenciación. 999

0x3,45e2 Esto es un error. Los números hexadecimales no pueden tener partes decimales. N/D (error de
l compilador)
Las variables de cualquier tipo de datos integral pueden representar únicamente un intervalo finito de números. Si intenta
asignar un literal numérico que sea demasiado grande o demasiado pequeño a un tipo de datos integral, se generará un error
de incoherencia de tipos en tiempo de compilación. Para obtener más información, vea Resumen de tipos de datos.
Tipos de datos de literales
En la mayoría de los casos, el tipo de datos que JScript interpreta como literales numéricos no tiene importancia. No obstante,
cuando los números son demasiado grandes o muy precisos, estos detalles son importantes.
En JScript, los literales enteros pueden representar datos del tipo int, long, ulong, decimal o double, en función del tamaño
de literal y de su utilización. Los literales del intervalo del tipo int (-2147483648 a 2147483647) se interpretan como tipo int.
Los literales que están fuera de ese intervalo pero dentro del intervalo del tipo long (-9223372036854775808 a
9223372036854775807) se interpretan como long. Los literales que están fuera de ese intervalo pero dentro del intervalo del
tipo ulong (9223372036854775807 a 18446744073709551615) se interpretan como ulong. El resto de los literales enteros
se interpretan como tipo double, lo cual supone una pérdida de precisión. La excepción a esta última regla se produce cuando
un literal se almacena inmediatamente en una variable o constante con tipo decimal, o si se pasa a una función que debe
recibir un tipo decimal, en estos casos se interpretará como un tipo decimal.
Un literal de punto de flotante se interpreta en JScript como el tipo de datos double, a no ser que el literal se utilice
inmediatamente como decimal (como ocurre con los literales enteros), en cuyo caso el literal se interpreta como un decimal.
El tipo de datos decimal no puede representar NaN, ni Infinity positivo o negativo.
Vea también
Referencia
NaN (Propiedad, Global)
Infinity (Propiedad)
Conceptos
Expresiones de JScript
Otros recursos
Datos de JScript
Tipos de datos (JScript)
JScript 8.0

Datos de objeto
Un literal de objeto puede inicializar un objeto Object de JScript. Un literal de objeto se representa mediante una lista de
elementos separados por comas y encerrados entre llaves ({}). Cada elemento de la lista es una propiedad seguida de dos
puntos y el valor de la propiedad. El valor puede ser cualquier expresión de JScript válida.
Usar datos de objeto
En este ejemplo, la variable obj se inicializa para ser un objeto con dos propiedades, x e y, con los valores 1 y 2,
respectivamente:

var obj = { x:1, y:2 };

Los literales de objeto pueden anidarse. En este ejemplo, el identificador cylinder hace referencia a un objeto con tres
propiedades: height, radius y sectionAreas. La propiedad sectionAreas es un objeto que tiene sus propias propiedades: top,
bottom y side.

var r = 3;
var h = 2;
var cylinder = { height : h, radius : r,
sectionAreas : { top : 4*Math.PI*r*r,
bottom : 4*Math.PI*r*r,
side : 2*Math.PI*r*h } };

Nota
No se puede utilizar un literal de objeto para inicializar una instancia de un objeto basado en clases. Se debe utilizar la funció
n constructora correcta para inicializar este objeto. Para obtener más información, vea Objetos basados en clases.

Vea también
Referencia
Object (Objeto)
Conceptos
Expresiones de JScript
Otros recursos
Datos de JScript
Objetos intrínsecos
JScript 8.0

Datos de cadena
Un valor de cadena está formado por una cadena de cero o más caracteres Unicode (letras, dígitos y signos de puntuación)
concatenados. Este tipo de datos de cadena se utiliza para representar texto en JScript. Para incluir literales de cadena en las
secuencias de comandos, enciérrelos entre pares de comillas sencillas o dobles. Pueden incluirse comillas dobles en cadenas
delimitadas por comillas simples y viceversa. A continuación se incluyen ejemplos de cadenas:
Usar datos de cadena
"The earth is round."
'"Come here, Watson. I need you." said Alexander.'
"42"
"15th"
'c'

JScript proporciona secuencias de escape que se pueden incluir en cadenas para crear caracteres que no es posible escribir
directamente. Cada una de estas secuencias comienza con una barra diagonal inversa. La barra inversa 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 escap Significado
e
\b Retroceso

\f Avance de página (casi nunca se utiliza)

\n Avance de línea (nueva línea)

\r Retorno de carro. Utilícelo con el salto de línea (\r\n) para dar formato al resultado.

\t Tabulación horizontal

\v Tabulación vertical. Incompatible con la norma de ECMAScript y con Microsoft Internet Explorer 6.0.

\' Comilla simple (')

\" Comilla doble (")

\\ Barra diagonal inversa (\)

\n Carácter ASCII representado por el número octal n. El valor de n debe estar en el intervalo 0 a 377 (octa
l).

\xhh Carácter ASCII representado por el número hexadecimal de dos dígitos hh

\uhhhh Carácter Unicode representado por el número hexadecimal de cuatro dígitos hhhh

Para las secuencias de escape que no estén en esta tabla simplemente se escribe el carácter a continuación de la barra diagonal
inversa en la secuencia de escape. Por ejemplo, "\a" se interpreta como "a".
Como la barra diagonal inversa se utiliza para representar el inicio de una secuencia de escape, no se puede utilizar
directamente en la secuencia de comandos. Si desea incluir una barra diagonal inversa debe escribirla dos veces seguidas (\\):

'The image path is C:\\webstuff\\mypage\\gifs\\garden.gif.'

Las secuencias de escape de comillas simples y dobles pueden utilizarse para incluir comillas en literales de cadena. En el
ejemplo siguiente se muestran las comillas incrustadas.
'The caption reads, \"After the snow of \'97. Grandma\'s house is covered.\"'

JScript utiliza el tipo de datos char intrínseco para representar un solo carácter. Una cadena que contenga un carácter o una
secuencia de escape se puede asignar a una variable de tipo char, aunque la cadena no sea de ese tipo.
Las cadenas que no contienen ningún carácter ("") se denominan cadenas vacías (de longitud cero).
Vea también
Referencia
String (Tipo de datos de JScript)
String (Objeto)
Conceptos
Expresiones de JScript
Otros recursos
Datos de JScript
JScript 8.0

Resumen de tipos de datos


JScript proporciona numerosos tipos de datos para utilizarlos en los programas. Estos tipos se pueden dividir en dos
categorías principales, tipos de datos de valor y tipos de datos de referencia (también denominados objetos de JScript). Para
agregar tipos a JScript, puede importar espacios de nombres o paquetes que contengan tipos de datos nuevos; o bien definir
clases nuevas que se puedan utilizar como tipos de datos nuevos.
Detalles de los tipos de datos
La tabla siguiente muestra los tipos de datos de valor de JScript. En la segunda columna se describe el tipo de datos
equivalente en Microsoft .NET Framework. Se puede declarar una variable del tipo de .NET Framework o del tipo de valor de
JScript y conseguir exactamente los mismos resultados. También se proporcionan el tamaño de almacenamiento (si se precisa)
y el intervalo para cada tipo. La tercera columna proporciona la cantidad de almacenamiento necesaria para una instancia de
un tipo dado, si procede. La cuarta columna muestra el intervalo de valores que puede almacenar un tipo dado.
Tipo de valor de JScript Tipo de .NE Tamaño de al Intervalo
T Framewor macenamient
k o
boolean Boolean No disponible. true o false

char Char 2 bytes Cualquier carácter Unicode

float (punto flotante de pr Single 4 bytes El intervalo aproximado es -1038 a 1038, con una precisión de unos 7
ecisión simple) dígitos. Puede representar números tan pequeños como 10-44.

Number, double (punto fl Double 8 bytes El intervalo aproximado es -10308 a 10308, con una precisión de uno
otante de precisión doble s 15 dígitos. Puede representar números tan pequeños como 10-323.
)

decimal Decimal 12 bytes (parte El intervalo aproximado es -1028 a 1028, con una precisión de unos 2
entera) 8 dígitos. Puede representar números tan pequeños como 10-28.

byte (sin signo) Byte 1 byte 0 a 255

ushort (entero corto sin si UInt16 2 bytes 0 a 65.535


gno)

uint (entero sin signo) UInt32 4 bytes 0 a 4.294.967.295

ulong (entero ampliado si UInt64 8 bytes 0 a aproximadamente 1020


n signo)

sbyte (con signo) SByte 1 byte -128 a 127

short (entero corto con si Int16 2 bytes -32.768 a 32.767


gno)

int (entero con signo) Int32 4 bytes -2.147.483.648 a 2.147.483.647

long (entero ampliado co Int64 8 bytes Aproximadamente -1019 a 1019


n signo)

void No disponibl No disponible. Se utiliza como el tipo de valor devuelto para una función que no dev
e. uelve un valor.

La tabla siguiente muestra los tipos de datos de referencia (objetos de JScript) que proporciona JScript y que se pueden utilizar
como tipos. Los tipos de referencia no tienen un tamaño de almacenamiento predefinido.
Tipo de referencia Tipo de .NET Fram Hace referencia a
de JScript ework
ActiveXObject Sin equivalente dire Un objeto de automatización
cto

Array Interopera con Matrices de cualquier tipo


Array y matrices co
n tipo

Boolean Interopera con Boo Un valor booleano (true o false)


lean

Date Interopera con Las fechas se implementan utilizando el objeto Date de JScript. El intervalo es, apro
DateTime ximadamente, 285.616 años antes o después del 1 de enero de 1970.

Enumerator Sin equivalente dire Enumeración de los elementos de una colección Sólo para ofrecer compatibilidad c
cto on otras versiones anteriores.

Error Sin equivalente dire Un objeto Error


cto

Function Sin equivalente dire Un objeto Function.


cto

Number Interopera con Dou Un valor numérico, con un intervalo aproximado de -10308 a 10308 y con una prec
ble isión de unos 15 dígitos. Puede representar números tan pequeños como 10-323.

Object Interopera con Una referencia Object


Object

RegExp Interopera con Un objeto Regular Expression


Regex

String (Tipo de datos) String De 0 a 2.000 millones de caracteres Unicode aprox. Cada carácter ocupa 16 bits (do
(longitud variable) s bytes).

String (Objeto) (longi Interopera con Stri De 0 a 2.000 millones de caracteres Unicode aprox. Cada carácter ocupa 16 bits (do
tud variable) ng s bytes).

VBArray Sin equivalente dire Una Matriz de sólo lectura de Visual Basic Sólo para ofrecer compatibilidad con otra
cto s versiones anteriores.

Vea también
Referencia
import (Instrucción)
package (Instrucción)
class (Instrucción)
Conceptos
Tipos de datos definidos por el usuario
Copiar, pasar y comparar datos
Otros recursos
Tipos de datos (JScript)
Objetos de JScript
Objetos de JScript
JScript 8.0

Tipos de datos definidos por el usuario


En ocasiones es necesario emplear un tipo de datos no suministrado por JScript. En dicho caso, puede importarse un paquete
que defina una clase nueva o bien crearse un tipo de datos propio mediante la instrucción class. Las clases se pueden utilizar
para anotaciones de tipos y para crear matrices con tipo exactamente igual a como se utilizan los tipos de datos predefinidos
en JScript.
Definir un tipo de datos
En el siguiente ejemplo se utiliza la instrucción class para definir un tipo de datos nuevo myIntVector. El nuevo tipo se utiliza
en la declaración de una función para denotar el tipo de parámetro de la función. También se anota el tipo de una variable con
el nuevo tipo:

// Define a class that stores a vector in the x-y plane.


class myIntVector {
var x : int;
var y : int;
function myIntVector(xIn : int, yIn : int) {
x = xIn;
y = yIn;
}
}

// Define a function to compute the magnitude of the vector.


// Passing the parameter as a user defined data type.
function magnitude(xy : myIntVector) : double {
return( Math.sqrt( xy.x*xy.x + xy.y*xy.y ) );
}

// Declare a variable of the user defined data type.


var point : myIntVector = new myIntVector(3,4);
print(magnitude(point));

El resultado de este código es:

Vea también
Referencia
class (Instrucción)
package (Instrucción)
Conceptos
Anotaciones de tipo
Otros recursos
Tipos de datos (JScript)
Objetos de JScript
JScript 8.0

Matrices con tipo


Una matriz con tipo es un tipo de datos que puede anotar variables, constantes, funciones y parámetros como si fuese un tipo
de datos intrínseco. Las matrices con tipo tienen un tipo de datos base, y cada elemento de esas matrices tiene el tipo base. El
tipo base puede ser un tipo de matriz en sí, permitiendo matrices de matrices.
Utilizar matrices con tipo
Un tipo de datos seguido de un conjunto de corchetes define una matriz unidimensional con tipo. Para definir una matriz de n
dimensiones, se incluye el tipo de datos base seguido de un conjunto de corchetes con n-1 comas entre los corchetes.
Inicialmente, no se asigna ningún almacenamiento para una variable de un tipo de matriz con tipo y el valor inicial es
undefined. Para inicializar una variable de matriz, utilice el operador new, un literal de matriz, un constructor de matriz u otra
matriz. La inicialización puede tener lugar cuando se declara la variable de matriz con tipo o más adelante, igual que ocurre con
las variables de otros tipos. Si las dimensiones de una variable o parámetro no coinciden con las dimensiones (o tipo) de la
matriz asignada a la variable o pasada al parámetro, se producirá un error de no coincidencia de tipos.
Se puede utilizar un constructor de matrices para crear una matriz del tipo nativo dado con el tamaño especificado (fijo). Cada
argumento debe ser una expresión que dé lugar a un número entero no negativo. El valor de cada argumento determina el
tamaño de cada dimensión de la matriz; el número de argumentos determina las dimensiones de la matriz.
El siguiente código muestra algunas declaraciones sencillas de matriz:

// Simple array of strings; initially empty. The variable 'names' itself


// will be null until something is assigned to it
var names : String[];

// Create an array of 50 objects; the variable 'things' won't be null,


// but each element of the array will be until they are assigned values.
var things : Object[] = new Object[50];
// Put the current date and time in element 42.
things[42] = new Date();

// An array of arrays of integers; initially it is null.


var matrix : int[][];
// Initialize the array of arrays.
matrix = new (int[])[5];
// Initialize each array in the array of arrays.
for(var i = 0; i<5; i++)
matrix[i] = new int[5];
// Put some values into the matrix.
matrix[2][3] = 6;
matrix[2][4] = 7;

// A three-dimensional array
var multidim : double[,,] = new double[5,4,3];
// Put some values into the matrix.
multidim[1,3,0] = Math.PI*5.;

Vea también
Referencia
var (Instrucción)
new (Operador)
function (Instrucción)
Conceptos
Anotaciones de tipo
Otros recursos
Tipos de datos (JScript)
JScript 8.0

Conversión de tipos
La conversión de tipos es el proceso de cambiar un valor de un tipo a otro. Por ejemplo, la cadena "1234" se puede convertir a
un número. Además, se puede convertir cualquier tipo de datos al tipo String. Algunas conversiones de tipo no funcionan
nunca. Por ejemplo, un objeto Date no se puede convertir a un objeto ActiveXObject.
Las conversiones de tipo pueden ser de ampliación o de restricción: las conversiones de ampliación nunca producen
desbordamiento y siempre son correctas, mientras que las conversiones de restricción suponen una posible pérdida de
información y pueden producir errores.
Ambos tipos de conversión pueden ser explícitas (utilizando el identificador del tipo de datos) o implícitas (sin el identificador
del tipo de datos). Las conversiones explícitas siempre funcionan correctamente, incluso cuando se produce una pérdida de
información. Las conversiones implícitas son correctas sólo cuando no hay pérdida de datos en el proceso; en caso contrario
fallan y generan un error de compilación o un error en tiempo de ejecución.
Las conversiones con pérdida de información tienen lugar cuando el tipo de datos original no tiene un análogo obvio en el tipo
de destino de la conversión. Por ejemplo, la cadena "Pedro" no se puede convertir en un número. En estos casos, se devuelve
un valor predeterminado de la función de conversión de tipo. Para el tipo Number, el valor predeterminado es NaN; para el
tipo int, el valor predeterminado es el número cero.
Algunos tipos de conversiones, como de una cadena a un número, tardan bastante tiempo. Cuantas menos conversiones utilice
el programa, más eficaz será.
Conversiones implícitas
La mayoría de las conversiones, como la asignación de un valor a una variable, se producen automáticamente. El tipo de datos
de la variable determina el tipo de datos de destino de la conversión de expresión.
En el ejemplo siguiente se muestra una conversión de datos implícita entre un valor int, un valor String y un valor double.

var i : int;
var d : double;
var s : String;
i = 5;
s = i; // Widening: the int value 5 coverted to the String "5".
d = i; // Widening: the int value 5 coverted to the double 5.
s = d; // Widening: the double value 5 coverted to the String "5".
i = d; // Narrowing: the double value 5 coverted to the int 5.
i = s; // Narrowing: the String value "5" coverted to the int 5.
d = s; // Narrowing: the String value "5" coverted to the double 5.

Cuando se compila este código, pueden aparecer advertencias en tiempo de compilación para informar de que las
conversiones de restricción pueden producir errores o ser muy lentas.
Puede ocurrir que las conversiones de restricción implícitas no funcionen si la conversión requiere una pérdida de información.
Por ejemplo, las siguientes líneas no funcionarán:

var i : int;
var f : float;
var s : String;
f = 3.14;
i = f; // Run-time error. The number 3.14 cannot be represented with an int.
s = "apple";
i = s; // Run-time error. The string "apple" cannot be converted to an int.

Conversiones explícitas
Para convertir explícitamente una expresión a un tipo de datos concreto, utilice el identificador de tipo de datos seguido de la
expresión que se va a convertir entre paréntesis. Las conversiones explícitas requieren más escritura que las implícitas, pero
proporcionan más seguridad con respecto a los resultados. Además, las conversiones explícitas pueden controlar conversiones
con pérdida de información.
En el ejemplo siguiente se muestra una conversión de datos explícita entre un valor int , un valor String y un valor double.
var i : int;
var d : double;
var s : String;
i = 5;
s = String(i); // Widening: the int value 5 coverted to the String "5".
d = double(i); // Widening: the int value 5 coverted to the double 5.
s = String(d); // Widening: the double value 5 coverted to the String "5".
i = int(d); // Narrowing: the double value 5 coverted to the int 5.
i = int(s); // Narrowing: the String value "5" coverted to the int 5.
d = double(s); // Narrowing: the String value "5" coverted to the double 5.

Las conversiones de restricción explícitas suelen funcionar correctamente, aunque la conversión requiera una pérdida de
información. La conversión explícita no se puede utilizar para convertir tipos de datos incompatibles. Por ejemplo, no se
pueden convertir datos Date a datos RegExp, y viceversa. Además, algunos valores no se pueden convertir porque no existe
ningún valor razonable al que se puedan convertir. Por ejemplo, se genera un error si se intenta convertir explícitamente el
valor NaN de tipo double a un valor decimal. Esto es así porque no hay un valor decimal natural que se pueda identificar con
NaN.
En este ejemplo, se convierte un número que tiene una parte decimal y una cadena en números enteros:

var i : int;
var d : double;
var s : String;
d = 3.14;
i = int(d);
print(i);
s = "apple";
i = int(s);
print(i);

El resultado es:

3
0

El comportamiento de la conversión explícita depende del tipo de datos originales y del tipo de datos de destino.
Vea también
Referencia
undefined (Propiedad)
Conceptos
Anotaciones de tipo
Otros recursos
Tipos de datos de JScript
JScript 8.0

Variables y constantes de JScript


En todos los lenguajes de programación, los datos representan información. Por ejemplo, el siguiente literal de cadena
contiene una pregunta:

'How old am I?'

Las variables y las constantes almacenan datos a los que se pueden hacer referencia fácilmente en las secuencias de comandos
mediante el nombre de la variable o constante. Los datos almacenados en una variable pueden cambiar a medida que se
ejecuta un programa, mientras que los datos almacenados en una constante no se pueden cambiar. Una secuencia de
comandos que utiliza una variable, en realidad, tiene acceso a los datos que representa la variable. A continuación, se muestra
un ejemplo donde a la variable denominada NumberOfDaysLeft se le asigna el valor derivado de la diferencia entre EndDate y
TodaysDate.

NumberOfDaysLeft = EndDate – TodaysDate;

En un sentido mecánico, las variables se utilizan para almacenar, recuperar y manipular todos los valores que aparecen en las
secuencias de comandos. Las constantes hacen referencia a datos que no cambian. Cree siempre nombres de variables
descriptivos, pues así podrá recordar fácilmente su finalidad y ayudará a otros usuarios a determinar la funcionalidad de la
secuencia de comandos.
En esta sección
Tipos de variables y constantes de JScript
Explica cómo elegir el tipo de datos correcto para una variable y las ventajas de seleccionar el tipo de datos de variable
adecuado.
Declarar variables y constantes en JScript
Explica cómo declarar e inicializar variables y constantes con tipo y sin tipo.
Ámbito de variables y constantes
Muestra la diferencia entre ámbitos globales y ámbitos locales en JScript y cómo el ámbito local prevalece sobre el ámbito
global.
Valores no definidos
Explica el concepto de valores no definidos, cómo determinar si no se ha definido el valor de una variable o propiedad, y
cómo anular la definición de variables y propiedades.
Secciones relacionadas
Identificadores de JScript
Explica cómo crear nombres de identificadores válidos en JScript.
Tipos de datos de JScript
Contiene vínculos a temas que explican cómo utilizar los tipos de datos primitivos, los tipos de datos de referencia y los tipos
de datos de .NET Framework en JScript.
Asignaciones e igualdad en JScript
Explica cómo se asignan en JScript valores a variables, elementos de matrices y elementos de propiedades, así como la
sintaxis de igualdad utilizada.
Referencia de JScript
Enumera los elementos que componen la Referencia del lenguaje de JScript y vínculos a temas que explican en detalle el uso
apropiado de los elementos del lenguaje.
JScript 8.0

Tipos de variables y constantes de JScript


JScript cuenta con varios tipos de datos que pueden resultar útiles a la hora de escribir código. Si los tipos de datos se utilizan
eficazmente, los programas se cargan y se ejecutan con mayor rapidez que con el tipo de datos predeterminado de JScript.
Además, el compilador puede proporcionar mensajes de error y advertencias de gran valor sobre el mal uso de los distintos
tipos.
Explicación
Si, por ejemplo, en una variable se va a almacenar siempre un entero cuyo valor nunca va a estar por encima de 1.000.000, no
tiene sentido utilizar un tipo double de 8 bytes. En su lugar, el tipo más eficaz para estos datos es int, que es un entero de 4
bytes en el que se pueden almacenar valores de datos desde –2.147.483.648 a 2.147.483.647.
La declaración de una variable o constante con anotaciones de tipo garantiza que la variable o constante almacena sólo datos
del tipo correcto. JScript tiene otros tipos de datos para anotaciones de tipo. Para obtener más información, vea
Resumen de tipos de datos. En JScript se pueden agregar tipos importando un ensamblado que contenga tipos o declarando
tipos definidos por el usuario (clases).
Vea también
Conceptos
Declarar variables y constantes en JScript
Otros recursos
Variables y constantes de JScript
Tipos de datos de JScript
JScript 8.0

Declarar variables y constantes en JScript


Un programa de JScript debe especificar el nombre de cada variable que utilizará el programa. Además, el programa puede
especificar el tipo de datos que almacenará cada variable. Estas dos tareas se realizan con la instrucción var.
Declarar variables y constantes con tipo
En JScript, se puede declarar una variable y su tipo simultáneamente utilizando anotaciones de tipo. En el siguiente ejemplo, se
declara la variable count para que sea de tipo int (entero). Como no se proporciona el valor inicial, count tiene el valor
predeterminado de int, que es 0 (cero).

var count : int; // An integer variable.

También se puede asignar un valor inicial a la variable:

var count : int = 1; // An initialized integer variable.

Las constantes, que se declaran de forma parecida a las variables, se deben inicializar. Una vez definido el valor de una
constante, no se puede cambiar su valor. Por ejemplo:

const daysInWeek : int = 7; // An integer constant.


const favoriteDay : String = "Friday"; // A string constant.
const maxDaysInMonth : int = 31, maxMonthsInYear : int = 12

Naturalmente, cuando se declara una variable de un tipo específico, el valor asignado debe tener sentido para ese tipo. Por
ejemplo, no tiene sentido asignar un valor de cadena de caracteres a una variable de entero. Si se asigna, el programa produce
una excepción TypeError, que indica que existe una incoherencia de tipo en el código. Un TypeError es un tipo de excepción
que tiene lugar en una secuencia de comandos en ejecución. Un bloque catch puede capturar las excepciones producidas en un
programa de JScript. Para obtener más información, vea try...catch...finally (Instrucción).
Se puede declarar simultáneamente el tipo y el valor inicial de múltiples variables, aunque la lectura de código es más fácil
cuando cada declaración está en una línea. Por ejemplo, la lectura del siguiente segmento de código es complicada:

var count : int = 1; amount : int = 12, level : double = 5346.9009

La lectura del siguiente segmento de código es más fácil:

var count : int = 1;


var amount : int = 12;
var level : double = 5346.9009;

Algo más que se debe tener en cuenta al declarar varias variables en una única línea es que un tipo de anotación se aplica a la
variable que lo precede. En el siguiente código, x es de tipo Object porque es el valor predeterminado y x no especifica un tipo,
mientras que y es de tipo int.

var x, y : int;

Declarar variables y constantes sin tipo


No es necesario utilizar variables con tipo, aunque los programas que utilizan variables sin tipo son más lentos y con mayores
posibilidades de error.
A continuación, se muestra un ejemplo sencillo de declaración de una sola variable denominada count:

var count; // Declare a single declaration.

Si no se especifica un tipo de datos, el tipo predeterminado de la variable o constante será Object. Si no se asigna ningún
valor, el valor predeterminado de la variable será undefined. En el siguiente código se muestran los valores predeterminados
para un programa de línea de comandos:

var count; // Declare a single declaration using default type and value.
print(count); //Print the value of count.
print(typeof(count)); // Prints undefined.

Puede incluir un valor inicial sin declarar su tipo:

var count = 1; // An initialized variable.

En el siguiente ejemplo se declaran varias variables con una sola instrucción var:

var count, amount, level; // multiple declarations with a single var keyword.

Para declarar una variable e inicializarla sin asignar un valor en particular, asígnele el valor null de JScript. A continuación se
muestra un ejemplo.

var bestAge = null;

Una variable declarada a la que no se le asigna un valor existe, aunque con el valor undefined de JScript. A continuación se
muestra un ejemplo.

var currentCount;
var finalCount = 1 * currentCount; // finalCount has the value NaN since currentCount is un
defined.

En JScript, la diferencia principal entre null y undefined es que null se convierte a cero (aunque no es cero), mientras que
undefined se convierte al valor especial NaN (acrónimo de "Not A Number", "no es un número"). Paradójicamente, cuando se
comparan, los valores null y undefined siempre se consideran iguales cuando se utiliza el operador de igualdad (==).
El proceso de declaración de constantes sin tipo es similar al de las variables, aunque se debe proporcionar un valor inicial para
las constantes sin tipo. Por ejemplo:

const daysInWeek = 7;
const favoriteDay = "Friday";
const maxDaysInMonth = 31, maxMonthsInYear = 12

Declarar variables sin var


Se puede definir una variable y asignarle un valor sin utilizar la palabra clave var en la declaración. Esto es lo que se denomina
una declaración implícita y no es recomendable. Una declaración implícita crea una propiedad del objeto global con el nombre
asignado; la propiedad se comporta como una variable con visibilidad de ámbito global. Sin embargo, cuando se declara una
variable en un procedimiento, no es conveniente que sea visible en el ámbito global. En este caso, se debe utilizar la palabra
clave var en la declaración de variables.

noStringAtAll = ""; // The variable noStringAtAll is declared implicitly.

No se puede utilizar una variable que nunca se haya declarado:

var volume = length * width; // Error - length and width do not yet exist.

Nota
La declaración de variables sin la palabra clave var genera un error en tiempo de compilación cuando se ejecuta en modo rá
pido, el modo predeterminado de JScript. Para compilar un programa desde la línea de comandos que no utilice la palabra cl
ave var, debe desactivar la opción fast utilizando /fast-. Por posibles problemas de subprocesamiento, no resulta seguro des
activar la opción fast en ASP.NET.
Vea también
Tareas
Cómo: Compilar código JScript en la línea de comandos
Conceptos
Identificadores de JScript
Otros recursos
Variables y constantes de JScript
Tipos de datos de JScript
JScript 8.0

Ámbito de variables y constantes


JScript tiene tres ámbitos: global, local y clase. Si se declara una variable o una constante fuera de la definición de una función
o clase, la variable será global y su valor, accesible y modificable desde el programa. Si se declara dentro de la definición de
una función, será local y se creará y se destruirá cada vez que se ejecute la función, por lo que no se podrá tener acceso a ella
fuera de la función. Si declara una variable dentro de una definición de clase, la variable estará disponible dentro de la clase y
no será accesible directamente en el ámbito global. Para obtener más información, vea Objetos basados en clases.
Explicación
Los lenguajes como C++ también tienen "ámbito de bloque"; cualquier conjunto de llaves ({}) define un ámbito nuevo. JScript
no admite ámbitos de bloque.
Una variable local puede tener el mismo nombre que una variable global, pero es totalmente distinta e independiente. En
consecuencia, si se cambia el valor de una variable no se producirá ningún efecto sobre la otra. Dentro de la función en la que
se declara la variable local sólo tiene significado la versión local. Esto se conoce como visibilidad.

// Define two global variables.


var name : String = "Frank";
var age : int = "34";

function georgeNameAge() {
var name : String; // Define a local variable.
name = "George"; // Modify the local variable.
age = 42; // Modify the global variable.
print(name + " is " + age + " years old.");
}

print(name + " is " + age + " years old.");


georgeNameAge();
print(name + " is " + age + " years old.");

El resultado de este programa muestra una variable local que se puede modificar sin cambiar el valor de la variable global. Si
la variable global se cambia desde dentro de la función afecta al valor en el ámbito global.

Frank is 34 years old.


George is 42 years old.
Frank is 42 years old.

JScript procesa las declaraciones de variables y constantes antes de ejecutar cualquier código, por lo que es irrelevante que la
declaración se encuentre dentro de un bloque condicional o de alguna otra construcción. Una vez que JScript encuentra todas
las variables y constantes, ejecuta el código en la función. Esto significa que el valor de una constante local no se define hasta
que se alcanza la instrucción de declaración de la constante; y que una variable local no se define hasta que se asigna la
variable en la función.
Por este motivo en ocasiones se producen resultados inesperados. Considere el programa siguiente:

var aNumber = 100;


var anotherNumber = 200;
function tweak() {
var s = "aNumber is " + aNumber + " and ";
s += "anotherNumber is " + anotherNumber + "\n";
return s;
if (false) {
var aNumber; // This statement is never executed.
aNumber = 123; // This statement is never executed.
const anotherNumber = 42; // This statement is never executed.
} // End of the conditional.
} // End of the function definition.

print(tweak());
El resultado de este programa es:

aNumber is undefined and anotherNumber is undefined

Podría pensarse que aNumber puede ser 100 o 123 y que anotherNumber puede ser 200 o 42, pero los dos valores son del tipo
undefined. Como aNumber y anotherNumber se han definido con ámbito local, prevalecen sobre la variable o constante global
del mismo nombre. Puesto que el código que inicializa la variable o constante global no se ejecuta nunca, sus valores son del
tipo undefined.
La declaración de variable explícita es obligatoria en modo rápido. Si se desactiva el modo rápido, se requiere la declaración de
variable implícita. Una variable declarada implícitamente dentro de una función (es decir, la que aparece en el lado izquierdo
de una expresión de asignación sin la palabra clave var) es una variable global.
Vea también
Conceptos
Valores no definidos
Otros recursos
Variables y constantes de JScript
JScript 8.0

Valores no definidos
En JScript, puede declarar una variable sin asignarle un valor. Una variable con anotaciones de tipo asume el valor
predeterminado para ese tipo. Por ejemplo, el valor predeterminado de un tipo numérico es cero, y el valor predeterminado de
un tipo de datos String es una cadena vacía. No obstante, una variable sin un tipo de datos especificado tiene un valor inicial
undefined y un tipo de datos undefined. Del mismo modo, el código que tiene acceso a una propiedad de objeto expando o
a un elemento de matriz que no existe devuelve un valor undefined.
Usar valores no definidos
Para determinar si una variable o propiedad de objeto existe, compárela con la palabra clave undefined (esto funcionará sólo
con una propiedad o variable declarada), o compruebe si su tipo es "undefined" (esto funcionará hasta con una propiedad o
variable no declarada). En el siguiente código de ejemplo se supone que el programador está intentando probar si la variable x
se ha declarado:

// One method to test if an identifier (x) is undefined.


// This will always work, even if x has not been declared.
if (typeof(x) == "undefined"){
// Do something.
}
// Another method to test if an identifier (x) is undefined.
// This gives a compile-time error if x is not declared.
if (x == undefined){
// Do something.
}

Otra forma de comprobar si una propiedad de objeto o variable es undefined es compararla con el valor null. Una variable
que contiene null no contiene "ningún valor" ni "ningún objeto". En otras palabras, no incluye ningún número, cadena, tipo
booleano, matriz u objeto válido. Para borrar el contenido de una variable (sin eliminar la variable), asígnele el valor null.
Tenga en cuenta que undefined y null se consideran iguales si se utiliza el operador de igualdad (==).
Nota
En JScript, null no se considera igual a 0 cuando se compara con el operador de igualdad. Este comportamiento es distinto d
e otros lenguajes, como C y C++.

En este ejemplo, se prueba el objeto obj para ver si tiene la propiedad prop.

// A third method to test if an identifier (obj.prop) is undefined.


if (obj.prop == null){
// Do something.
}

Esta comparación será true


si la propiedad obj.prop contiene el valor null
si la propiedad obj.prop no existe
Hay otra forma de comprobar si la propiedad de un objeto existe. El operador in devuelve true si la propiedad especificada
existe en el objeto proporcionado. Por ejemplo, en el siguiente código se prueba true si la propiedad prop existe en el objeto
obj.

if ("prop" in someObject)
// someObject has the property 'prop'

Para quitar una propiedad de un objeto, utilice el operador delete.


Vea también
Referencia
null (Literal)
undefined (Propiedad)
in (Operador)
delete (Operador)
Otros recursos
Variables y constantes de JScript
Datos de JScript
Tipos de datos de JScript
Tipos de datos (JScript)
JScript 8.0

Objetos de JScript
Un objeto de JScript es una encapsulación de datos y funcionalidad. Los objetos se componen de propiedades (valores) y
métodos (funciones). Las propiedades son el componente de datos del objeto, mientras que los métodos proporcionan la
funcionalidad para manipular los datos o el objeto. JScript admite cinco tipos de objeto: objetos intrínsecos, objetos basados en
prototipos, objetos basados en clases, objetos host (proporcionados por un host, como Response en ASP.NET) y clases de .NET
Framework (componentes externos).
El operador new, junto con la función constructora del objeto seleccionado, crea e inicializa una instancia de un objeto. A
continuación figuran algunos ejemplos en los que se utilizan constructores.

var myObject = new Object(); // Creates a generic object.


var birthday = new Date(1961, 5, 10); // Creates a Date object.
var myCar : Car = new Car("Pinto"); // Creates a user-defined object.

JScript admite dos tipos de objetos definidos por el usuario: basados en clases y basados en prototipos. Los dos tipos tienen
ventajas e inconvenientes. Los objetos basados en prototipos se pueden extender dinámicamente, pero son lentos y no
interactúan eficazmente con objetos de otros lenguajes de .NET Framework. Los objetos basados en clases, por su parte,
pueden extender las clases existentes de .NET Framework, ayudan a proporcionar seguridad de tipos y ayudan a garantizar un
funcionamiento eficaz. Los objetos basados en clases se pueden extender dinámicamente, al igual que los basados en
prototipos, si se define la clase con el modificador expando.
En esta sección
Objetos intrínsecos
Muestra algunos de los objetos comunes que se utilizan en secuencias de comandos de JScript, así como vínculos a
información sobre cómo utilizarlos.
Objetos basados en clases
Proporciona una guía de uso del modelo de objetos basados en clases de JScript y describe cómo definir clases (con
métodos, campos y propiedades), cómo definir una clase que hereda de otra y cómo definir clases expando.
Objetos basados en prototipos
Proporciona una guía de uso del modelo de objetos basados en prototipos de JScript, y vínculos a información que describe
las funciones personalizadas del constructor y la herencia de los objetos basados en prototipos.
Secciones relacionadas
Tipos de datos de JScript
Contiene vínculos a temas que explican cómo utilizar los tipos de datos primitivos, los tipos de datos de referencia y los tipos
de datos de .NET Framework en JScript.
Referencia de JScript
Enumera los elementos que comprende la Referencia del lenguaje JScript e incluye vínculos a temas que explican con más
detalle el uso correcto de los elementos del lenguaje.
Introducción a ASP.NET
Presenta ASP.NET, explica cómo se puede utilizar con cualquier lenguaje compatible con .NET, incluido JScript, para crear
aplicaciones Web empresariales e incluye vínculos a información de referencia.
Introducción a la biblioteca de clases de .NET Framework
Presenta la biblioteca de clases de .NET Framework, explica las convenciones de nomenclatura y los espacios de nombres del
sistema, y ofrece vínculos a información de referencia.
JScript 8.0

Objetos intrínsecos
JScript proporciona 16 objetos intrínsecos como parte de la especificación del lenguaje. Cada uno de ellos tiene métodos y
propiedades asociados que se describen con detalle en la referencia del lenguaje. En esta sección se explican varios objetos de
uso frecuente para mostrar la sintaxis básica y el uso de los objetos intrínsecos.
En esta sección
Array (Objeto de JScript)
Describe cómo se utilizan los objetos Array, cómo se aprovechan sus propiedades expando y cómo se comparan estos
objetos con las matrices con tipo.
Date (Objeto de JScript)
Describe el intervalo de fechas válidas y cómo crear un objeto con la fecha y hora actuales o con una fecha y hora arbitrarias.
Math (Objeto de JScript)
Muestra cómo se usan los métodos y propiedades para manipular los datos numéricos.
Number (Objeto de JScript)
Explica la finalidad del objeto Number y el significado de sus propiedades.
Object (Objeto de JScript)
Describe cómo se agregan propiedades expando y métodos a los objetos y explica la diferencia entre la utilización del
operador punto y el operador índice para tener acceso a los miembros de objetos.
String (Objeto de JScript)
Explica la finalidad del objeto String, así como el uso que pueden hacer los literales de cadena de los métodos del objeto
String.
Secciones relacionadas
Objetos de JScript
Contiene vínculos a temas que explican la sintaxis y el uso de los objetos intrínsecos de JScript.
Referencia de JScript
Enumera los elementos que comprende la Referencia del lenguaje JScript e incluye vínculos a temas que explican con más
detalle el uso correcto de los elementos del lenguaje.
Objetos
Muestra todos los objetos que proporciona el lenguaje JScript y contiene vínculos a información de referencia del lenguaje
que explica la sintaxis y el uso correctos de cada objeto.
JScript 8.0

Array (Objeto de JScript)


Un objeto Array es una variable que agrupa datos relacionados. Un número único, denominado índice o subíndice, hace
referencia a cada uno de los datos de la matriz. Para tener acceso a los datos guardados en la matriz, se combinan el
identificador de la matriz y el índice con el operador índice "[]", por ejemplo, theMonths[0].
Crear una matriz
Para crear una nueva matriz, use el operador new y el constructor Array. En este ejemplo, se usa el constructor de matrices
para generar una matriz de longitud 12. A continuación, se incluyen los datos en la matriz.

var theMonths = new Array(12);


theMonths[0] = "Jan";
theMonths[1] = "Feb";
theMonths[2] = "Mar";
theMonths[3] = "Apr";
theMonths[4] = "May";
theMonths[5] = "Jun";
theMonths[6] = "Jul";
theMonths[7] = "Aug";
theMonths[8] = "Sep";
theMonths[9] = "Oct";
theMonths[10] = "Nov";
theMonths[11] = "Dec";

Cuando se crea una matriz mediante la palabra clave Array, JScript incluye una propiedad length que registra el número de
entradas. Si no especifica ningún número, la longitud se establecerá en cero y la matriz no tendrá entradas. Si especifica un
número, la longitud se establecerá en dicho número. Si especifica varios parámetros, se utilizarán como entradas de la matriz.
Además, el número de parámetros se asigna a la propiedad length (como en el siguiente ejemplo, que equivale al anterior):

var theMonths = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun",


"Jul", "Aug", "Sep", "Oct", "Nov", "Dec");

Los literales de matriz ofrecen otra técnica para introducir datos en las matrices. Para obtener más información, vea
Datos de matriz.
El objeto Array guarda matrices dispersas. Es decir, si una matriz tiene tres elementos, numerados como 0, 1 y 2, puede haber
un elemento 50 aunque no existan los elementos que vayan del 3 al 49. JScript cambia automáticamente el valor de la
propiedad length cuando se agregan elementos a un objeto Array. Los índices de matriz de JScript siempre empiezan con 0,
no con 1, de modo que la propiedad length siempre es una unidad mayor que el índice de mayor tamaño de la matriz.
Usar las propiedades expando de las matrices
Los objetos Array, al igual que los demás objetos basados en el objeto Object de JScript, admiten las propiedades expando.
Las propiedades expando son unas propiedades nuevas que se agregan y se eliminan dinámicamente de una matriz, cómo los
índices de matriz. A diferencia de los índices de matriz, que deben ser números enteros, las propiedades expando son cadenas.
Además, al agregar o eliminar propiedades expando no se modifica la propiedad length.
Por ejemplo:

// Initialize an array with three elements.


var myArray = new Array("Hello", 42, new Date(2000,1,1));
print(myArray.length); // Prints 3.
// Add some expando properties. They will not change the length.
myArray.expando = "JScript";
myArray["another Expando"] = "Windows";
print(myArray.length); // Still prints 3.

Matrices con tipo


Otro método más rápido para crear la matriz theMonths anterior consiste en crear una matriz con tipo (nativa); en este caso,
una matriz de cadenas:
var theMonths : String[] = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep",
"Oct", "Nov", "Dec"];

El acceso a los elementos de matrices con tipo es más rápido que a los elementos de los objetos Array de JScript. Las matrices
con tipo son compatibles con las matrices de otros lenguajes de .NET Framework y ayudan a proporcionar seguridad de tipos.
Los objetos Array de JScript son muy flexibles y muy útiles para usar con listas, colas, pilas, etc., pero las matrices nativas son
mucho mejores para guardar elementos de tamaño fijo del mismo tipo. En general, a menos que se necesiten las
características especiales del objeto Array (cambio de tamaño dinámico, etc.), se recomienda utilizar matrices con tipo.
En las matrices con tipo se puede llamar a todos los métodos Array no destructivos (métodos que no modifican la longitud) de
JScript.
Vea también
Referencia
Array (Objeto)
Otros recursos
Objetos intrínsecos
JScript 8.0

Date (Objeto de JScript)


El objeto Date de JScript puede utilizarse para representar fechas y horas arbitrarias, para obtener la fecha actual del sistema y
para calcular las diferencias entre fechas. Tiene varias propiedades y métodos predefinidos. El objeto Date almacena el día de
la semana, el mes, el día y el año, así como la hora en horas, minutos, segundos y milisegundos. Esta información se basa en el
número de milisegundos transcurridos desde el 1 de enero de 1970, 00:00:00.000 del Horario universal coordinado (UTC),
anteriormente conocido como Hora media de Greenwich. JScript puede controlar fechas que van aproximadamente desde el
año 250000 a.C. al 255000 d.C., aunque únicamente se admite funcionalidad de formato para las fechas que van del año 0 d.C.
al 9999 d.C.
Crear un objeto Date
Para crear un nuevo objeto Date, use el operador new. En el ejemplo siguiente se calcula el número de días transcurridos y el
número de días que quedan del año en curso:

// Get the current date and read the year.


var today : Date = new Date();
// The getYear method should not be used. Always use getFullYear.
var thisYear : int = today.getFullYear();
// Create two new dates, one for January first of the current year,
// and one for January first of next year. The months are numbered
// starting with zero.
var firstOfYear : Date = new Date(thisYear,0,1);
var firstOfNextYear : Date = new Date(thisYear+1,0,1);

// Calculate the time difference (in milliseconds) and


// convert the differnce to days.
const millisecondsToDays = 1/(1000*60*60*24);
var daysPast : double = (today - firstOfYear)*millisecondsToDays;
var daysToGo : double = (firstOfNextYear - today)*millisecondsToDays;

// Display the information.


print("Today is: "+today+".");
print("Days since first of the year: "+Math.floor(daysPast));
print("Days until the end of the year: "+Math.ceil(daysToGo));

El resultado de este programa es parecido a:

Today is: Sun Apr 1 09:00:00 PDT 2001.


Days since first of the year: 90
Days until the end of the year: 275

Vea también
Referencia
Date (Objeto)
Otros recursos
Objetos intrínsecos
JScript 8.0

Math (Objeto de JScript)


El objeto Math tiene varios métodos y propiedades intrínsecos. Las propiedades son números específicos.
Utilizar el objeto Math
Uno de ellos es el valor de pi (aproximadamente 3,14159...). Éste es el valor de la propiedad Math.PI, que se utiliza en el
ejemplo siguiente.

// A radius variable is declared and assigned a numeric value.


var radius = 4;
var area = Math.PI * radius * radius;
// Note capitalization of Math and PI.

Uno de los métodos integrados del objeto Math es el método de exponenciación, o pow, que eleva un número a la potencia
especificada. En el siguiente ejemplo, se emplean los métodos pi y de exponenciación:

// This formula calculates the volume of a sphere with the given radius.
var volume = (4/3)*(Math.PI*Math.pow(radius,3));

A continuación se muestra otro ejemplo:

var x = Math.floor( Math.random()*10 ) + 1;

El objeto Math no se puede construir de manera explícita; siempre está disponible en el programa.
Vea también
Referencia
Math (Objeto)
Otros recursos
Objetos intrínsecos
JScript 8.0

Number (Objeto de JScript)


La finalidad principal del objeto Number es la de obtener las propiedades y los métodos utilizados para el tipo de datos
numéricos predeterminado, el tipo de datos Number. Las constantes numéricas que proporcionan las propiedades del objeto
Number se muestran en la tabla siguiente.
Propiedades del objeto Number
Propiedad Descripción
MAX_VALUE Mayor número posible (aproximadamente, 1,79E+308); puede ser positivo o negativo y su valor varía ligeram
ente de sistema a sistema.

MIN_VALUE Menor número posible (aproximadamente 2,22E-308); puede ser positivo o negativo y su valor varía ligerame
nte de sistema a sistema.

NaN Valor especial no numérico (NaN es acrónimo de "Not a number", "no es un número").

POSITIVE_INF Cualquier valor positivo mayor que el mayor número positivo (Number.MAX_VALUE) se convierte automátic
INITY amente a este valor; se representa como infinito.

NEGATIVE_IN Cualquier valor negativo mayor que el mayor número negativo (Number.MAX_VALUE) se convierte automáti
FINITY camente a este valor; se representa como -infinito.

Number.NaN es una propiedad especial que se define como no es un número (NaN es acrónimo de "Not A Number"). Se
devuelve Number.NaN cuando se usa en un contexto numérico una expresión que no se puede representar como número.
Por ejemplo, se devuelve NaN si las cadenas "Hello" ó 0/0 (cero dividido por cero) se usan como un número. NaN devuelve
una desigualdad y a sí mismo. Para comprobar un resultado NaN, no compare con Number.NaN; en lugar de ello, use el
método isNaN del objeto Global.
El método toLocaleString del objeto Number genera un valor de cadena que representa el valor del número con el formato
apropiado para la configuración regional actual del entorno host. El formato utilizado facilita la lectura de los números
grandes, separando los grupos de dígitos situados a la izquierda del separador decimal con un carácter, que depende de la
configuración regional. Para obtener más información, vea toLocaleString (Método).
Vea también
Referencia
Number (Objeto)
toLocaleString (Método)
Otros recursos
Objetos intrínsecos
JScript 8.0

Object (Objeto de JScript)


Todos los objetos de JScript basados en el objeto Object admiten las propiedades expando, propiedades que se pueden
agregar y eliminar mientras el programa está en ejecución.
Utilizar el objeto Object
A dichas propiedades se les puede asignar cualquier nombre, incluidos números. El nombre de una propiedad que es un
identificador simple, puede escribirse después del punto que sigue al nombre del objeto, como en:

var myObj = new Object();


// Add two expando properties, 'name' and 'age'
myObj.name = "Fred";
myObj.age = 53;

También puede tener acceso a las propiedades de un objeto mediante el operador índice []. Es necesario si el nombre de la
propiedad no es un identificador simple o no se conoce cuando se escribe la secuencia de comandos. Una expresión arbitraria,
incluido un identificador simple, entre corchetes, puede indizar la propiedad. Los nombres de todas las propiedades expando
de JScript se convierten en cadenas antes de ser agregados al objeto:
Cuando se utiliza el operador índice, el objeto se considera como matriz asociativa. Una matriz asociativa es una estructura de
datos que asocia dinámicamente valores de datos arbitrarios a cadenas arbitrarias. En este ejemplo, se agregan propiedades
expando que no tienen identificadores simples.

var myObj = new Object();


// This identifier contains spaces.
myObj["not a simple identifier"] = "This is the property value";
// This identifier is a number.
myObj[100] = "100";

Aunque el operador índice se suele asociar al acceso a los elementos de una matriz, cuando se usa con objetos el índice es
siempre el nombre de propiedad expresado como un literal de cadena.
Los objetos Array tienen una propiedad length especial que cambia cuando se agregan elementos nuevos. En general, los
objetos no tienen la propiedad length incluso cuando se usa el operador índice para agregar propiedades.
Observe la evidente diferencia entre las dos maneras de tener acceso a las propiedades de objeto:
Operador El nombre de la propiedad se trata como Lo que indica que el nombre de la propiedad
Punto (.) Un identificador No puede tratarse como datos

Índice ([]) Un literal de cadena Can tratarse como datos

Esta diferencia resulta útil cuando no se conocen los nombres de propiedad hasta el momento de la ejecución (por ejemplo,
cuando se construyen objetos basados en datos introducidos por el usuario). Para extraer todas las propiedades de una matriz
asociativa, se debe usar el bucle for ... in .
Vea también
Referencia
Object (Objeto)
Otros recursos
Objetos intrínsecos
JScript 8.0

String (Objeto de JScript)


Un objeto String en JScript representa datos de texto, como palabras y frases. Los objetos String se crean rara vez de manera
explícita con el operador new porque, normalmente, se crean implícitamente asignando un literal de cadena a una variable.
Para obtener más información, vea String (Objeto).
Utilizar el objeto String
El objeto String tiene muchos métodos integrados. Uno de ellos es el método substring, que devuelve parte de la cadena.
Utiliza dos números como argumentos. El primer número es el índice de base cero que indica el inicio de la subcadena y el
segundo número indica el final de la misma.

var aString : String = "0123456789";


var aChunk : String = aString.substring(4, 7); // Sets aChunk to "456".

El objeto String también tiene una propiedad length. Esta propiedad contiene el número de caracteres de la cadena (0 para
una cadena vacía). Se trata de un valor numérico que puede utilizarse directamente en los cálculos. En este ejemplo se obtiene
la longitud de un literal de cadena.

var howLong : int = "Hello World".length // Sets the howLong variable to 11.

Vea también
Referencia
String (Objeto)
Conceptos
Datos de cadena
Otros recursos
Objetos intrínsecos
JScript 8.0

Objetos basados en clases


Puesto que JScript es un lenguaje de programación basado en clases y orientado a objetos, es posible definir clases que
hereden de otras clases. Las clases definidas pueden tener métodos, campos, propiedades y subclases. La herencia permite que
las clases se creen a partir de clases existentes, y reemplacen los métodos y propiedades de clase base seleccionados. Las
clases de JScript, que son similares a las de C++ y C#, son bastante distintas a los objetos basados en prototipos.
En esta sección
Crear clases propias
Explica cómo se define una clase con campos, métodos y constructores.
Creación avanzada de clases
Explica cómo se define una clase con propiedades, cómo se hereda de una clase y cómo se crea una clase que sea compatible
con las propiedades expando.
Secciones relacionadas
Objetos de JScript
Contiene vínculos a temas que explican la sintaxis y el uso de los objetos intrínsecos de JScript.
Modificadores de JScript
Explica los modificadores que se pueden usar para controlar la visibilidad de los miembros de las clases, y cómo heredan y
se comportan las clases.
Objetos basados en prototipos
Proporciona una guía de uso del modelo de objetos basados en prototipos de JScript y vínculos a información que describe
las funciones personalizadas del constructor y la herencia de los objetos basados en prototipos.
Referencia de JScript
Enumera los elementos que componen la Referencia del lenguaje de JScript y vínculos a temas que explican en detalle el uso
apropiado de los elementos del lenguaje.
JScript 8.0

Crear clases propias


La instrucción class define clases. De manera predeterminada, se puede tener acceso público a los miembros de las clases, lo
que quiere decir que cualquier código que pueda tener acceso a la clase puede tenerlo también al miembro de la clase. Para
obtener más información, vea Modificadores de JScript.
Clases con campos
Los campos definen los datos que utiliza un objeto y son similares a las propiedades de los objetos basados en prototipos. A
continuación figura un ejemplo de una clase simple con dos campos. Se crea una instancia de la clase con el operador new:

class myClass {
const answer : int = 42; // Constant field.
var distance : double; // Variable field.
}

var c : myClass = new myClass;


c.distance = 5.2;
print("The answer is " + c.answer);
print("The distance is " + c.distance);

El resultado de este programa es:

The answer is 42
The distance is 5.2

Clases con métodos


Las clases también pueden contener métodos, que son funciones que contiene la clase. Los métodos definen la funcionalidad
para manipular los datos de un objeto. La clase myClass definida más arriba se puede volver a definir para que incluya un
método.

class myClass {
const answer : int = 42; // Constant field.
var distance : double; // Variable field.
function sayHello() :String { // Method.
return "Hello";
}
}

var c : myClass = new myClass;


c.distance = 5.2;
print(c.sayHello() + ", the answer is " + c.answer);

El resultado de este programa es:

Hello, the answer is 42

Clases con constructores


Se puede definir un constructor para una clase. Un constructor, que es un método con el mismo nombre que la clase, se
ejecuta cuando se crea una clase con el operador new. Se puede no especificar un tipo de valor devuelto para los
constructores. En este ejemplo, se agrega un constructor a la clase myClass.

class myClass {
const answer : int = 42; // Constant field.
var distance : double; // Variable field.
function sayHello() :String { // Method.
return "Hello";
}
// This is the constructor.
function myClass(distance : double) {
this.distance = distance;
}
}
var c : myClass = new myClass(8.5);
print("The distance is " + c.distance);

El resultado de este programa es:

The distance is 8.5

Vea también
Conceptos
Creación avanzada de clases
Otros recursos
Objetos basados en clases
Objetos de JScript
JScript 8.0

Creación avanzada de clases


Cuando se define una clase de JScript, se pueden asignar propiedades y, posteriormente, la clase definida puede heredar de
otras clases. Las propiedades, que son miembros de clase similares a los campos, proporcionan un mayor control sobre la
forma en que se obtiene acceso a los datos. Mediante la herencia, las clases se pueden extender (o bien agregar
comportamiento a) otras clases.
Una clase se puede definir de manera que sus instancias admitan las propiedades expando. Esto significa que a los objetos
basados en clases se les pueden agregar propiedades y métodos dinámicamente. Los objetos expando basados en clases
proporcionan parte de la funcionalidad de los objetos basados en prototipos.
Clases con propiedades
JScript usa las instrucciones function get y function set para especificar las propiedades. Se puede especificar cualquiera de
los descriptores de acceso, o ambos, para crear propiedades de sólo lectura, de sólo escritura o de lectura y escritura, si bien las
propiedades de sólo escritura son poco frecuentes y pueden indicar que hay algún problema de diseño en la clase.
El programa de llamada obtiene acceso a las propiedades de la misma manera que a los campos. La diferencia principal
consiste en que se utilizan el método captador y establecedor de la propiedad para realizar el acceso, mientras que a los
campos se obtiene acceso directamente. Una propiedad permite que la clase compruebe que sólo se escribe información
válida, haga un seguimiento del número de veces que se lee o establece la propiedad, devuelva información dinámica, etc.
Normalmente, las propiedades se usan para obtener acceso a los campos privados o protegidos de la clase. Los campos
privados se marcan con el modificador private y sólo pueden tener acceso a ellos los otros miembros de la clase. Los campos
protegidos se marcan con el modificador protected y sólo pueden tener acceso a ellos los otros miembros de la clase o de
clases derivadas. Para obtener más información, vea Modificadores de JScript.
En este ejemplo, se usan las propiedades para obtener acceso a un campo protegido. El campo está protegido para ayudar a
impedir que código externo cambie su valor al permitir que clases derivadas tengan acceso a él.

class Person {
// The name of a person.
// It is protected so derived classes can access it.
protected var name : String;

// Define a getter for the property.


function get Name() : String {
return this.name;
}

// Define a setter for the property which makes sure that


// a blank name is never stored in the name field.
function set Name(newName : String) {
if (newName == "")
throw "You can't have a blank name!";
this.name = newName;
}
function sayHello() {
return this.name + " says 'Hello!'";
}
}
// Create an object and store the name Fred.
var fred : Person = new Person();
fred.Name = "Fred";
print(fred.sayHello());

El resultado de este código es:

Fred says 'Hello!'

Si se asigna un nombre en blanco a la propiedad Name, se genera un error.


Herencia de clases
La palabra clave extends se utiliza al definir una clase que se genera a partir de otra. JScript puede extender la mayor parte de
las clases compatibles con CLS (Common Language Especification). Una clase definida con la palabra clave extends se conoce
como clase derivada, y la clase que se extiende se conoce como clase base.
En este ejemplo se define una nueva clase Student, que extiende la clase Person del ejemplo anterior. La clase Student vuelve a
utilizar la propiedad Name definida en la clase base, pero define un nuevo método sayHello que reemplaza el método sayHello
de la clase base.

// The Person class is defined in the code above.


class Student extends Person {
// Override a base-class method.
function sayHello() {
return this.name + " is studying for finals.";
}
}
var mary : Person = new Student;
mary.Name = "Mary";
print(mary.sayHello());

El resultado de este código es:

Mary is studying for finals.

Al volver a definir un método en una clase derivada, no cambia el método correspondiente en la clase base.
Objetos Expando
Si desea que un objeto genérico sea expando, use el constructor Object.

// A JScript Object object, which is expando.


var o = new Object();
o.expando = "This is an expando property.";
print(o.expando); // Prints This is an expando property.

Si desea que una de las clases sea expando, defina la clase con el modificador expando. A los miembros expando sólo se
puede tener acceso mediante la notación de índice ([]) y no con la notación de punto (.).

// An expando class.
expando class MyExpandoClass {
function dump() {
// print all the expando properties
for (var x : String in this)
print(x + " = " + this[x]);
}
}
// Create an instance of the object and add some expando properties.
var e : MyExpandoClass = new MyExpandoClass();
e["answer"] = 42;
e["greeting"] = "hello";
e["new year"] = new Date(2000,0,1);
print("The contents of e are...");
// Display all the expando properites.
e.dump();

El resultado de este programa es:

The contents of e are...


answer = 42
greeting = hello
new year = Sat Jan 1 00:00:00 PST 2000
Vea también
Conceptos
Modificadores de JScript
Crear clases propias
Otros recursos
Objetos basados en clases
Objetos de JScript
JScript 8.0

Objetos basados en prototipos


Puesto que JScript es un lenguaje de programación orientado a objetos, admite la definición de funciones constructoras
personalizadas y la herencia. Las funciones constructoras, denominadas también constructores, permiten diseñar e
implementar objetos propios basados en prototipos. La herencia permite que los objetos basados en prototipos compartan un
conjunto común de propiedades y métodos que se pueden agregar o eliminar dinámicamente.
En muchos casos, se deben usar los objetos basados en clases en lugar de los objetos basados en prototipos. Los objetos
basados en clases se pueden pasar a los métodos escritos en otros lenguajes de .NET Framework. Además, los objetos basados
en clases proporcionan seguridad de tipos y generan un código eficaz.
En esta sección
Crear objetos propios con funciones constructoras
Explica cómo se usan las funciones constructoras para crear objetos con propiedades y métodos.
Creación avanzada de objetos (JScript)
Muestra cómo se usa la herencia para agregar un conjunto común de propiedades y métodos a objetos creados con una
función constructora determinada.
Secciones relacionadas
Objetos de JScript
Contiene vínculos a temas que explican la sintaxis y el uso de los objetos intrínsecos de JScript.
Objetos basados en clases
Proporciona una guía de uso del modelo de objetos basados en clases de JScript y describe cómo definir clases (con
métodos, campos y propiedades), cómo definir una clase que hereda de otra y cómo definir clases expando.
Referencia de JScript
Enumera los elementos que componen la Referencia del lenguaje de JScript y vínculos a temas que explican en detalle el uso
apropiado de los elementos del lenguaje.
JScript 8.0

Crear objetos propios con funciones constructoras


Una de las características más eficaces de JScript es la capacidad de definir funciones constructoras para crear objetos
personalizados basados en prototipos con el fin de usarlos en secuencias de comandos. Para crear una instancia de un objeto
basado en prototipos, se ha de definir primero una función constructora. Este proceso crea un nuevo objeto y lo inicializa (crea
propiedades y asigna un valor inicial). Cuando termina, el constructor devuelve una referencia al objeto construido. En el
constructor, se hace referencia al objeto creado con la instrucción this.
Constructores con propiedades
En el ejemplo siguiente se define una función constructora para los objetos pasta. La instrucción this permite que el
constructor inicialice el objeto.

// pasta is a constructor that takes four parameters.


function pasta(grain, width, shape, hasEgg) {
this.grain = grain; // What grain is it made of?
this.width = width; // How many centimeters wide is it?
this.shape = shape; // What is the cross-section?
this.hasEgg = hasEgg; // Does it have egg yolk as a binder?
}

Tras definir un constructor de objetos, se crean instancias del objeto mediante el operador new. En este ejemplo, se usa el
constructor pasta para crear los objetos spaghetti y linguine.

var spaghetti = new pasta("wheat", 0.2, "circle", true);


var linguine = new pasta("wheat", 0.3, "oval", true);

Se pueden agregar dinámicamente propiedades a la instancia de un objeto, pero esos cambios sólo afectan a esa instancia en
particular.

// Additional properties for spaghetti. The properties are not added


// to any other pasta objects.
spaghetti.color = "pale straw";
spaghetti.drycook = 7;
spaghetti.freshcook = 0.5;

Si se desea agregar una propiedad más a todas las instancias del objeto sin modificar la función constructora, se puede
agregar la propiedad al objeto prototipo del constructor. Para obtener más información, vea
Creación avanzada de objetos (JScript).

// Additional property for all pasta objects.


pasta.prototype.foodgroup = "carbohydrates";

Constructores con métodos


Es posible incluir métodos (funciones) en la definición de un objeto. Una manera de hacerlo consiste en incluir una propiedad
en la función constructora que haga referencia a una función definida en otra parte. Al igual que las funciones constructoras,
estas funciones también hacen referencia al objeto actual con la instrucción this.
En el siguiente ejemplo se expande la función constructora pasta definida anteriormente de modo que incluya un método
toString, al que se llamará si la función muestra el valor del objeto. En general, JScript utilizará el método toString de un
objeto cuando se use el objeto en una situación en la que se requiere una cadena. Rara vez es necesario llamar al método
toString de manera explícita.

// pasta is a constructor that takes four parameters.


// The properties are the same as above.
function pasta(grain, width, shape, hasEgg) {
this.grain = grain; // What grain is it made of?
this.width = width; // How many centimeters wide is it?
this.shape = shape; // What is the cross-section?
this.hasEgg = hasEgg; // Does it have egg yolk as a binder?
// Add the toString method (defined below).
// Note that the function name is not followed with parentheses;
// this is a reference to the function itself, not a function call.
this.toString = pastaToString;
}

// The function to display the contents of a pasta object.


function pastaToString() {
return "Grain: " + this.grain + "\n" +
"Width: " + this.width + " cm\n" +
"Shape: " + this.shape + "\n" +
"Egg?: " + Boolean(this.hasEgg);
}

var spaghetti = new pasta("wheat", 0.2, "circle", true);


// Call the method explicitly.
print(spaghetti.toString());
// The print statement takes a string as input, so it
// uses the toString() method to display the properties
// of the spaghetti object.
print(spaghetti);

Esto genera el siguiente resultado:

Grain: wheat
Width: 0.2 cm
Shape: circle
Egg?: true
Grain: wheat
Width: 0.2 cm
Shape: circle
Egg?: true

Vea también
Otros recursos
Objetos basados en prototipos
Objetos de JScript
JScript 8.0

Creación avanzada de objetos (JScript)


JScript admite la herencia con los objetos personalizados basados en prototipos. Mediante la herencia, los objetos basados en
prototipos pueden compartir un conjunto común de propiedades y métodos que se pueden agregar o eliminar
dinámicamente. Además, objetos individuales pueden reemplazar el comportamiento predeterminado.
Crear un objeto basado en prototipo
Para crear una instancia de un objeto basado en prototipos, se ha de definir primero una función constructora. Para obtener
más información, vea Crear objetos propios con funciones constructoras. Tras escribir este constructor, se pueden utilizar
propiedades del objeto prototype (el cual constituye por sí mismo una propiedad de todo constructor) para crear propiedades
heredadas y métodos compartidos. El constructor proporciona a un objeto la información específica de la instancia, mientras
que el objeto prototype le proporciona la información y los métodos específicos del objeto.
Nota
Para que afecte a todas las instancias del objeto, tiene que haber un cambio en el objeto prototype del constructor. Si se ca
mbia la propiedad prototype de una instancia de un objeto, no se produce efecto alguno en las demás instancias del mismo
objeto.

Puesto que las propiedades y los métodos del objeto prototype se copian en cada instancia de un objeto mediante referencia,
todas las instancias tienen acceso a la misma información. Se puede cambiar el valor de una propiedad Prototype en una
instancia para reemplazar el valor predeterminado, pero el cambio sólo afectará a esa instancia. A continuación se ofrece un
ejemplo en el que se utiliza el constructor personalizado Circle. La instrucción this permite que el método tenga acceso a los
miembros del objeto.

// Define the constructor and add instance specific information.


function Circle (radius) {
this.r = radius; // The radius of the circle.
}
// Add a property the Circle prototype.
Circle.prototype.pi = Math.PI;
function ACirclesArea () {
// The formula for the area of a circle is pi*r^2.
return this.pi * this.r * this.r;
}
// Add a method the Circle prototype.
Circle.prototype.area = ACirclesArea;
// This is how you would invoke the area function on a Circle object.
var ACircle = new Circle(2);
var a = ACircle.area();

Siguiendo este principio, se pueden definir propiedades adicionales para las funciones constructoras existentes (todas tienen
objetos prototipo). Esto sólo funciona cuando el modo rápido está desactivado. Para obtener más información, vea /fast.
Por ejemplo, si desea eliminar los espacios iniciales y finales de las cadenas (de forma similar a la función Trim de Visual
Basic), puede crear un método propio en el objeto prototipo String y todas las cadenas de la secuencia de comandos
heredarán automáticamente el método. En este ejemplo se utiliza un literal de expresión regular para quitar los espacios. Para
obtener más información, vea Regular Expression (Objeto).

// Add a function called trim as a method of the prototype


// object of the String constructor.
String.prototype.trim = function() {
// Use a regular expression to replace leading and trailing
// spaces with the empty string
return this.replace(/(^\s*)|(\s*$)/g, "");
}

// A string with spaces in it


var s = " leading and trailing spaces ";
print(s + " (" + s.length + ")");
// Remove the leading and trailing spaces
s = s.trim();
print(s + " (" + s.length + ")");

Después de compilar este programa con el indicador /fast-, el resultado de este programa será:

leading and trailing spaces (35)


leading and trailing spaces (27)

Vea también
Otros recursos
Objetos basados en prototipos
Objetos de JScript
JScript 8.0

Modificadores de JScript
Los modificadores de JScript cambian el comportamiento y la visibilidad de las clases, interfaces o miembros de clase o
interfaz. Los modificadores pueden utilizarse para definir clases e interfaces, pero normalmente no son necesarios.
Modificadores de visibilidad
Los modificadores de visibilidad restringen el modo en que código externo obtiene acceso a las clases, interfaces y sus
miembros. Tales restricciones pueden utilizarse para fomentar buenas prácticas en la programación de objetos evitando la
llamada a campos y métodos internos especializados.
De manera predeterminada, cualquier código que pueda obtener acceso a una clase puede tener acceso a cualquier miembro
de esa clase. Utilizando modificadores de visibilidad, puede evitarse de manera selectiva que el código externo tenga acceso a
miembros concretos de la clase, permitir sólo a clases del mismo paquete el acceso a los miembros o permitir sólo a las clases
derivadas el acceso a los miembros de la clase.
Los modificadores de visibilidad no se pueden aplicar a las funciones ni a las variables globales. Los únicos modificadores de
visibilidad que se pueden usar conjuntamente son protected e internal.
Modifica Válido para Significado
dor de vis
ibilidad
public clase, miembro de clase, int El miembro está visible para cualquier código que tenga acceso a la clase sin restriccio
erfaz, miembro de interfaz nes de visibilidad. De manera predeterminada, en JScript las clases, las interfaces y sus
o enumeraciones miembros son públicos.

private miembro de clase El miembro está visible únicamente en la clase en la que está declarado. No está visibl
e para las clases derivadas. El código externo a la clase actual no puede tener acceso a
miembros privados.

protected miembro de clase El miembro está visible únicamente en la clase en la que está declarado y en sus clases
derivadas. El modificador protected no se puede utilizar para clases en ámbitos de paq
uete, pero se puede utilizar en clases anidadas.

internal clase, miembro de clase, en La clase, el miembro de clase o la enumeración está visible en todo el paquete en el qu
umeración e se declara. No está visible fuera del paquete.

Modificadores de herencia
Los modificadores de herencia controlan cómo los métodos y propiedades de clases derivadas reemplazan los métodos y
propiedades de una clase base. Mediante este control, se puede controlar si los métodos de clases derivadas reemplazarán o
no una clase que cree el usuario.
De manera predeterminada, los métodos de una clase derivada reemplazarán los métodos de la clase base, a menos que se
utilice el atributo hide de versión segura en la clase derivada. Este atributo ayuda a impedir el reemplazo. El uso de
modificadores de herencia permite ayudar a controlar si determinados métodos se reemplazan siempre o no se reemplazan
nunca.
En algunas situaciones, es posible que necesite asegurarse de que no se reemplaza el método de una clase base. Por ejemplo,
si define una clase en un paquete, puede utilizar el modificador final para garantizar que las clases derivadas no cambiarán los
métodos ni las propiedades de la clase.
Por otro lado, es posible que desee que se reemplacen determinados métodos de la clase. Por ejemplo, puede crear una clase
que proporcione alguna funcionalidad básica pero utilice el modificador abstract para algunos métodos. Corresponde al autor
de la clase derivada decidir la implementación de los métodos abstract.
Los modificadores de versión segura, que controlan también el reemplazo, lo hacen desde la clase derivada y no desde la clase
base. Los modificadores de versión segura tienen efecto únicamente si el método de la clase base que van a reemplazar no
tiene modificadores de herencia.
No es posible combinar dos modificadores de herencia ni un modificador de herencia con el modificador static.
Modifi Válido Significado
cador d para
e heren
cia
abstract clase, m Con métodos o propiedades, este modificador indica que el miembro no tiene implementación. Con clases, i
étodo o ndica que hay uno o varios métodos implementados. No se pueden crear instancias de una clase abstracta ni
propied una clase que contenga un miembro abstracto utilizando la palabra clave new, pero se puede utilizar como u
ad na clase base.

final clase, m Se usa para clases que no puedan ampliarse o métodos que no puedan ser reemplazados. El uso de final im
étodo o pide que las clases derivadas cambien el comportamiento de la clase reemplazando funciones importantes. L
propied os métodos con el modificador final se pueden ocultar o sobrecargar, pero no reemplazar.
ad

Modificadores de versión segura


Los modificadores de versión segura ayudan a controlar los métodos de una clase derivada que reemplazan los métodos de
una clase base. Mediante este control, puede controlar si una clase que cree reemplazará los métodos de la clase base o no.
De manera predeterminada, los métodos de una clase derivada reemplazarán los métodos de una clase base, aunque los
modificadores de herencia de la definición de la clase derivada pueden ayudar a impedir también el reemplazo. El uso de
modificadores de versión segura permite ayudar a controlar si determinados métodos se reemplazan o no.
En algunas situaciones, es posible que necesite asegurarse de que los métodos de la clase base no se reemplazarán. Por
ejemplo, puede ampliar una clase para cambiar el comportamiento de los métodos de la clase base. Si no desea que esos
métodos se reemplacen en la clase base, puede utilizar el modificador hide para las declaraciones de método.
Por otro lado, es posible que desee que se reemplacen determinados métodos de la clase base. Por ejemplo, puede que desee
cambiar los métodos de una clase sin modificar la clase. Al extender la clase y utilizar el modificador override para las
declaraciones de métodos, puede dar lugar a que los nuevos métodos reemplacen la clase base.
El uso satisfactorio de los modificadores de versión segura depende de si se han utilizado o no modificadores de herencia en la
declaración de los métodos de la clase base. Los métodos de la clase base marcados con el modificador final no se pueden
reemplazar y los métodos de la clase base marcados con el modificador abstract no se pueden ocultar, a menos que se dé una
implementación explícita del método de la clase base abstracta.
No puede combinar dos modificadores de versión segura ni un modificador de versión segura con un modificador static.
Cuando se ejecuta en modo de versión segura, sólo se puede utilizar un modificador de versión segura para cada método que
reemplace un método de la clase base.
Modificador de versión Válido para Significado
segura
hide método o propi El miembro no reemplaza un miembro con el mismo nombre en la clase base.
edad

override método o propi De manera predeterminada, los miembros reemplazan los miembros con el mismo
edad nombre en la clase base.

expando (Modificador)
El modificador expando hace que un objeto basado en una clase se comporte como si fuera un objeto de JScript. Los métodos
y las propiedades se pueden agregar de manera dinámica a un objeto expando. Para obtener más información, vea
Objetos basados en prototipos.
Puede utilizar el modificador expando independientemente de los demás modificadores.
Modific Válido Significado
ador para
expando clase o A una clase se le da una propiedad indizada predeterminada que es capaz de almacenar y recuperar propied
método ades dinámicas (expandos). Con un método, indica que es constructor de un objeto expando.
static (Modificador)
El modificador static significa que un miembro de una clase pertenece a la propia clase y no a las instancias de la clase. En
consecuencia, los datos y métodos específicos de la clase pueden no estar asociados con ninguna instancia específica.
No es posible combinar un modificador static con ninguno de los modificadores de herencia o de versión segura.
Mod Válido para Significado
ifica
dor
static método, pro Con los métodos, indica que se puede llamar sin una instancia de la clase. Para propiedades y campos, indi
piedad, cam ca que una copia es compartida por todas las instancias. No se debe confundir el modificador static con la
po o clase instrucción static, que denota código que inicializa la clase.

Vea también
Referencia
class (Instrucción)
interface (Instrucción)
function (Instrucción)
function get (Instrucción)
function set (Instrucción)
var (Instrucción)
const (Instrucción)
static (Instrucción)
Otros recursos
Modificadores
JScript 8.0

Operadores de JScript
JScript tiene un amplio conjunto de operadores, entre los que se incluyen operadores de cálculo, lógicos, bit a bit y de
asignación, así como algunos operadores variados. Los operadores combinan expresiones simples para formar expresiones
más complejas.
En esta sección
Resumen de operadores
Incluye tablas con los operadores de JScript agrupados por tipo.
Precedencia de operadores
Proporciona una tabla que contiene los operadores y su prioridad y un ejemplo de cómo funciona la prioridad de los
operadores.
Conversión realizada por operadores bit a bit
Describe las reglas que rigen la conversión de operandos de operadores bit a bit. La conversión es necesaria para que los
formatos binarios de los operandos sean compatibles entre sí y con el operador bit a bit.
Secciones relacionadas
Asignaciones e igualdad en JScript
Explica cómo utilizar los operadores de asignación, igualdad e igualdad estricta.
Conversión en JScript
Explica el concepto de conversión, cómo se utiliza y sus limitaciones.
Operadores de JScript
Incluye vínculos a temas de referencia sobre los operadores de JScript.
JScript 8.0

Resumen de operadores
Las tablas que aparecen a continuación muestran los operadores de JScript. Cada uno de los nombres de la columna de
descripción ofrece un vínculo al tema correspondiente, que explica la sintaxis y el uso correctos.
Operadores de cálculo
Descripción Símbolo
Suma +

Decrement --

División /

Increment ++

Módulo aritmético %

Multiplicación *

Resta -

Negación unaria -

Todos los operadores computacionales realizan cálculos con datos numéricos. Los operadores de suma también concatenan
cadenas cuando uno de los operandos es una cadena.
Operadores lógicos
Descripción Símbolo
Igualdad ==

Mayor o igual que >=

Mayor que >

Identidad ===

In in

Desigualdad !=

Menor o igual que <=

Menor que <

AND lógico &&

NOT lógico !

OR lógico ||

No identidad !==

Un operador lógico devuelve un valor Boolean. Dependiendo del operador, el valor puede representar el resultado de la
comparación, de la prueba o de la combinación.
Operadores bit a bit
Descripción Símbolo
AND bit a bit &

Desplazamiento a la izquierda bit a bit <<

NOT bit a bit ~

OR bit a bit |

Desplazamiento a la derecha bit a bit >>

XOR bit a bit ^

Desplazamiento a la derecha sin signo >>>

Los operadores bit a bit operan en la representación binaria de los operandos. Si los operandos no son compatibles entre sí, se
convertirán al tipo adecuado. Para obtener más información, vea Conversión realizada por operadores bit a bit.
Operadores de asignación
Descripción Símbolo
Asignación =

Asignación de adición compuesta +=

Asignación AND bit a bit compuesta &=

Asignación Or bit a bit compuesta |=

Asignación XOR bit a bit compuesta ^=

Asignación de división compuesta /=

Asignación de desplazamiento a la izquierda compuesta <<=

Asignación de módulo compuesta %=

Asignación de multiplicación compuesta *=

Asignación de desplazamiento a la derecha compuesta >>=

Asignación de resta compuesta -=

Asignación de desplazamiento a la derecha sin signo compuesta >>>=

Todos los operadores de asignación devuelven el valor asignado al operando izquierdo.


Operadores varios
Descripción Símbolo
Coma ,
Operador ternario condicional ?:

Delete delete

Instanceof instanceof

New new

Typeof typeof

Tipo Void void

Vea también
Conceptos
Precedencia de operadores
Otros recursos
Operadores de JScript
JScript 8.0

Precedencia de operadores
La precedencia de operadores es un conjunto de reglas de JScript que controla el orden en que el compilador realiza las
operaciones cuando se evalúa una expresión. Las operaciones con mayor precedencia se realizan antes que las de menor
prioridad. Por ejemplo, la multiplicación se realiza antes que la suma.
Tabla de precedencias
La tabla siguiente muestra una lista de los operadores de JScript, en orden de precedencia de mayor a menor.
Precede Orden de evalu Operador Descripción
ncia ación
15 de izquierda a d ., [], () Acceso a campos, indización de matrices, llamadas a funciones y agru
erecha pamiento de expresiones

14 de derecha a izq ++, --, -, ~, !, delete, new, ty Operadores unarios, tipos de datos devueltos, creación de objetos, val
uierda peof, void ores no definidos

13 de izquierda a d *, /, % Multiplicación, división, división módulo


erecha

12 de izquierda a d +, - Suma y concatenación de cadenas, resta


erecha

11 de izquierda a d <<, >>, >>> Desplazamiento bit a bit


erecha

10 de izquierda a d <, <=, >, >=, instanceof Menor que, menor o igual que, mayor que, mayor o igual que, instanc
erecha eof

9 de izquierda a d ==, !=, ===, !== Igualdad, desigualdad, igualdad estricta y desigualdad estricta
erecha

8 de izquierda a d & AND bit a bit


erecha

7 de izquierda a d ^ XOR bit a bit


erecha

6 de izquierda a d | OR bit a bit


erecha

5 de izquierda a d && AND lógico


erecha

4 de izquierda a d || OR lógico
erecha

3 de derecha a izq ?: Condicional


uierda

2 de derecha a izq =, OP= Asignación, asignación compuesta


uierda
1 de izquierda a d , (coma) Evaluación múltiple
erecha

Los paréntesis en una expresión modifican el orden de evaluación determinado por la precedencia de operador. Esto significa
que una expresión encerrada entre paréntesis se evalúa por completo antes de usar su valor en el resto de la expresión.
Por ejemplo:

z = 78 * (96 - 3 + 45)

En la expresión anterior hay cinco operadores: =, *, (), - y +. Según las normas de precedencia de operadores, se evalúan en el
siguiente orden: (), -, +, *, =.
1. En primer lugar se realiza la evaluación de la expresión que está encerrada entre paréntesis. Dentro de los paréntesis, hay
un operador de suma y otro de resta. Ambos operadores tienen la misma precedencia y se evalúan de izquierda a
derecha. Primero, se resta 3 de 96, con lo que se obtiene un resultado de 93. A continuación, se suma el número 45 a 93
y se obtiene el valor 139.
2. A continuación se realiza la multiplicación: El número 78 se multiplica por 139, con lo que se obtiene un resultado igual a
10764.
3. Por último se realiza la asignación: El número 10764 se asigna a z.

Vea también
Conceptos
Resumen de operadores
Otros recursos
Operadores de JScript
JScript 8.0

Conversión realizada por operadores bit a bit


Los operadores bit a bit de esta versión de JScript son totalmente compatibles con los operadores bit a bit de las versiones
anteriores de JScript. Asimismo, los operadores de JScript pueden utilizarse también en los nuevos tipos de datos numéricos.
El comportamiento de los operadores bit a bit depende de la representación binaria de los datos, por lo que es importante
comprender cómo los operadores convierten los tipos de datos.
A los operadores bit a bit se pueden pasar tres tipos de argumentos: variables de enlace en tiempo de compilación, variables
de enlace en tiempo de ejecución y datos literales. Las variables de enlace en tiempo de compilación son aquéllas definidas con
una anotación de tipo explícita. Las variables de enlace en tiempo de ejecución son variables de tipo Object que contienen
datos numéricos.
Operadores AND (&), OR (|) y XOR (^) bit a bit
Si alguno de los operandos es de enlace en tiempo de ejecución, o si ambos operandos son literales, los dos operandos se
convierten en int (System.Int32), se realiza la operación y se devuelve el valor int.
Si ambos operandos son de enlace en tiempo de compilación, o si uno es un literal y el otro un operando de enlace en tiempo
de compilación, se realizan más operaciones. Ambos operandos se convierten en un tipo que viene determinado por dos
condiciones:
Si ninguno de los operandos es integral, ambos operandos se convierten en int.
Si sólo uno de ellos es integral, el otro operando se convierte en el tipo integral o en int, el que sea mayor.
Si un operando es mayor que el otro, el tipo en que se convierte el operando tiene la misma longitud que el operando
mayor.
Si alguno de los operandos no tiene signo, el tipo en el que se convierte el operando es sin signo. En caso contrario, el
tipo en el que se convierte es con signo.
Los operandos se convierten entonces en el tipo correspondiente, se realiza la operación bit a bit y se devuelve el resultado. El
tipo de datos del resultado es el mismo que el tipo de los operandos convertidos.
Cuando se utiliza un literal integral con un operador bit a bit y una variable de enlace en tiempo de compilación, el literal se
interpreta como un int, long, ulong o double, dependiendo de cuál sea el tipo más pequeño que puede representar el
número. Los valores decimal literales se convierten en double. El tipo de datos del literal puede sufrir otras conversiones en
función de las reglas anteriormente descritas.
Operador NOT bit a bit (~)
Si el operando es de enlace en tiempo de ejecución, de punto flotante o un literal, se convierte en int (System.Int32), se realiza
la operación NOT y el valor devuelto es un int.
Si el operando tiene un tipo de datos integral de enlace en tiempo de compilación, se realiza la operación NOT y el tipo de
valor devuelto es el mismo que el tipo del operando.
Operadores de desplazamiento a la izquierda (<<) o a la derecha (>>) bit a bit
Si el operando izquierdo es de enlace en tiempo de ejecución, de punto flotante o un literal, se convierte en un int
(System.Int32). En caso contrario, el operando izquierdo tendrá un tipo integral de enlace en tiempo de compilación y no se
realizará la conversión. El operando derecho se convierte siempre en un tipo de datos integral. A continuación, se ejecuta la
operación de desplazamiento a la derecha en los valores convertidos y el resultado devuelto adopta el mismo tipo que el
operando izquierdo (si es de enlace en tiempo de compilación) o el tipo int.
Operador de desplazamiento a la derecha sin signo (>>>)
Si el operando izquierdo es de enlace en tiempo de ejecución, de punto flotante o un literal, se convierte en un uint
(System.UInt32). En caso contrario, el operador izquierdo tendrá un tipo de datos integral de enlace en tiempo de compilación
y se convertirá en un tipo sin signo del mismo tamaño. Por ejemplo, un int se convertirá en un uint. El operando derecho se
convierte siempre en un tipo de datos integral. A continuación se realiza la operación de desplazamiento a la derecha en los
valores convertidos y el resultado devuelto adopta el mismo tipo que el operando izquierdo convertido (si es de enlace en
tiempo de compilación) o el tipo uint.
El resultado del desplazamiento a la derecha sin signo es siempre lo suficientemente pequeño para almacenarse en la versión
con signo del tipo de valor devuelto sin que se produzca desbordamiento.
Vea también
Conceptos
Precedencia de operadores
Conversión de tipos
Conversión en JScript
Datos numéricos
Otros recursos
Operadores de JScript
JScript 8.0

Funciones de JScript
Las funciones de JScript pueden realizar acciones, devolver valores o ambas cosas. Por ejemplo, una función podría mostrar la
hora actual y devolver una cadena que represente la hora. Las funciones también se denominan métodos globales.
Las funciones combinan varias operaciones bajo un único nombre, con lo que se optimiza el código y se permite su
reutilización. Puede escribir un conjunto de instrucciones, asignarle un nombre y, a continuación, ejecutarlo llamándolo por su
nombre y pasándole la información necesaria.
Para pasar información a una función, la información debe incluirse entre paréntesis detrás del nombre de la función. Los
elementos de información que se pasan a una función se denominan argumentos o parámetros. Algunas funciones no aceptan
argumentos, mientras que otras utilizan uno o varios argumentos. En algunas funciones, el número de argumentos depende
de cómo se utilice la función.
JScript admite dos tipos de funciones: las que están integradas en el lenguaje y las creadas por el propio usuario.
En esta sección
Anotaciones de tipo
Describe el concepto de anotación de tipo y de cómo utilizarlo en una definición de función para controlar los tipos de datos
de entrada y salida.
Funciones de JScript definidas por el usuario
Muestra cómo definir nuevas funciones en JScript y cómo utilizarlas.
Recursividad
Explica el concepto de recursividad y muestra cómo escribir funciones recursivas.
Secciones relacionadas
Operadores de JScript
Enumera los operadores de cálculo, lógicos, bit a bit y de asignación, así como operadores varios, y proporciona vínculos a la
información que explica cómo utilizarlos de forma eficaz.
Tipos de datos de JScript
Contiene vínculos a temas que explican cómo utilizar los tipos de datos primitivos, los tipos de datos de referencia y los tipos
de datos de .NET Framework en JScript.
Conversión en JScript
Explica el concepto de conversión, cómo se utiliza y sus limitaciones.
function (Instrucción)
Describe la sintaxis para declarar funciones.
JScript 8.0

Anotaciones de tipo
Las anotaciones de tipo en una función especifican un tipo necesario para los argumentos de función, un tipo necesario para
los datos devueltos o un tipo necesario para ambos. Si no realiza anotaciones de tipo para los parámetros de una función, los
parámetros serán de tipo Object. Asimismo, si no se especifica el tipo de valor devuelto para una función, el compilador infiere
el tipo que corresponda.
Usar anotaciones de tipo
Las anotaciones de tipo para parámetros de función sirven para asegurarse de que una función sólo aceptará datos que sea
capaz de procesar. Al declarar de forma explícita un tipo de valor devuelto para una función se mejora la legibilidad del código,
ya que el tipo de datos devuelto por la función se borra inmediatamente.
En el ejemplo siguiente se muestra el uso de anotaciones de tipo para los parámetros y el tipo de valor devuelto de la función.

// Declare a function that takes an int and returns a String.


function Ordinal(num : int) : String{
switch(num % 10) {
case 1: return num + "st";
case 2: return num + "nd";
case 3: return num + "rd";
default: return num + "th";
}
}

// Test the function.


print(Ordinal(42));
print(Ordinal(1));

El resultado de este programa es:

42nd
1st

Si se pasara un argumento a la función Ordinal que no pudiera convertirse en un entero, se produciría un error de falta de
coincidencia de tipos. Por ejemplo, Ordinal(3.14159) produciría un error.
Vea también
Referencia
function (Instrucción)
Otros recursos
Funciones de JScript
Tipos de datos (JScript)
JScript 8.0

Funciones de JScript definidas por el usuario


Aunque JScript incluye muchas funciones integradas, puede crear las suyas propias. La definición de una función está formada
por una instrucción function y un bloque de instrucciones de JScript.
Definir su propia función
La función checkTriplet del siguiente ejemplo usa como argumentos la longitud de los lados de un triángulo. Calcula si los
tres números cumplen el teorema de Pitágoras (en un triángulo rectángulo, la suma del cuadrado de los catetos es igual al
cuadrado de la hipotenusa) para comprobar si el triángulo es rectángulo. La función checkTriplet llama a una de otras dos
funciones para realizar el cálculo real.
Observe el uso de un número muy pequeño (epsilon) como variable de prueba en la versión en punto flotante de la
comprobación. Debido a las incertidumbres y a los errores de redondeo en los cálculos de punto flotante, no resulta práctico
probar directamente si los tres números cumplen el teorema de Pitágoras a menos que se sepa que los valores en cuestión
son números enteros. Como es más exacto realizar una prueba directa, el código de este ejemplo determina si este método es
apropiado y, si lo es, lo utiliza.
Al definir estas funciones no se utilizan anotaciones de tipo. En esta aplicación, es útil que la función checkTriplet obtenga los
tipos de datos entero y de punto flotante.

const epsilon = 0.00000000001; // Some very small number to test against.

// Type annotate the function parameters and return type.


function integerCheck(a : int, b : int, c : int) : boolean {
// The test function for integers.
// Return true if a Pythagorean triplet.
return ( ((a*a) + (b*b)) == (c*c) );
} // End of the integer checking function.

function floatCheck(a : double, b : double, c : double) : boolean {


// The test function for floating-point numbers.
// delta should be zero for a Pythagorean triplet.
var delta = Math.abs( ((a*a) + (b*b) - (c*c)) * 100 / (c*c));
// Return true if a Pythagorean triplet (if delta is small enough).
return (delta < epsilon);
} // End of the floating-poing check function.

// Type annotation is not used for parameters here. This allows


// the function to accept both integer and floating-point values
// without coercing either type.
function checkTriplet(a, b, c) : boolean {
// The main triplet checker function.
// First, move the longest side to position c.
var d = 0; // Create a temporary variable for swapping values
if (b > c) { // Swap b and c.
d = c;
c = b;
b = d;
}
if (a > c) { // Swap a and c.
d = c;
c = a;
a = d;
}
// Test all 3 values. Are they integers?
if ((int(a) == a) && (int(b) == b) && (int(c) == c)) { // If so, use the precise check.
return integerCheck(a, b, c);
} else { // If not, get as close as is reasonably possible.
return floatCheck(a, b, c);
}
} // End of the triplet check function.
// Test the function with several triplets and print the results.
// Call with a Pythagorean triplet of integers.
print(checkTriplet(3,4,5));
// Call with a Pythagorean triplet of floating-point numbers.
print(checkTriplet(5.0,Math.sqrt(50.0),5.0));
// Call with three integers that do not form a Pythagorean triplet.
print(checkTriplet(5,5,5));

El resultado de este programa es:

true
true
false

Vea también
Referencia
function (Instrucción)
Otros recursos
Funciones de JScript
Tipos de datos de JScript
JScript 8.0

Recursividad
La recursividad es una técnica importante de programación que permite que una función se llame a sí misma. Como ejemplo
útil se puede presentar el cálculo de números factoriales. El factorial de 0 está definido específicamente como 1. El factorial de
n, un entero mayor que 0, es el producto de todos los enteros del intervalo comprendido entre 1 y n.
Utilizar recursividad
El siguiente párrafo muestra una función, expresada con palabras, que calcula un factorial.
"Si el número es menor que cero, se rechaza. Si no es un entero, se rechaza. Si el número es cero, su factorial es uno. Si el
número es mayor que cero, se multiplica por el factorial del número menor inmediato".
Para calcular el factorial de cualquier número mayor que cero debe calcular como mínimo el factorial de otro número. La
función debe llamarse a sí misma para el siguiente número menor antes de que se pueda ejecutar en el número actual, lo cual
constituye un ejemplo de recursividad.
La recursividad y la iteración (recorrido en bucles) están íntimamente relacionadas: una función puede devolver los mismos
resultados con recursividad o con iteración. Normalmente, un cálculo determinado se prestará a una técnica u otra; sólo
deberá elegir el enfoque más natural o el que más le guste.
A pesar de la utilidad de la recursividad, es fácil crear una función recursiva que no devuelva nunca un resultado y no llegue a
un extremo. Este tipo de recursividad hace que el sistema ejecute un bucle infinito. Por ejemplo, omita la primera regla (la de
los números negativos) de la descripción verbal del cálculo de un factorial e intente calcular el factorial de un número negativo.
Se produce un error, ya que para calcular el factorial de -24, por ejemplo, hay que calcular el factorial de -25. Para calcular el
factorial de -25, hay que calcular primero el factorial de -26, y así sucesivamente. Obviamente, el bucle nunca se detendrá.
Otro problema que puede surgir con la recursividad es que la función recursiva utilice todos los recursos disponibles (como la
memoria del sistema y el espacio de la pila). Cada vez que una función recursiva se llama a sí misma (o llama a otra función
que llama a la función original), utiliza algunos recursos. Estos recursos se liberan cuando la función recursiva termina, pero
una función que tenga demasiados niveles de recursividad podría utilizar todos los recursos disponibles. Cuando esto sucede,
se produce una excepción.
Por tanto, es importante cuidar el diseño de las funciones recursivas. Si sospecha que existe la posibilidad de una recursividad
excesiva o infinita, diseñe la función de forma que cuente el número de veces que se llama a sí misma y establezca un límite en
el número de llamadas. Si la función se llama a sí misma más veces que el umbral definido, puede hacer que la función
termine automáticamente. El número máximo óptimo de iteraciones depende de la función recursiva.
Aquí está de nuevo la función del factorial, pero esta vez escrita en JScript. Se utiliza la anotación de tipo para que la función
sólo acepte enteros. Si se pasa un número no válido (es decir, un número menor que cero), la instrucción throw genera un
error. En caso contrario, se utiliza una función recursiva para calcular el factorial. La función recursiva utiliza dos argumentos,
uno para el argumento factorial y otro para el contador que realiza un seguimiento del nivel de recursividad actual. Si el
contador no alcanza el nivel máximo de recursividad, se devuelve el factorial del número original.

function factorialWork(aNumber : int, recursNumber : int ) : double {


// recursNumber keeps track of the number of iterations so far.
if (aNumber == 0) { // If the number is 0, its factorial is 1.
return 1.;
} else {
if(recursNumber > 100) {
throw("Too many levels of recursion.");
} else { // Otherwise, recurse again.
return (aNumber * factorialWork(aNumber - 1, recursNumber + 1));
}
}
}

function factorial(aNumber : int) : double {


// Use type annotation to only accept numbers coercible to integers.
// double is used for the return type to allow very large numbers to be returned.
if(aNumber < 0) {
throw("Cannot take the factorial of a negative number.");
} else { // Call the recursive function.
return factorialWork(aNumber, 0);
}
}
// Call the factorial function for two values.
print(factorial(5));
print(factorial(80));

El resultado de este programa es:

120
7.156945704626378e+118

Vea también
Conceptos
Anotaciones de tipo
Otros recursos
Funciones de JScript
JScript 8.0

Conversión en JScript
JScript puede realizar operaciones en valores de tipos diferentes sin que el compilador inicie una excepción. El compilador de
JScript cambia (convierte) automáticamente uno de los tipos de datos al otro y realiza después la operación. Otros lenguajes
tienen reglas mucho más estrictas que rigen la conversión.
Detalles de la conversión
El compilador permite todo tipo de conversiones a menos que compruebe que la conversión siempre producirá un error. Las
conversiones que pueden producir errores generan una advertencia en tiempo de compilación, y muchas de ellas producen un
error en tiempo de ejecución. Por ejemplo:
Operación Resultado
Sumar un número y una cadena El número se convierte en cadena

Sumar un tipo booleano y una cadena El tipo booleano se convierte en cadena

Sumar un número y un tipo booleano El tipo booleano se convierte en número

Considere el ejemplo siguiente.

var x = 2000; // A number.


var y = "Hello"; // A string.
x = x + y; // the number is coerced into a string.
print(x); // Outputs 2000Hello.

Para convertir de forma explícita una cadena en un entero, utilice el método parseInt. Para obtener más información, vea el
método parseInt. Para convertir de forma explícita una cadena en un número, utilice el método parseFloat. Para obtener más
información, vea el método parseFloat. Tenga en cuenta que las cadenas se convierten automáticamente en números
equivalentes al realizar una comparación, pero no se modifican durante una suma (o concatenación).
Puesto que JScript es también un lenguaje con establecimiento inflexible de tipos, existe otro mecanismo de conversión. El
nuevo mecanismo utiliza, para realizar la conversión, el nombre de tipo de destino como si se tratara de una función, como lo
haría con un argumento. Este mecanismo funciona para todos los tipos primitivos de JScript, los tipos de referencia de JScript
y los tipos de .NET Framework.
Por ejemplo, en el siguiente código, se convierte un valor entero en un tipo Boolean:

var i : int = 23;


var b : Boolean;
b = i;
b = Boolean(i);

Puesto que el valor de i es un valor distinto de cero, b será true.


El nuevo mecanismo de conversión funciona también con muchos tipos definidos por el usuario. Sin embargo, algunas
conversiones de tipos definidos por el usuario podrían no funcionar, ya que JScript puede interpretar incorrectamente la
intención del usuario cuando convierte tipos que no son similares. Esto ocurre especialmente cuando el tipo que se va a
convertir está formado por varios valores. Por ejemplo, en el siguiente código, se crean dos clases (tipos): una de ellas contiene
una sola variable i , que es un entero, mientras que la otra contiene tres variables (s, f y d), cada una de un tipo diferente. En la
instrucción final, JScript no puede determinar cómo convertir una variable del primer tipo en el segundo tipo:

class myClass {
var i : int = 42;
}
class yourClass {
var s : String = "Hello";
var f : float = 3.142;
var d : Date = new Date();
}
// Define a variable of each user-defined type.
var mine : myClass = new myClass();
var yours : yourClass;

// This fails because there is no obvious way to convert


// from myClass to yourClass
yours = yourClass(mine);

Vea también
Conceptos
Conversión de tipos
Conversión realizada por operadores bit a bit
Otros recursos
Funciones de JScript
JScript 8.0

Estructuras condicionales de JScript


Las instrucciones en JScript se suelen ejecutar secuencialmente en el orden en que aparecen en la secuencia de comandos. Esto
se denomina ejecución secuencial y es la dirección predeterminada del flujo del programa.
Una alternativa a la ejecución secuencial consiste en transferir el flujo del programa a otra parte de la secuencia de comandos
como resultado de las condiciones encontradas por una secuencia de comandos. Es decir, en lugar de ejecutar la instrucción
siguiente de la secuencia, se ejecuta una instrucción almacenada en otra ubicación. Otra alternativa es la llamada iteración, que
consiste en repetir la misma secuencia de instrucciones varias veces. La iteración se consigue normalmente utilizando bucles.
En esta sección
Instrucciones condicionales
Describe el concepto de instrucción condicional y explica varios tipos comunes de expresiones utilizadas como instrucciones
condicionales.
Estructuras de control
Describe los dos tipos de estructuras de control proporcionadas por JScript, la estructura de control de selección y la
estructura de control de repetición, y cómo se utilizan.
Uso de instrucciones condicionales
Muestra cómo utilizar algunas instrucciones condicionales mediante ejemplos de la instrucción if y el bucle do...while.
Operador condicional
Describe el modo de usar el operador condicional y su relación con la instrucción if...else.
Bucles en JScript
Presenta el concepto de bucle en JScript y proporciona vínculos a información que explica cómo utilizar las construcciones
de bucle en código JScript.
Secciones relacionadas
Tipos de datos de JScript
Contiene vínculos a temas que explican cómo utilizar los tipos de datos primitivos, los tipos de datos de referencia y los tipos
de datos de .NET Framework en JScript.
Referencia de JScript
Enumera los elementos que componen la Referencia del lenguaje de JScript y vínculos a temas que explican en detalle el uso
apropiado de los elementos del lenguaje.
JScript 8.0

Instrucciones condicionales
Las instrucciones en el código de JScript se ejecutan secuencialmente de forma predeterminada. Podría ser útil, sin embargo,
modificar la secuencia lógica y transferir el control a una parte no secuencial del código dependiendo de determinadas
condiciones. Una estructura de control transfiere el control del programa a uno de dos lugares, dependiendo de si la
instrucción condicional es true o false. Cualquier expresión convertible en valor Boolean se puede utilizar como instrucción
condicional. En esta sección, se mencionan algunas instrucciones de condición habituales.
Igualdad e igualdad estricta
El operador de igualdad (==) en una instrucción condicional comprueba si los dos argumentos que se le han pasado tienen el
mismo valor, efectuando la conversión de tipos en caso de que fuese preciso para realizar una comparación. El operador de
igualdad estricta (===) compara el valor y el tipo de dos expresiones; devuelve True sólo si el valor y el tipo de datos son
iguales en los dos operandos. Observe que el operador de igualdad estricta no distingue entre los diferentes tipos de datos
numéricos.
En el siguiente código de JScript, se combina el operador de igualdad con una instrucción if que lo utiliza. Para obtener más
información, vea Estructuras de control.

function is2000(x) : String {


// Check if the value of x can be converted to 2000.
if (x == 2000) {
// Check is the value of x is strictly equal to 2000.
if(x === 2000)
print("The argument is number 2000.");
else
print("The argument can be converted to 2000.");
} else {
print("The argument is not 2000.");
}
}
// Check several values to see if they are 2000.
print("Check the number 2000.");
is2000(2000);
print("Check the string \"2000\".");
is2000("2000")
print("Check the number 2001.");
is2000(2001);

Éste es el resultado del código anterior:

Check the number 2000.


The argument is number 2000.
Check the string "2000".
The argument can be converted to 2000.
Check the number 2001.
The argument is not 2000.

Desigualdad y desigualdad estricta


El operador de desigualdad (!=) devuelve el resultado opuesto al operador de igualdad. Si los operandos tienen el mismo
valor, el operador de desigualdad devolverá false; de lo contrario, devolverá true. Asimismo, el operador de desigualdad
estricta (!==) devuelve el resultado opuesto al operador de igualdad estricta.
Considere el siguiente ejemplo de código JScript, donde el operador de desigualdad se utiliza para controlar un bucle while.
Para obtener más información, vea Estructuras de control.

var counter = 1;
// Loop over the print statement while counter is not equal to 5.
while (counter != 5) {
print(counter++);
}
Éste es el resultado del código anterior:

1
2
3
4

Comparación
Los operadores de igualdad y desigualdad resultan muy útiles para segmentos de datos con un valor específico. Sin embargo,
hay algunas situaciones en las puede resultar necesario comprobar si un valor está dentro de un intervalo concreto. En estas
situaciones, puede resultar conveniente utilizar los operadores relacionales: menor que (<), mayor que (>), menor o igual que
(<=) y mayor o igual que (>=).

if(tempInCelsius < 0)
print("Water is frozen.")
else if(tempInCelsius > 100)
print("Water is vapor.");
else
print("Water is liquid.);

Cortocircuito
Si desea probar varias condiciones juntas y sabe que alguna tiene más posibilidades de cumplirse o de no cumplirse que las
demás, puede utilizar la característica denominada evaluación de cortocircuito para acelerar la velocidad de ejecución de la
secuencia de comandos y evitar efectos secundarios que podrían dar lugar a errores. Cuando JScript evalúa una expresión
lógica, sólo analiza el número de subexpresiones necesario para obtener un resultado.
El operador lógico AND (&&) evalúa, en primer lugar, la expresión de la izquierda que se ha pasado. Si dicha expresión se
convierte en false, el resultado del operador lógico AND no puede ser true, sea cual sea el valor de la expresión de la derecha.
Por consiguiente, la expresión de la derecha no se evalúa.
Por ejemplo, en la expresión ((x == 123) && (y == 42)), JScript comprueba primero si x es 123. En caso negativo, no se
comprueba y y JScript devuelve el valor false.
Asimismo, el operador lógico OR (||) evalúa primero la expresión de la izquierda y, si se convierte en true, no se evalúa la
expresión de la derecha.
La evaluación "cortocircuitada" resulta especialmente útil si las condiciones que se van a comprobar implican la ejecución de
llamadas a funciones u otras expresiones complejas. Para que una secuencia de comandos se ejecute de forma más eficaz,
incluya primero las condiciones que tienen más posibilidades de cumplirse para el operador lógico OR. Para el operador lógico
AND, incluya en primer lugar las condiciones que tienen menos probabilidades de cumplirse.
Un ejemplo de las ventajas de diseñar la secuencia de comandos de esta manera es que, en el siguiente ejemplo, runsecond()
no se ejecutará si el valor devuelto de runfirst() se convierte en false.

if ((runfirst() == 0) || (runsecond() == 0)) {


// some code
}

Otro ejemplo de las ventajas de diseñar la secuencia de comandos de esta manera es que, en el siguiente ejemplo,
runsecond() no se ejecutará si el valor devuelto de runfirst() se convierte a false.

if ((x == 0) && (y/x == 5)) {


// some code
}

Otros
Una expresión convertible en valor booleano se puede utilizar como una instrucción de condición. Por ejemplo, podría utilizar
una expresión como:

if (x = y + z) // This may not do what you expect - see below!


Observe que en el código anterior no se comprueba si x es igual a y + z, ya que la sintaxis utiliza únicamente un signo igual
(asignación). En su lugar, el código anterior asigna el valor de y + z a la variable x y, a continuación, comprueba si el resultado
de toda la expresión (el valor de x) es cero. Para comprobar si x es igual a y + z, use el código siguiente:

if (x == y + z) // This is different from the code above!

Vea también
Conceptos
Datos booleanos
Otros recursos
Estructuras condicionales de JScript
Tipos de datos de JScript
Referencia de JScript
Operadores de JScript
JScript 8.0

Estructuras de control
Para todas las estructuras de control excepto la instrucción switch, la transferencia del control del programa se basa en una
decisión cuyo resultado es una instrucción del valor de verdad (que devuelve un tipo booleano true o false). Se crea una
expresión y, a continuación, se prueba si su resultado es true. Hay dos clases principales de estructuras de control de
programa.
Estructura de control de selección
La estructura de selección especifica rutas alternativas para el flujo del programa, creando de este modo un punto de unión en
el programa (como un desvío en una carretera). En JScript hay disponibles cuatro tipos de estructuras de selección.
la estructura de selección única (if)
la estructura de selección doble (if...else)
la estructura de selección múltiple (switch)
el operador condicional en línea ?:
Estructura de control de repetición
La estructura de repetición especifica la repetición de una acción mientras se sigan cumpliendo determinadas condiciones.
Cuando las condiciones de la instrucción de control se hayan cumplido (normalmente después de un número específico de
repeticiones), el control se transferirá a la siguiente instrucción externa a la estructura de repetición. En JScript hay disponibles
cuatro tipos de estructuras de repetición.
la expresión se prueba en la parte superior del bucle (while)
la expresión se prueba en la parte inferior del bucle (do...while)
opera en las propiedades de un objeto o en los elementos de una matriz (for...in)
repetición controlada mediante contador (for)

Estructura de control de combinación


Las secuencias de comandos complejas anidan y apilan las estructuras de control de selección y repetición.
El control de excepciones, que proporciona otro medio de controlar el flujo del programa, no se trata en este documento. Para
obtener más información, vea try...catch...finally (Instrucción).
Vea también
Otros recursos
Estructuras condicionales de JScript
Referencia de JScript
JScript 8.0

Uso de instrucciones condicionales


JScript admite las instrucciones condicionales if e if...else. Una instrucción if comprueba una condición. Si se cumple la
condición, ejecuta el código JScript correspondiente. Una instrucción if...else comprueba una condición y ejecuta uno de dos
bloques de código dependiendo de la instrucción condicional. La forma más sencilla de una instrucción if se puede escribir en
una sola línea, pero se usan más las instrucciones if e if...else de varias líneas.
Ejemplos de instrucciones condicionales
En los siguientes ejemplos se muestran distintas sintaxis que se pueden utilizar con las instrucciones if e if...else. El primer
ejemplo muestra el tipo de prueba booleana más sencilla. Si (y sólo si) el elemento encerrado entre paréntesis da como
resultado (o puede convertirse en) true, se ejecutará la instrucción o el bloque de instrucciones que siga a la instrucción if.
En el ejemplo siguiente, se llama a la función registerUser si el valor de newUser se convierte en true.

if (newUser)
registerUser();

En este ejemplo, no se supera la prueba a menos que se cumplan ambas condiciones.

if (rind.color == "deep yellow " && rind.texture == "wrinkled") {


theResponse = ("Is it a Crenshaw melon?");
}

En este ejemplo, el código incluido en el bucle do...while se ejecuta hasta que la variable quit es true.

var quit;
do {
// ...
quit = getResponse()
}
while (!quit)

Vea también
Referencia
if...else (Instrucción)
Otros recursos
Estructuras condicionales de JScript
Referencia de JScript
JScript 8.0

Operador condicional
JScript admite una forma condicional implícita. el operador condicional. Utiliza tres operandos. Un signo de interrogación
separa los dos primeros operandos y el segundo y el tercer operando se separan mediante dos puntos. El primer operando es
una expresión condicional. El segundo operando es una instrucción que se ejecuta si la expresión condicional es true. El tercer
operando se ejecuta si la instrucción condicional es false. Para obtener más información, vea Operador condicional ternario (?:).
El operador condicional es similar a la instrucción if...else.
Utilizar el operador condicional
En este ejemplo, el operador condicional determina si una hora en un período de 24 horas es antes del mediodía ("AM") o
después del mediodía ("PM").

var hours : String = (the24Hour >= 12) ? " PM" : " AM";

En general, conviene utilizar una estructura if ... then ... else cuando se elige entre las instrucciones que se van a ejecutar y el
operador condicional (?:) cuando se elige entre dos expresiones. No intente utilizar el operador condicional para elegir entre
más de dos opciones o para ejecutar bloques de instrucciones. En esos casos, utilice la construcción if...then...else.
Vea también
Otros recursos
Estructuras condicionales de JScript
Referencia de JScript
JScript 8.0

Bucles en JScript
En JScript hay diversas formas de ejecutar una instrucción o un bloque de instrucciones varias veces. En general, la ejecución
repetitiva se denomina ejecución en bucle o iteración. Una iteración es simplemente una ejecución única de un bucle.
Normalmente se controla mediante la prueba de una variable, en la que el valor cambia cada vez que se ejecuta el bucle.
JScript admite cuatro tipos de bucles: for, for...in, while y do...while.
En esta sección
Bucles for
Explica cómo JScript utiliza los bucles for y proporciona algunos ejemplos prácticos.
Bucles for...in
Describe el concepto de bucle for...in y explica cómo utilizar estos bucles en JScript.
Bucles while
Describe los dos tipos de bucles while y explica sus diferencias con los bucles for.
Instrucciones break y continue
Explica cómo utilizar las instrucciones break y continue para modificar el comportamiento de un bucle.
Secciones relacionadas
Estructuras condicionales de JScript
Describe cómo se controla normalmente el flujo de un programa en JScript y proporciona vínculos a la información que
explica cómo regular el flujo de ejecución de un programa.
Referencia de JScript
Enumera los elementos que componen la Referencia del lenguaje de JScript y vínculos a temas que explican en detalle el uso
apropiado de los elementos del lenguaje.
JScript 8.0

Bucles for
La instrucción for especifica una variable de contador, una condición de prueba y una acción que actualiza el contador. La
condición se comprueba antes de cada iteración del bucle. Si la comprobación es correcta, se ejecuta el código interior del
bucle. En caso contrario, el código interior del bucle no se ejecuta y el programa continúa por la primera línea de código
inmediatamente posterior al bucle. Después de ejecutar el bucle, la variable de contador se actualiza antes de comenzar la
siguiente iteración.
Utilizar bucles for
Si nunca se cumple la condición del bucle, éste nunca se ejecuta. Si la condición del bucle se cumple siempre, el bucle se
convierte en un proceso infinito. Aunque es posible que lo primero sea necesario en algunos casos, lo segundo raramente lo
es, por lo que debe tener cuidado al escribir las condiciones de los bucles. En este ejemplo, se utiliza el bucle for para inicializar
los elementos de una matriz con la suma de los elementos anteriores.

var sum = new Array(10); // Creates an array with 10 elements


sum[0] = 0; // Define the first element of the array.
var iCount;

// Counts from 0 through one less than the array length.


for(iCount = 0; iCount < sum.length; iCount++) {
// Skip the assignment if iCount is 0, which avoids
// the error of reading the -1 element of the array.
if(iCount!=0)
// Add the iCount to the previous array element,
// and assign to the current array element.
sum[iCount] = sum[iCount-1] + iCount;
// Print the current array element.
print(iCount + ": " + sum[iCount]);
}

El resultado de este programa es:

0: 0
1: 1
2: 3
3: 6
4: 10
5: 15
6: 21
7: 28
8: 36
9: 45

En el siguiente ejemplo hay dos bucles. El bloque de código del primer bloque no se ejecuta nunca, mientras que el segundo
bucle es un bucle infinito.

var iCount;
var sum = 0;
for(iCount = 0; iCount > 10; iCount++) {
// The code in this block is never executed, since iCount is
// initially less than 10, but the condition checks if iCount
// is greater than 10.
sum += iCount;
}
// This is an infinite loop, since iCount is always greater than 0.
for(iCount = 0; iCount >= 0; iCount++) {
sum += iCount;
}

Vea también
Referencia
for (Instrucción)
Otros recursos
Bucles en JScript
Estructuras condicionales de JScript
Referencia de JScript
JScript 8.0

Bucles for...in
JScript proporciona un tipo de bucle especial para recorrer una a una todas las propiedades de un objeto definidas por el
usuario, todos los elementos de una matriz o todos los elementos de una colección. El contador del bucle en un bucle for...in
es una cadena u objeto, no un número. Contiene el nombre de la propiedad actual, el índice del elemento de la matriz actual o
el elemento actual de la colección.
Usar bucles for...in
En el código siguiente se muestra el uso de la construcción for...in.

// Create an object with some properties.


var prop, myObject = new Object();
myObject.name = "James";
myObject.age = 22;
myObject.phone = "555 1234";
// Loop through all the properties in the object.
for (prop in myObject){
print("myObject." + prop + " equals " + myObject[prop]);
}

El resultado de este programa es:

myObject.name equals James


myObject.age equals 22
myObject.phone equals 555 1234

Observe que el nuevo comportamiento de la construcción de bucle for...in de JScript elimina la necesidad de utilizar el objeto
Enumerator para recorrer en iteración los elementos de una colección.
Vea también
Referencia
for...in (Instrucción)
Otros recursos
Bucles en JScript
Estructuras condicionales de JScript
Referencia de JScript
JScript 8.0

Bucles while
Un bucle while es similar a un bucle for en que permite ejecutar varias veces un bloque de instrucciones. Sin embargo, los
bucles while no tienen integrada una variable de contador ni una expresión de actualización. Para controlar la ejecución
repetitiva de una instrucción o bloque de instrucciones con una regla más compleja que "ejecutar este código n veces", use un
bucle while.
Utilizar bucles while
En el siguiente ejemplo se muestra la instrucción while:

var x = 1;
while (x < 100) {
print(x);
x *= 2;
}

El resultado de este programa es:

1
2
4
8
16
32
64

Nota
Puesto que los bucles while no tienen variables de contador explícitas integradas, tienen más posibilidades de crear bucles i
nfinitos que otros tipos de bucles. Además, debido a que no es fácil descubrir dónde y cuándo se actualiza la condición del b
ucle, hay muchas posibilidades de escribir accidentalmente un bucle while en el que la condición nunca se actualice. Por este
motivo, debe tener precaución al diseñar bucles while.

Como se indicó anteriormente, existe un bucle do...while en JScript que es similar al bucle while. Los bucles do...while
ofrecen la garantía de que se ejecutarán siempre al menos una vez, ya que la condición se prueba al final del bucle y no al
principio. Por ejemplo, el bucle anterior puede volverse a escribir de la siguiente manera:

var x = 1;
do {
print(x);
x *= 2;
}
while (x < 100)

El resultado de este programa es idéntico al que se mostró más arriba.


Vea también
Referencia
while (Instrucción)
do...while (Instrucción)
Otros recursos
Bucles en JScript
Estructuras condicionales de JScript
Referencia de JScript
JScript 8.0

Instrucciones break y continue


En JScript la instrucción break detiene la ejecución de un bucle, si se cumple alguna condición. La instrucción break también
se utiliza para salir de un bloque switch. La instrucción continue se puede usar para pasar inmediatamente a la siguiente
iteración, pasando por alto el resto del bloque de código y actualizando al mismo tiempo la variable de contador si el bucle es
un bucle for o for...in.
Utilizar instrucciones break y continue
El ejemplo siguiente muestra el uso de las instrucciones break y continue para controlar un bucle:

for(var i = 0;i <=10 ;i++) {


if (i > 7) {
print("i is greater than 7.");
break; // Break out of the for loop.
}
else {
print("i = " + i);
continue; // Start the next iteration of the loop.
print("This never gets printed.");
}
}

El resultado de este programa es:

i = 0
i = 1
i = 2
i = 3
i = 4
i = 5
i = 6
i = 7
i is greater than 7.

Vea también
Referencia
break (Instrucción)
continue (Instrucción)
Otros recursos
Bucles en JScript
Estructuras condicionales de JScript
Referencia de JScript
JScript 8.0

Palabras reservadas de JScript (JScript)


JScript incluye una serie de palabras reservadas que tienen un significado específico en la sintaxis del lenguaje JScript. Por
tanto, no es una buena idea utilizar estas palabras en nombres de funciones, variables o constantes incluidos en secuencias de
comandos. Existen tres tipos de palabras reservadas.
Palabras reservadas protegidas
Las palabras reservadas protegidas no se pueden utilizar como identificadores. El uso de una palabra reservada protegida
como un identificador provocará un error de compilación al cargar la secuencia de comandos.

break case catch class const

continue debugger default delete do

else export extends false finally

for function if import in

instanceof new null protected return

super switch this throw true

try typeof var while with


Nota
Aunque "export" es una palabra reservada protegida, no tiene implementación.

Palabras reservadas nuevas


JScript también incluye una lista de palabras reservadas nuevas. Como ocurre con las palabras reservadas protegidas, estas
palabras clave tienen un significado especial dentro de la versión actual de JScript. Por razones de compatibilidad con
versiones anteriores, las palabras reservadas nuevas pueden utilizarse como identificadores. Una vez utilizada una palabra
nueva como un identificador, pierde su significado como palabra clave en la secuencia de comandos. La utilización de palabras
reservadas nuevas como identificadores puede crear confusión y, por tanto, se debe evitar.

abstract boolean byte char decimal

double enum final float get

implements int interface internal long

package private protected public sbyte

set short static uint ulong

ushort void

Futuras palabras reservadas


JScript incluye una lista de futuras palabras reservadas propuestas como palabras clave para futuras extensiones de este
lenguaje. Al igual que con las palabras reservadas nuevas, se pueden utilizar como identificadores en la versión actual de
JScript. No obstante, si se evita la utilización de estas palabras, resultará más fácil actualizar las secuencias de comandos y
aprovechar, de este modo, las ventajas de futuras versiones de JScript.
A la hora de elegir identificadores también deberán evitarse las palabras que ya sean nombres de objetos o funciones
intrínsecas de JScript, como String o parseInt.

assert ensure event goto invariant

namespace native require synchronized throws

transient use volatile

Vea también
Otros recursos
Referencia de JScript
Paseo por el lenguaje JScript
JScript 8.0

Consideraciones de seguridad para JScript


Escribir código seguro es un desafío en cualquier lenguaje. JScript incluye unas áreas en las que los desarrolladores podrían
utilizar inadvertidamente el lenguaje de manera insegura porque el lenguaje no les obliga a que utilicen las prácticas más
eficaces. A pesar de que uno de los objetivos que se plantearon al diseñar JScript fue la seguridad, su principal finalidad es
promover el desarrollo rápido de aplicaciones útiles. En algunos casos, estos dos objetivos se contraponen.
Puede evitar los temas de seguridad si conoce los posibles problemas que existen en las distintas áreas que se enumeran a
continuación. Estas consideraciones de seguridad, excepto el método eval, son consecuencia de la nueva funcionalidad que
ofrece .NET Framework.
El método eval
La característica de JScript que peor se utiliza es el método eval, que permite la ejecución dinámica del código fuente de
JScript. Puesto que las aplicaciones de JScript que utilizan el método eval puede ejecutar cualquier tipo de código que les pase
el programa, las llamadas al método eval suponen un riesgo de seguridad. A menos que la aplicación requiera flexibilidad
para ejecutar cualquier tipo de código, considere escribir sólo el código que la aplicación pasa al método eval.
Para aumentar la seguridad de las aplicaciones que requieren toda la flexibilidad proporcionada por el método eval, el código
pasado a eval se ejecuta dentro de un contexto restringido de manera predeterminada. El contexto de seguridad restringido
ayuda a prohibir el acceso a los recursos del sistema, como el sistema de archivos, la red o la interfaz de usuario. Si el código
intenta obtener acceso a estos recursos, se genera una excepción de seguridad. Sin embargo, el código que ejecuta el método
eval aún modificar variables locales y globales. Para obtener más información, vea eval (Método).
Es posible que el código escrito en versiones anteriores de JScript requiera que el método eval ejecute código en el mismo
contexto de seguridad que el código de llamada. Para habilitar este comportamiento, puede pasar al método eval la cadena
"unsafe" como segundo parámetro opcional. Sólo debe ejecutar cadenas de código procedentes de orígenes de confianza, ya
que en el modo "unsafe", la cadena de código se ejecuta con los mismos permisos que el código de llamada.
Atributos de seguridad
Los atributos de seguridad de .NET Framework pueden utilizarse para reemplazar explícitamente los valores de seguridad
predeterminados de JScript. No obstante, no se deben modificar los valores predeterminados de seguridad a menos que se
sepa exactamente qué se está haciendo. Concretamente, algo que no se debe aplicar es el atributo personalizado del atributo
AllowPartiallyTrustedCallers (APTCA) ya que, en general, los llamadores que no son de confianza no pueden llamar a código
de JScript de forma segura. Si crea un ensamblado de confianza con APTCA que, más tarde, cargue la aplicación, un llamador
de confianza parcial podría obtener acceso a los ensamblados de plena confianza de dicha aplicación. Para obtener más
información, vea Instrucciones de codificación segura.
Código de confianza parcial y código alojado de JScript
El motor que aloja JScript permite a cualquier código al que se llame modificar partes del motor, como las variables globales,
las variables locales y las cadenas de prototipo de cualquier objeto. Asimismo, todas las funciones pueden modificar las
propiedades o los métodos expando de cualquier objeto expando que se les pase. Por tanto, si una aplicación de JScript llama a
código de confianza parcial o si se ejecuta en una aplicación con otro tipo de código (como en un host de Visual Studio para
Aplicaciones [VSA]), se podría modificar el comportamiento de la aplicación.
Como consecuencia, cualquier código de JScript de una aplicación (o de una instancia de una clase AppDomain) debe
ejecutarse en un nivel de confianza que no sea superior al resto del código de la aplicación. De lo contrario, el otro código
podría manipular el motor para la clase de JScript lo que, a su vez, podría modificar los datos y afectar al código restante de la
aplicación. Para obtener más información, vea _AppDomain.
Acceso al ensamblado
JScript puede hacer referencia a ensamblados mediante nombres seguros y nombres de texto simple. Una referencia a un
nombre seguro incluye la información de versión del ensamblado, así como una firma criptográfica que confirma la integridad
y la identidad de dicho ensamblado. Si bien resulta más fácil utilizar un nombre simple al hacer referencia a un ensamblado, un
nombre seguro ayuda a proteger el código en caso de que otro ensamblado del sistema tenga el mismo nombre simple, pero
distinta funcionalidad. Para obtener más información, vea Cómo: Hacer referencia a un ensamblado con nombre seguro.
Subprocesos
El motor en tiempo de ejecución de JScript no es seguro para subprocesos. Por tanto, el código multiproceso de JScript puede
tener un comportamiento impredecible. Si desarrolla un ensamblado en JScript, tenga en cuenta que es posible que se utilice
en un contexto multiproceso. Debe utilizar clases del espacio de nombres System.Threading, como la clase Mutex, para
garantizar que el código de JScript del ensamblado se ejecute con la sincronización adecuada.
Puesto que resulta difícil escribir código de sincronización apropiada en cualquier lenguaje, no debe intentar escribir
ensamblados de propósito general en JScript, a menos que sepa exactamente cómo implementar el código de sincronización
necesario. Para obtener más información, vea System.Threading.
Nota
No es necesario escribir código de sincronización para las aplicaciones ASP.NET escritas en JScript, ya que ASP.NET administr
a la sincronización de todos los subprocesos que genera. No obstante, los controles Web escritos en JScript deben contener c
ódigo de sincronización, porque se comportan como los ensamblados.

Errores en tiempo de ejecución


Puesto que JScript es un lenguaje en el que no es necesario declarar los tipos de datos, tolera mejor las posibles divergencias
entre los tipos que otros lenguajes, como Visual Basic y Visual C#. Debido a que la divergencia entre los tipos puede producir
errores en tiempo de ejecución en las aplicaciones, es importante descubrirlas al desarrollar el código. Puede utilizar el
indicador /warnaserror con el compilador de la línea de comandos o el atributo warninglevel de la directiva @ Page en las
páginas ASP.NET. Para obtener más información, vea /warnaserror y @ Page.
Modo de compatibilidad
Los ensamblados compilados en modo de compatibilidad (con la opción /fast-) son menos seguros que los compilados en
modo rápido (el modo predeterminado). La opción /fast- habilita funciones del lenguaje que no están disponibles de manera
predeterminada, pero que son necesarias para la compatibilidad con las cadenas escritas para la versión 5.6 y anteriores de
JScript. Por ejemplo, las propiedades expando se pueden agregar dinámicamente a los objetos intrínsecos, como el objeto
String, en el modo de compatibilidad.
El modo de compatibilidad sirve para ayudar a los desarrolladores a crear ejecutables independientes a partir de código
heredado de JScript. Cuando desarrolle nuevos ejecutables o bibliotecas, utilice el modo predeterminado. Así, no sólo ayudará
a proteger las aplicaciones, sino que también ayudará a garantizar un mayor rendimiento y una mejor interacción con otros
ensamblados. Para obtener más información, vea /fast.
Vea también
Conceptos
Actualizar aplicaciones creadas en versiones anteriores de JScript
Otros recursos
Seguridad del código nativo y del código de .NET Framework
JScript 8.0

Referencia del lenguaje


Los elementos del lenguaje JScript forman la base para el desarrollo de aplicaciones y secuencias de comandos.
En esta sección
Tipos de datos
Directivas
Errores
Funciones
Literales
Métodos
Modificadores
Objetos
Operadores
Propiedades
Instrucciones
Secciones relacionadas
Referencia de .NET Framework
Muestra vínculos a temas que explican la sintaxis y estructura de la biblioteca de clases de .NET Framework y otros
elementos esenciales.
JScript 8.0

Tipos de datos (JScript)


Un tipo de datos especifica el tipo de valor que puede aceptar una variable, una constante o una función. Las anotaciones de
tipo de las variables, constantes y funciones ayudan a reducir los errores de programación limitando los tipos apropiados a los
datos. Asimismo, las anotaciones de tipo también generan código más rápido y más eficiente.
En esta sección
boolean (Tipo de datos)
byte (Tipo de datos)
char (Tipo de datos)
decimal (Tipo de datos)
double (Tipo de datos)
float (Tipo de datos)
int (Tipo de datos)
long (Tipo de datos)
Number (Tipo de datos)
sbyte (Tipo de datos)
short (Tipo de datos)
String (Tipo de datos)
uint (Tipo de datos)
ulong (Tipo de datos)
ushort (Tipo de datos)
Secciones relacionadas
Tipos de datos de JScript
Contiene vínculos a temas que explican cómo utilizar los tipos de datos primitivos, los tipos de datos de referencia y los tipos
de datos de .NET Framework en JScript.
Resumen de tipos de datos
Enumera los tipos de datos de referencia y de valor que admite JScript, así como sus equivalentes en .NET Framework, el
tamaño de almacenaje y el ámbito.
Referencia de JScript
Enumera los elementos que comprende la Referencia del lenguaje JScript e incluye vínculos a temas que explican con más
detalle el uso correcto de los elementos del lenguaje.
JScript 8.0

boolean (Tipo de datos de JScript)


El valor del tipo boolean (true o false) se establece según esté la palabra clave true o false asignada al tipo.
El tipo de datos de .NET Framework correspondiente es System.Boolean. El tipo de datos Boolean es idéntico al tipo de datos
boolean.
Comentarios
Las propiedades y métodos del tipo de datos boolean son iguales que los de System.Boolean.
JScript define también un objeto Boolean. El tipo de datos boolean interactúa con el objeto Boolean. Por tanto, un objeto
Boolean puede llamar a los métodos y propiedades del tipo de datos boolean, y un tipo de datos boolean puede llamar a los
métodos y propiedades del objeto Boolean. Para obtener información adicional, vea
Boolean (Propiedades y métodos del objeto). Más aún, los objetos Boolean son aceptados por funciones que toman tipos de
datos boolean y viceversa.
Se debe utilizar el tipo de datos boolean en lugar del objeto Boolean en la mayoría de las circunstancias.
Propiedades y métodos
AllMembers.T:System.Boolean
Requisitos
Versión .NET
Vea también
Referencia
Boolean (Objeto)
Boolean Structure
true (Literal)
false (Literal)
Conceptos
Resumen de tipos de datos
Otros recursos
Tipos de datos (JScript)
JScript 8.0

byte (Tipo de datos de JScript)


El tipo byte se almacena como un byte sin signo.
Puede representar enteros en el intervalo de 0 a 255, ambos inclusive.
El tipo de datos correspondiente de .NET Framework es Byte. Las propiedades y los métodos del tipo de datos byte son iguales
que los de Byte.
Propiedades y métodos
AllMembers.T:System.Byte
Requisitos
Versión .NET
Vea también
Conceptos
Resumen de tipos de datos
Otros recursos
Tipos de datos (JScript)
JScript 8.0

char (Tipo de datos de JScript)


El tipo char se almacena como un carácter Unicode de 2 bytes.
Representa cualquiera de los 65.536 caracteres Unicode.
El tipo de datos de .NET Framework correspondiente es Char. Las propiedades y métodos del tipo de datos char son iguales
que los de Char.
Propiedades y métodos
AllMembers.T:System.Char
Requisitos
Versión .NET
Vea también
Referencia
String (Tipo de datos de JScript)
Conceptos
Resumen de tipos de datos
Otros recursos
Tipos de datos (JScript)
JScript 8.0

decimal (Tipo de datos de JScript)


El tipo decimal se almacena como una parte entera de 12 bytes, un signo de 1 bit y un factor de escala.
Representa con exactitud números decimales muy extensos o precisos. Los números tan grandes como 1028 (positivo o
negativo) y con hasta 28 dígitos significativos pueden almacenarse como un tipo decimal sin pérdida de precisión. Este tipo es
muy útil para aplicaciones (como en contabilidad) donde se deben evitar errores de redondeo.
El tipo de datos de .NET Framework correspondiente es Decimal. Las propiedades y los métodos del tipo de datos decimal son
iguales que los de Decimal.
Propiedades y métodos
AllMembers.T:System.Decimal
Requisitos
Versión .NET
Vea también
Conceptos
Resumen de tipos de datos
Otros recursos
Tipos de datos (JScript)
JScript 8.0

double (Tipo de datos de JScript)


El tipo double se almacena como un número de 8 bytes de punto flotante y doble precisión. Representa un valor IEEE 754 de
64 bits de doble precisión.
El tipo double puede representar números tan grande como 10308 (positivo o negativo) con una exactitud de
aproximadamente 15 dígitos y tan pequeños como 10-323. El tipo double también puede representar NaN (No es un
número), infinito positivo y negativo, y cero positivo y negativo.
Este tipo es útil para aplicaciones que necesiten números elevados pero no requieran una gran precisión. Si requiere números
muy precisos, considere el uso del tipo de datos Decimal.
El tipo de datos de .NET Framework correspondiente es Double. El tipo double es equivalente al tipo Number .
Comentarios
Las propiedades y métodos del tipo de datos double son iguales que los de System.Double.
JScript define un objeto Number. El tipo de datos double interactúa con el objeto Number. Por tanto, un objeto Number
puede llamar a los métodos y propiedades del tipo de datos double , y un tipo de datos double puede llamar a los métodos y
propiedades del objeto Number. Para obtener más información, vea Number (Propiedades y métodos del objeto). Más aún,
los objetos Number son aceptados por funciones que toman tipos de datos double y viceversa.
Se debe utilizar el tipo de datos double en lugar del objeto Number en la mayoría de las circunstancias.
Propiedades y métodos
AllMembers.T:System.Double
Requisitos
Versión .NET
Vea también
Referencia
Number (Tipo de datos)
decimal (Tipo de datos de JScript)
Conceptos
Resumen de tipos de datos
Otros recursos
Tipos de datos (JScript)
JScript 8.0

float (Tipo de datos)


El tipo float se almacena como un número de 4 bytes de punto flotante y precisión simple. Representa un valor IEEE 754 de 32
bits de precisión simple.
El tipo float puede representar números tan grande como 1038 (positivo o negativo) con una exactitud de aproximadamente
siete dígitos y tan pequeños como 10-44. El tipo float también puede representar NaN (No es un número), infinito positivo y
negativo, y cero positivo y negativo.
Este tipo es útil para aplicaciones que necesiten números elevados pero no requieran una gran precisión. Si requiere números
muy precisos, considere el uso del tipo de datos Decimal.
El tipo de datos de .NET Framework correspondiente es Single. Las propiedades y los métodos del tipo de datos float son
iguales que los de Single.
Propiedades y métodos
AllMembers.T:System.Single
Requisitos
Versión .NET
Vea también
Referencia
decimal (Tipo de datos de JScript)
Conceptos
Resumen de tipos de datos
Otros recursos
Tipos de datos (JScript)
JScript 8.0

int (Tipo de datos)


El tipo de datos int se almacena como un entero de 4 bytes.
Puede representar enteros en el intervalo de 2.147.483.648 negativo a 2.147.483.647 positivo, ambos inclusive.
El tipo de datos de .NET Framework correspondiente es Int32. Las propiedades y métodos del tipo de datos int son iguales que
los de Int32.
Propiedades y métodos
AllMembers.T:System.Int32
Requisitos
Versión .NET
Vea también
Conceptos
Resumen de tipos de datos
Otros recursos
Tipos de datos (JScript)
JScript 8.0

long (Tipo de datos de JScript)


El tipo de datos long se almacena como un entero de 8 bytes.
El tipo long puede representar enteros en el intervalo aproximado de 1019 negativo a 1019.
El tipo de datos correspondiente de .NET Framework es Int64. Las propiedades y los métodos del tipo de datos long son
iguales que los de Int64.
Propiedades y métodos
AllMembers.T:System.Int64
Requisitos
Versión .NET
Vea también
Conceptos
Resumen de tipos de datos
Otros recursos
Tipos de datos (JScript)
JScript 8.0

Number (Tipo de datos)


El tipo Number se almacena como un número de 8 bytes de punto flotante y doble precisión. Representa un valor IEEE 754 de
64 bits de doble precisión.
El tipo Number puede representar números tan grande como 1E+308 (positivo o negativo) con una exactitud de
aproximadamente 15 dígitos y tan pequeños como 1E-323. El tipo Number también puede representar NaN (No es un
número), infinito positivo y negativo, y cero positivo y negativo.
Este tipo es útil para aplicaciones que necesiten números elevados pero no requieran una gran precisión. Si requiere números
muy precisos, considere el uso del tipo de datos Decimal.
El tipo de datos de .NET Framework correspondiente es Double. El tipo Number es equivalente al tipo double.
Comentarios
Las propiedades y los métodos del tipo de datos Number son iguales que los de Double.
JScript define también un objeto Number. El tipo de datos Number interactúa con el objeto Number. Por tanto, un objeto
Number puede llamar a los métodos y propiedades del tipo de datos Number, y un tipo de datos Number puede llamar a los
métodos y propiedades del objeto Number. Para obtener más información, vea Number (Propiedades y métodos del objeto).
Más aún, los objetos Number son aceptados por funciones que toman tipos de datos Number y viceversa.
Se debe utilizar el tipo de datos Number en lugar del objeto Number en la mayoría de las circunstancias.
Propiedades y métodos
AllMembers.T:System.Double
Requisitos
Versión .NET
Vea también
Referencia
double (Tipo de datos de JScript)
decimal (Tipo de datos de JScript)
Number (Objeto)
Conceptos
Resumen de tipos de datos
Otros recursos
Tipos de datos (JScript)
JScript 8.0

sbyte (Tipo de datos de JScript)


El tipo sbyte se almacena como un byte con signo.
El tipo sbyte puede representar enteros en el intervalo de 128 negativo a 127 positivo, ambos inclusive.
El tipo de datos correspondiente de .NET Framework es SByte. Las propiedades y métodos del tipo de datos sbyte son iguales
que los de SByte.
Propiedades y métodos
AllMembers.T:System.SByte
Requisitos
Versión .NET
Vea también
Conceptos
Resumen de tipos de datos
Otros recursos
Tipos de datos (JScript)
JScript 8.0

short (Tipo de datos de JScript)


El tipo de datos short se almacena como un entero de 2 bytes.
Puede representar enteros en el intervalo de 32.768 negativo a 32.767 positivo, ambos inclusive.
El tipo de datos de .NET Framework correspondiente es Int16. Las propiedades y los métodos del tipo de datos short son
iguales que los de Int16.
Propiedades y métodos
AllMembers.T:System.Int16
Requisitos
Versión .NET
Vea también
Conceptos
Resumen de tipos de datos
Otros recursos
Tipos de datos (JScript)
JScript 8.0

String (Tipo de datos de JScript)


La longitud de un objeto String puede ir desde cero hasta, aproximadamente, dos mil millones de caracteres. Cada carácter es
un valor Unicode de 16 bits.
El tipo de datos equivalente de .NET Framework es String.
Comentarios
Las propiedades y métodos del tipo de datos String son iguales que los de String.
JScript define también un objeto String, que proporciona propiedades y métodos diferentes del tipo de datos String. No
puede crear propiedades ni agregar métodos a variables del tipo de datos String, pero sí puede hacerlo para las instancias del
objeto String.
El objeto String interactúa con los datos String. Por tanto, un objeto String puede llamar a los métodos y propiedades del tipo
de datos String, y un tipo de datos String puede llamar a los métodos y propiedades del objeto String. Para obtener más
información, vea String (Propiedades y métodos del objeto). Más aún, los objetos String son aceptados por funciones que
toman tipos de datos String y viceversa.
Se pueden utilizar secuencias de escape en literales de cadena para representar caracteres especiales que no se pueden utilizar
directamente en una cadena, como el carácter de nueva línea o los caracteres Unicode. Cuando se compila una secuencia de
comandos, cada secuencia de escape de un literal de cadena se convierte en los caracteres que representa. Para obtener más
información, vea Datos de cadena.
JScript no interpreta secuencias Unicode especiales (como los pares suplentes) ni tampoco normaliza cadenas cuando las
compara.
Nota
Los pares de caracteres Unicode que representan un único carácter y sólo tienen significado cuando se combinan se conocen
como pares suplentes.

Algunos caracteres se pueden representar con más de una secuencia de caracteres Unicode. Las secuencias normalizadas por
separado se interpretan de manera idéntica si representan el mismo carácter.
Propiedades y métodos
AllMembers.T:System.String
Requisitos
Versión .NET
Vea también
Referencia
String (Objeto)
char (Tipo de datos de JScript)
Conceptos
Resumen de tipos de datos
Datos de cadena
Otros recursos
Tipos de datos (JScript)
JScript 8.0

uint (Tipo de datos)


El tipo de datos uint se almacena como un entero de 4 bytes sin signo.
Puede representar enteros en el intervalo de 0 a 4.294.967.295, ambos inclusive.
El tipo de datos correspondiente de .NET Framework es UInt32. Las propiedades y métodos del tipo de datos uint son iguales
que los de UInt32.
Propiedades y métodos
AllMembers.T:System.UInt32
Requisitos
Versión .NET
Vea también
Conceptos
Resumen de tipos de datos
Otros recursos
Tipos de datos (JScript)
JScript 8.0

ulong (Tipo de datos de JScript)


El tipo de datos ulong se almacena como un entero de 8 bytes sin signo.
El tipo ulong puede representar enteros en el intervalo de 0 a 1020 aproximadamente.
El tipo de datos de .NET Framework correspondiente es UInt64. Las propiedades y métodos del tipo de datos ulong son
iguales que los de UInt64.
Propiedades y métodos
AllMembers.T:System.UInt64
Requisitos
Versión .NET
Vea también
Conceptos
Resumen de tipos de datos
Otros recursos
Tipos de datos (JScript)
JScript 8.0

ushort (Tipo de datos de JScript)


El tipo de datos ushort se almacena como un entero de 2 bytes sin signo.
El tipo ushort puede representar enteros en el intervalo de 0 a 65.535, ambos inclusive.
El tipo de datos de .NET Framework correspondiente es UInt16. Las propiedades y métodos del tipo de datos ushort son
iguales que los de UInt16.
Propiedades y métodos
AllMembers.T:System.UInt16
Requisitos
Versión .NET
Vea también
Conceptos
Resumen de tipos de datos
Otros recursos
Tipos de datos (JScript)
JScript 8.0

Directivas
Las directivas de JScript controlan las opciones específicas del compilador, del depurador y de los mensajes de error.
En esta sección
@debug (Directiva)
Activa o desactiva la emisión de símbolos de depuración.
@position (Directiva)
Proporciona información de posición útil en los mensajes de error.
Secciones relacionadas
Referencia de JScript
Enumera los elementos que comprende la Referencia del lenguaje JScript e incluye vínculos a temas que explican con más
detalle el uso correcto de los elementos del lenguaje.
Referencia de .NET Framework
Muestra vínculos a temas que explican la sintaxis y estructura de la biblioteca de clases de .NET Framework y otros
elementos esenciales.
JScript 8.0

@debug (Directiva)
Activa o desactiva la emisión de símbolos de depuración.

@set @debug(on | off)

Argumentos
on
Predeterminado. Palabra clave que activa la depuración.
off
Opcional. Palabra clave que desactiva la depuración.
Comentarios
El código de programa que escribe un autor de JScript difiere a veces del código real que se compila y ejecuta. Los entornos
host, como ASP.NET, o las herramientas de desarrollo pueden generar su propio código y agregarlo al programa. Este código
no suele tener interés para el autor durante la depuración. Por tanto, cuando depuran su código, los autores sólo desean ver
las partes del programa que escribieron sin partes generadas por las herramientas de desarrollo. Es posible que los autores de
paquetes deseen desactivar la depuración por motivos similares.
El compilador emite símbolos de depuración sólo cuando se compila desde la línea de comandos con la opción /debug o
cuando se compila una página ASP.NET con el indicador de depuración establecido en la directiva @page. En estas
circunstancias, la directiva debug está activada de manera predeterminada. Cuando aparece una directiva debug, permanece
efectiva hasta que se llega al final del archivo o hasta que se encuentra la siguiente directiva debug.
Cuando la directiva debug está desactivada, el compilador no emite información de depuración para las variables locales
(variables definidas en funciones o métodos). Sin embargo, la directiva debug no impide la emisión de la información de
depuración para variables globales.
Ejemplo
El código siguiente emite símbolos de depuración para la variable local debugOnVar, pero no para debugOffVar, cuando se
compila desde la línea de comandos con la opción /debug:

function debugDemo() {
// Turn debugging information off for debugOffVar.
@set @debug(off)
var debugOffVar = 42;
// Turn debugging information on.
@set @debug(on)

// debugOnVar has debugging information.


var debugOnVar = 10;

// Launch the debugger.


debugger;
}

// Call the demo.


debugDemo();

Requisitos
Versión .NET
Vea también
Referencia
@set (Instrucción)
@position (Directiva)
/debug
debugger (Instrucción)
Otros recursos
Escribir, compilar y depurar código JScript
JScript 8.0

@position (Directiva)
Proporciona información de posición útil en los mensajes de error.

@set @position(end | [file = fname ;] [line = lnum ;] [column = cnum])

Argumentos
fname
Requerido si se utiliza file. Literal de cadena que representa un nombre de archivo, con o sin información de unidad o ruta
de acceso.
lnum
Requerido si se utiliza line. Cualquier entero no negativo que represente una línea de código creado por el autor.
cnum
Requerido si se utiliza column. Cualquier entero no negativo que represente una columna de código creado por el autor.
Comentarios
El código de programa que escribe un autor de JScript difiere a veces del código real que se compila y ejecuta. Los entornos
host, como ASP.NET, o las herramientas de desarrollo pueden generar su propio código y agregarlo al programa. Este código
no suele tener interés para el autor, pero puede causarle confusión cuando se producen errores.
En lugar de identificar correctamente la línea del código del autor donde se ha producido el error, el compilador puede
identificar una línea de error que ni siquiera exista en el código original. Esto puede deberse a que el código adicional
generado haya cambiado la posición relativa del código original del autor.
Ejemplo
En el siguiente ejemplo se cambia el número de línea de un archivo para acomodar código insertado en el código del autor por
un host de JScript. Los números de línea de la columna de la izquierda representan el código fuente original tal y como lo ve el
autor:

01 .. // 10 lines of host-inserted code.


.. .. //...
10 .. // End of host-inserted code.
11 .. @set @position(line = 1)
12 01 var i : int = 42;
13 02 var x = ; // Error reported as being on line 2.
14 03 //Remainder of file.

Requisitos
Versión .NET
Vea también
Referencia
@set (Instrucción)
@debug (Directiva)
JScript 8.0

Errores
Los mensajes de error sirven para solucionar los problemas de los resultados o comportamientos inesperados en las
secuencias de comandos. Las siguientes secciones explican cómo resolver los errores que tienen lugar en tiempo de ejecución
o como resultado de incoherencias de la sintaxis.
En esta sección
Errores en tiempo de ejecución de JScript
Errores de sintaxis de JScript
Secciones relacionadas
Referencia de JScript
Enumera los elementos que comprende la Referencia del lenguaje JScript e incluye vínculos a temas que explican con más
detalle el uso correcto de los elementos del lenguaje.
Mensajes de error
Proporciona una lista de vínculos a mensajes de error que pertenecen al entorno de desarrollo integrado (IDE) de Visual
Studio y otros lenguajes de programación.
JScript 8.0

Errores en tiempo de ejecución de JScript


Los errores en tiempo de ejecución de JScript se producen cuando la secuencia de comandos de JScript intenta realizar una
acción que el sistema no puede ejecutar. Ocurren cuando se están evaluando expresiones variables durante la ejecución de la
secuencia de comandos y la memoria se está asignando dinámicamente.
Interceptar errores
Los errores en tiempo de ejecución se pueden interceptar y examinar con un programa de JScript. Encerrando el código que
produce el error en un bloque try, cualquier error se puede capturar con un bloque catch. Los errores que produce JScript son
objetos Error. El código de JScript puede generar errores personalizados de cualquier tipo de datos (incluidos los objetos
Error) mediante la instrucción throw. Un programa puede mostrar el número y el mensaje de error de un objeto Error
capturado para facilitar la identificación del error. Si no se captura el error, la secuencia de comandos terminará.
Hay varias maneras de obtener ayuda para un mensaje de error concreto:
Buscando el número y el mensaje de error en la tabla de contenido del nodo Errores en tiempo de ejecución de JScript.
Escribiendo el número de error en el cuadro Buscar del Índice. El número tiene el formato JSxxxx, donde xxxx es el
código de error de cuatro dígitos.
Escribiendo el mensaje de error en el cuadro Buscar del Índice. Recuerde que algunos mensajes de error incluyen
palabras con comillas simples. Las palabras entrecomilladas hacen referencia a identificadores del código y no forman
parte del mensaje de error. No incluya las palabras entrecomilladas en la búsqueda.
Vea también
Referencia
Error (Objeto)
try...catch...finally (Instrucción)
throw (Instrucción)
Conceptos
Errores de sintaxis de JScript
JScript 8.0

JS5000: No se puede asignar a 'this'


JS5000: Cannot assign to 'this'
Se ha asignado un valor a this, palabra clave de JScript que hace referencia a uno de los siguientes elementos:
al objeto que está ejecutando actualmente un método
al objeto global (en caso de que no haya un método actual o de que el método no pertenezca a ningún otro objeto)
Un método es una función de JScript a la que se llama a través de un objeto. En un método, la palabra clave this es una
referencia al objeto a través del cual se llamó al método (que es el objeto creado al llamar al constructor de clase con el
operador new).
En un método, puede utilizar this para hacer referencia al objeto actual, pero no puede asignar un valor nuevo a this.
Para corregir este error
No asigne un valor a this. Para tener acceso a una propiedad o método de una instancia de un objeto, utilice el operador
punto (por ejemplo, círculo.radio).
Nota
No puede asignar el nombre this a una variable de usuario; se trata de una palabra reservada de JScript.

Vea también
Referencia
this (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS5001: Se esperaba un número


JS5001: Number expected
El código ha llamado al método Number.prototype.toString o Number.prototype.valueOf en un objeto que no es del tipo
Number. El objeto de esta clase de llamada debe ser del tipo Number.
Para corregir este error
Llame solamente a los métodos Number.prototype.toString o Number.prototype.valueOf en objetos de tipo
Number.
Vea también
Referencia
Number (Objeto)
toString (Método)
valueOf (Método)
prototype (Propiedad)
Otros recursos
Objetos de JScript
JScript 8.0

JS5002: Se esperaba una función


JS5002: Function expected
El código ha llamado a uno de los métodos Function prototype en un objeto que no era un objeto Function o ha utilizado
un objeto en el contexto de una llamada a una función. Por ejemplo, el código siguiente provoca este error porque mysample
no es una función:

var mysample = new Object(); // Create a new object called "mysample".


var x = mysample(); // Try and call mysample as if it were a function.

Para corregir este error


1. Llame solamente a los métodos Function prototype en objetos Function.
2. Compruebe que el operador de llamada a funciones () llama sólo a funciones.
Vea también
Referencia
Fuction (Objeto)
prototype (Propiedad)
Otros recursos
Objetos de JScript
JScript 8.0

JS5003: No se puede asignar al resultado de una función


JS5003: Cannot assign to a function result
El código ha intentado asignar un valor al resultado de una función. Puede asignarse el resultado de una función a una
variable, pero no utilizarse como variable. Si desea asignar un nuevo valor a la propia función, omita los paréntesis (operador
de llamada de la función).
Para corregir este error
1. No utilice el valor del resultado de la llamada a una función como objeto de una asignación. Sin embargo, el resultado de
la llamada a una función sí puede asignarse a una variable.

myVar = myFunction(42);

2. Como alternativa, puede asignar la propia función (no el valor devuelto) a una variable:

myFunction = new Function("return 42;");

Vea también
Referencia
Fuction (Objeto)
Otros recursos
Paseo por el lenguaje JScript
Funciones de JScript
Métodos
JScript 8.0

JS5005: Se esperaba una cadena


JS5005: String expected
El código ha llamado al método String.prototype.toString o String.prototype.valueOf en un objeto de un tipo que no es
String. El objeto de esta clase de llamada debe ser de tipo String.
Para corregir este error
Llame solamente a los métodos String.prototype.toString o String.prototype.valueOf en objetos del tipo String.
Vea también
Referencia
String (Objeto)
toString (Método)
valueOf (Método)
prototype (Propiedad)
Otros recursos
Objetos de JScript
JScript 8.0

JS5006: Se esperaba un objeto de fecha


JS5006: Date object expected
El código ha llamado al método Date.prototype.toString o Date.prototype.valueOf en un objeto de un tipo que no es
Date. El objeto de esta clase de llamada debe ser de tipo Date.
Para corregir este error
Llame solamente a los métodos Date.prototype.toString o Date.prototype.valueOf en objetos de tipo Date.
Vea también
Referencia
Date (Objeto)
toString (Método)
valueOf (Método)
prototype (Propiedad)
Otros recursos
Objetos de JScript
JScript 8.0

JS5007: Se esperaba un objeto


JS5007: Object expected
El código ha llamado al método Object.prototype.toString u Object.prototype.valueOf en un objeto de un tipo que no es
Object. El objeto de esta clase de llamada debe ser de tipo Object.
Para corregir este error
Llame solamente a los métodos Object.prototype.toString u Object.prototype.valueOf en objetos de tipo Object.
Vea también
Referencia
Object (Objeto)
toString (Método)
valueOf (Método)
prototype (Propiedad)
Otros recursos
Objetos de JScript
JScript 8.0

JS5008: Asignación no válida


JS5008: Illegal assignment
El código ha intentado asignar un valor a un identificador de sólo lectura. No se puede asignar un valor a un identificador de
sólo lectura. Por ejemplo, los objetos definidos por el host y los objetos COM externos son identificadores de sólo lectura.
Para corregir este error
No asigne valores a identificadores de sólo lectura.
Vea también
Referencia
Operador de asignación (=)
JScript 8.0

JS5009: Identificador no definido


JS5009: Undefined identifier
El compilador JScript no reconoce un identificador. Esto puede ocurrir cuando una variable a la que se hace referencia no existe
o cuando se utiliza un bloque with para tener acceso a una propiedad de objeto que no existe.
Para corregir este error
1. Declare la variable con la instrucción var (como en var x;).
2. Asegúrese de que se hace referencia únicamente a miembros de objeto válidos en un bloque with.
3. Haga referencia al miembro del objeto explícitamente en lugar de utilizar la instrucción with.

Vea también
Referencia
var (Instrucción)
with (Instrucción)
Conceptos
Ámbito de variables y constantes
Otros recursos
Variables y constantes de JScript
Referencia de JScript
JScript 8.0

JS5010: Se esperaba un tipo booleano


JS5010: Boolean expected
El código ha invocado el método Boolean.prototype.toString o Boolean.prototype.valueOf en un objeto que no es de tipo
Boolean. El objeto de esta clase de llamada debe ser de tipo Boolean.
Para corregir este error
Invoque los métodos Boolean.prototype.toString o Boolean.prototype.valueOf únicamente en objetos de tipo Boolean.
Vea también
Referencia
Boolean (Objeto)
toString (Método)
valueOf (Método)
prototype (Propiedad)
Otros recursos
Objetos de JScript
JScript 8.0

JS5013: Se esperaba VBArray


JS5013: VBArray expected
Pese a que se esperaba un safeArray de Visual Basic, el objeto proporcionado a VBArray no lo era. Los objetos safeArray de
Visual Basic, que no se pueden crear directamente en JScript, se deben importar recuperando el valor de un objeto ActiveX u
otro objeto existente, o de una secuencia de comandos de Visual Basic de la misma página Web.
Para corregir este error
1. Asegúrese de que sólo se pasa un objeto safeArray de Visual Basic al constructor VBArray.
2. Utilice un objeto System.Array, de modo que cualquier lenguaje .NET (incluidos JScript y Visual Basic) pueda tener
acceso a la matriz y modificarla.
Vea también
Referencia
VBArray (Objeto)
Conceptos
Uso de matrices
JScript 8.0

JS5015: Se esperaba un objeto enumerador


JS5015: Enumerator object expected
El código ha invocado el método Enumerator.prototype.atEnd, Enumerator.prototype.item,
Enumerator.prototype.moveFirst o Enumerator.prototype.moveNext en un objeto que no es de tipo Enumerator. El
objeto de esta clase de llamada debe ser de tipo Enumerator.
Para corregir este error
Invoque los métodos Enumerator.prototype.atEnd, Enumerator.prototype.item, Enumerator.prototype.moveFirst
o Enumerator.prototype.moveNext únicamente en objetos de tipo Enumerator. Para averiguar si el objeto es de tipo
Enumerator, utilice:

if(x instanceof Enumerator)

Vea también
Referencia
Enumerator (Objeto)
atEnd (Método)
Method (Elemento de JScript)
moveFirst (Método)
moveNext (Método)
prototype (Propiedad)
Otros recursos
Objetos de JScript
JScript 8.0

JS5016: Se esperaba un objeto de expresión regular


JS5016: Regular Expression object expected
El código ha invocado el método RegExp.prototype.toString o RegExp.prototype.valueOf en un objeto que no es de tipo
RegExp. El objeto de esta clase de llamada debe ser de tipo RegExp.
Para corregir este error
Invoque los métodos RegExp.prototype.toString o RegExp.prototype.valueOf únicamente en objetos de tipo
RegExp.
Vea también
Referencia
Regular Expression (Objeto)
toString (Método)
valueOf (Método)
prototype (Propiedad)
Conceptos
Sintaxis de expresiones regulares
Otros recursos
Objetos de JScript
JScript 8.0

JS5017: Error de sintaxis en expresión regular


JS5017: Syntax error in regular expression
La sintaxis de una cadena de búsqueda de una expresión regular infringe una o más de las reglas gramaticales de una
expresión regular de JScript.
Para corregir este error
Compruebe que la cadena de búsqueda de la expresión regular cumple la sintaxis de las expresiones regulares de JScript.
Vea también
Referencia
Regular Expression (Objeto)
compile (Método de JScript)
Conceptos
Sintaxis de expresiones regulares
JScript 8.0

JS5022: Excepción producida y no detectada


JS5022: Exception thrown and not caught
El código incluye una instrucción throw que no está encerrada en un bloque try o bien carece de un bloque catch asociado
para interceptar el error. Las excepciones que se producen desde el bloque try con la instrucción throw se interceptan fuera
del bloque try con la instrucción catch.
Para corregir este error
1. Coloque el código que pueda producir una excepción dentro de un bloque try y compruebe que existe el bloque catch
correspondiente.
2. Asegúrese de que la instrucción catch espera la forma de excepción correcta.
3. Si se vuelve a producir la excepción, asegúrese de que hay otra instrucción catch correspondiente.
Vea también
Referencia
Error (Objeto)
throw (Instrucción)
try...catch...finally (Instrucción)
JScript 8.0

JS5023: La función no tiene un objeto prototipo válido


JS5023: Function does not have a valid prototype object
El código ha intentado utilizar instanceof para determinar si un objeto provenía de una clase de función determinada, pero ha
definido de nuevo la propiedad prototype del objeto como null o como un tipo de objeto externo (ninguno es un objeto
válido de JScript). Un objeto externo puede ser un objeto del modelo de objetos host (por ejemplo, un documento de Internet
Explorer o un objeto de ventana) o un objeto COM externo.
Para corregir este error
Compruebe que la propiedad prototype de la función hace referencia a un objeto de JScript válido.
Vea también
Referencia
Fuction (Objeto)
prototype (Propiedad)
Otros recursos
Objetos de JScript
JScript 8.0

JS5024: El identificador URI que se desea codificar contiene un


carácter no válido
JS5024: The URI to be encoded contains an invalid character
Una cadena codificada como identificador de recursos uniforme (URI, "Uniform Resource Identifier") contiene caracteres no
válidos. Aunque la mayoría de los caracteres de las cadenas son válidos para convertirlos en identificadores URI, algunas
secuencias de caracteres de Unicode no son válidas en este contexto.
Para corregir este error
Compruebe que la cadena que va a codificar sólo contiene secuencias de Unicode válidas.
Un identificador de recursos uniforme (URI) completo está compuesto de una secuencia de componentes y separadores.
La forma general es:

<Scheme>:<first>/<second>;<third>?<fourth>

Los nombres que van entre corchetes angulares representan componentes y los signos ":", "/", ";" y "?" son caracteres
reservados utilizados como separadores.
Vea también
Referencia
encodeURI (Método)
encodeURIComponent (Método)
JScript 8.0

JS5025: El identificador URI que desea descodificar no tiene


una codificación válida
JS5025: The URI to be decoded is not a valid encoding
El código ha intentado descodificar un identificador de recursos uniforme (URI, "Uniform Resource Identifier") formado
incorrectamente. Los identificadores URI tienen una sintaxis especial: la mayoría de los caracteres no alfanuméricos deben
estar codificados para que se puedan utilizar. Los métodos encodeURI y encodeURIComponent no pueden crear un
identificador de recursos uniforme (URI) desde una cadena de JScript normal.
Un identificador de recursos uniforme (URI) completo está compuesto de una secuencia de componentes y separadores. La
forma general es:

<Scheme>:<first>/<second>;<third>?<fourth>

Los nombres que van entre corchetes angulares representan componentes y los signos ":", "/", ";" y "?" son caracteres
reservados utilizados como separadores.
Para corregir este error
Compruebe que el código sólo intenta descodificar identificadores URI válidos. Por ejemplo, una cadena de JScript
normal puede no ser un identificador URI válido porque puede contener caracteres no válidos.
Vea también
Referencia
decodeURI (Método)
decodeURIComponent (Método)
JScript 8.0

JS5026: El número de dígitos fraccionarios está fuera de


intervalo
JS5026: The number of fractional digits is out of range
La función Number.prototype.toExponential no puede aceptar un argumento no válido. El argumento de la función
toExponential() debe estar entre 0 y 20 (ambos inclusive).
Para corregir este error
Compruebe que el argumento de toExponential() no es demasiado grande ni demasiado pequeño.
Vea también
Referencia
Number (Objeto)
toExponential (Método)
prototype (Propiedad)
Otros recursos
Objetos de JScript
JScript 8.0

JS5027: La precisión está fuera de intervalo


JS5027: The precision is out of range
La función Number.prototype.toPrecision no puede aceptar un argumento no válido. El argumento para la función
toPrecision debe estar entre 1 y 21 (ambos inclusive).
Para corregir este error
Compruebe que el argumento de toPrecision no es demasiado grande ni demasiado pequeño.
Vea también
Referencia
Number (Objeto)
toPrecision (Método)
prototype (Propiedad)
Otros recursos
Objetos de JScript
JScript 8.0

JS5029: La longitud de la matriz debe ser cero o un número


entero positivo
JS5029: Array length must be zero or a positive integer
Un argumento que llama al constructor Array es negativo o no es un número (NaN). Observe que JScript convierte
automáticamente los números decimales en números enteros.
Para corregir este error
Utilice únicamente números enteros positivos o el número cero cuando cree un objeto Array nuevo. Para crear una
matriz con un solo elemento, utilice un proceso de dos pasos. En primer lugar, cree una matriz con un elemento. En
segundo lugar, coloque el valor en el primer elemento (array[0]).
El ejemplo siguiente muestra la forma correcta de especificar una matriz con un solo elemento numérico.

var piArray = new Array(1);


piArray [0] = 3.14159;

No hay límite superior para el tamaño de una matriz más que el valor entero máximo (aproximadamente cuatro mil
millones).
Vea también
Conceptos
Uso de matrices
Otros recursos
Referencia de JScript
JScript 8.0

JS5030: Se debe asignar a la longitud de la matriz un número


entero positivo o cero
JS5030: Array length must be assigned a positive integer or zero
Un valor asignado a la propiedad length de un objeto Array es negativo o no es un número (NaN). Observe que JScript
convierte automáticamente los números decimales en números enteros.
Para corregir este error
Asigne un número entero positivo o cero a la propiedad length. El ejemplo siguiente muestra la forma correcta de
establecer la propiedad length de un objeto Array :

var my_array = new Array();


my_array.length = 99;

No hay límite superior para el tamaño de una matriz más que el valor entero máximo (aproximadamente cuatro mil
millones).
Vea también
Conceptos
Uso de matrices
Otros recursos
Referencia de JScript
JScript 8.0

JS5031: Se esperaba un objeto Array


JS5031: Array object expected
El programa está intentando utilizar un elemento que no es un objeto Array en un contexto donde se requiere un objeto Array.
Para corregir este error
Asegúrese de que se utiliza un objeto Array en este contexto.

Vea también
Referencia
Array (Objeto)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS5032: No existe tal constructor


JS5032: No such constructor
El operador new se ha aplicado a un identificador, pero el identificador no se corresponde con ninguna función constructora ni
con ningún constructor de clase.
Para corregir este error
Asegúrese de que el operador new se aplica a una función constructora o a un constructor de clase.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Crear objetos propios con funciones constructoras
Crear clases propias
Otros recursos
Referencia de JScript
JScript 8.0

JS5033: No se puede llamar a Eval a través de un alias


JS5033: Eval may not be called via an alias
El programa, que tiene un conjunto de variables que equivalen al método eval, define un alias y, a continuación, utiliza ese
alias como una función. No se puede utilizar un alias para el método eval.
Para corregir este error
Llame directamente al método eval.
Vea también
Referencia
eval (Método de JScript)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS5034: Sin implementar todavía


JS5034: Not yet implemented
El programa está intentando utilizar una función que no está implementada.
Para corregir este error
Quite la referencia a la función que no está implementada.

Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS5035: No se puede proporcionar un nombre de parámetro


con nombre nulo o vacío
JS5035: Cannot provide null or empty named parameter name
Hay parámetros con nombre que llaman a una función o método JScript y uno de los nombres de estos parámetros está vacío
o es null. Esto no está permitido porque todos los parámetros tienen nombres distintos de null.
Nota
No se pueden utilizar parámetros con nombre cuando se llama a funciones y métodos en JScript. Sin embargo, las funciones
y los métodos de JScript pueden invocarse desde otros lenguajes (como Visual Basic) que admitan parámetros con nombre.
Para obtener más información, vea Pasar argumentos por posición o por nombre.

Para corregir este error


Proporcione un nombre de parámetro a cada nombre de parámetro con nombre.

Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS5036: Nombre de parámetro con nombre duplicado


JS5036: Duplicate named parameter name
Hay parámetros con nombre que llaman a una función o método JScript y uno de los nombres de estos parámetros se utiliza
dos veces. Esto no está permitido ya que cada nombre de parámetro debe ser único.
Nota
No se pueden utilizar parámetros con nombre cuando se llama a funciones y métodos en JScript. Sin embargo, las funciones
y los métodos de JScript pueden invocarse desde otros lenguajes (como Visual Basic) que admitan parámetros con nombre.
Para obtener más información, vea Pasar argumentos por posición o por nombre.

Para corregir este error


Proporcione un nombre único a cada nombre de parámetro con nombre.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS5037: El nombre especificado no es el nombre de un


parámetro
JS5037: The specified name is not the name of a parameter
Hay parámetros con nombre que llaman a una función o método JScript y los nombres de estos parámetros no se
corresponden con un nombre de parámetro. Esto no está permitido ya que cada nombre de parámetro con nombre debe
hacer referencia a un nombre de parámetro.
Nota
No se pueden utilizar parámetros con nombre cuando se llama a funciones y métodos en JScript. Sin embargo, las funciones
y los métodos de JScript pueden invocarse desde otros lenguajes (como Visual Basic) que admitan parámetros con nombre.
Para obtener más información, vea Pasar argumentos por posición o por nombre.

Para corregir este error


Proporcione un nombre de parámetro a cada nombre de parámetro con nombre.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS5038: No se han especificado suficientes argumentos


JS5038: Too few arguments specified
No se han especificado suficientes argumentos. El número de nombres de parámetro no puede superar el número
de argumentos pasados.
Hay parámetros con nombre que llaman a una función o método de JScript, pero el número de argumentos pasados no puede
superar el número de argumentos especificados por la función o método. Esto no está permitido ya que se debe eliminar al
menos uno de los argumentos pasados.
Nota
No se pueden utilizar parámetros con nombre cuando se llama a funciones y métodos en JScript. Sin embargo, las funciones
y los métodos de JScript pueden invocarse desde otros lenguajes (como Visual Basic) que admitan parámetros con nombre.
Para obtener más información, vea Pasar argumentos por posición o por nombre.

Para corregir este error


Asegúrese de que el número de argumentos pasados no supera el número de nombres de parámetro.

Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS5039: La expresión no se puede evaluar en el depurador


JS5039: The expression cannot be evaluated in the debugger
Cuando se depuraba un programa de JScript se introdujo una expresión en la ventana de comandos que no se ha podido
evaluar.
Para corregir este error
Asegúrese de que sólo se introducen expresiones de JScript válidas en la ventana de comandos.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Escribir, compilar y depurar código JScript
JScript 8.0

JS5040: Asignación al campo o propiedad de sólo lectura


JS5040: Assignment to read-only field or property
El código asigna un valor a un identificador de sólo lectura. Esto no está permitido porque el código no puede escribir en
identificadores de sólo lectura.
La instrucción const define un campo de sólo lectura o una constante. Una instrucción function get sin una instrucción
function set coincidente define una propiedad de sólo lectura.
Para corregir este error
1. Asegúrese de que el código no asigna valores a identificadores de sólo lectura.
2. Defina el campo o variable con la instrucción var para convertirlo en asignable.
3. Agregue una instrucción function set coincidente a la propiedad para convertirla en asignable.
Vea también
Referencia
const (Instrucción)
function get (Instrucción)
function set (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Objetos basados en clases
JScript 8.0

JS5041: La propiedad sólo se puede asignar a


JS5041: The property can only be assigned to
El código lee el valor de una propiedad de sólo escritura. Esto no está permitido porque el código no puede leer valores de
identificadores de sólo escritura.
Una instrucción function set sin una instrucción function get coincidente define una propiedad de sólo escritura.
Para corregir este error
1. Asegúrese de que el código no lee valores de una propiedad de sólo escritura.
2. Agregue una instrucción function get coincidente a la propiedad para que pueda leerse.
Vea también
Referencia
function get (Instrucción)
function set (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Objetos basados en clases
JScript 8.0

JS5042: El número de índices no coincide con el rango de la


matriz
JS5042: The number of indices does not match the dimension of the array
El código tiene acceso a un elemento de una matriz, pero el número de índices no coincide con el número de dimensiones de
la matriz.
Para corregir este error
Asegúrese de que el número de índices utilizados para tener acceso a un elemento de matriz coincide con el número de
dimensiones especificadas al definir la matriz.
Vea también
Conceptos
Matrices con tipo
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS5043: No se puede llamar a los métodos con parámetros ref


en el depurador
JS5043: Methods with ref parameters cannot be called in the debugger
Cuando se depuraba un programa de JScript se introdujo en la ventana de comandos una llamada a un método que toma
parámetros por referencia. Esto no está permitido porque los parámetros por referencia pueden cambiar los valores de las
variables.
Para corregir este error
Asegúrese de que sólo se llama desde la ventana de comandos a métodos que no toman parámetros por referencia.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Escribir, compilar y depurar código JScript
JScript 8.0

JS5044: No se puede llamar a los métodos de seguridad Deny,


PermitOnly y Assert utilizando el enlace en tiempo de ejecución
JS5044: The Deny, PermitOnly and Assert security methods cannot be called using late binding
El código llama al método PermitOnly, Assert o Deny de un objeto CodeAccessPermission de enlace en tiempo de
ejecución. Esto no está permitido por motivos de seguridad. Para utilizar los métodos PermitOnly, Assert y Deny, la variable
que almacena el objeto CodeAccessPermission debe tener un tipo explícito (de enlace en tiempo de compilación) para que
sólo almacene objetos CodeAccessPermission.
Para corregir este error
Utilice la anotación de tipo cuando defina la variable que almacena el objeto CodeAccessPermission.
Vea también
Referencia
CodeAccessPermission Class
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS5045: JScript no admite atributos de seguridad declarativa


JS5045: JScript does not support declarative security attributes
Hay un atributo personalizado que hereda de CodeAccessSecurityAttribute que se aplica a la definición de un método, clase
o ensamblado. Esto no está permitido. Para ayudar a controlar el acceso a un fragmento de código debe utilizarse la seguridad
dinámica en lugar de atributos de seguridad declarativos.
Nota
Sólo el código de enlace en tiempo de compilación puede realizar llamadas a los métodos de seguridad Assert, Deny o Per
mitOnly en .NET Framework. Esto significa que deben utilizarse variables con anotación de tipo para almacenar objetos de p
ermiso, ya que la anotación de tipo permite al compilador generar código de enlace en tiempo de compilación. Además, el có
digo generado en tiempo de ejecución (con el método eval o con un objeto Function creado con el operador new) es códig
o de enlace en tiempo de ejecución, lo que le impide realizar llamadas a los métodos Assert, Deny o PermitOnly.

En el ejemplo siguiente, se utiliza la seguridad dinámica para denegar el acceso de un método a un determinado archivo.

import System;
import System.IO;
import System.Security;
import System.Security.Permissions;
class Alpha{
function Bravo() {
var fileioperm : FileIOPermission;
fileioperm = new FileIOPermission(FileIOPermissionAccess.AllAccess, 'd:\\temp\\myfile
.txt');
fileioperm.Deny();
// Any additional code in this method will be
// denied access to d:\temp\myfile.txt.
}
}

Para corregir este error


Utilice la seguridad dinámica en lugar de la seguridad declarativa para declarar un método o ensamblado seguro.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

Errores de sintaxis de JScript


Los errores de sintaxis de JScript se producen cuando la estructura de las instrucciones de JScript infringe una o varias reglas
gramaticales del lenguaje de secuencia de comandos de JScript. Se generan durante la etapa de compilación del programa,
antes de que éste comience a ejecutarse.
Obtener Ayuda sobre los mensajes de error
Hay varias maneras de obtener ayuda para un mensaje de error concreto:
Buscando el número y el mensaje de error en la tabla de contenido del nodo Errores de sintaxis de JScript.
Escribiendo el número de error en el cuadro Buscar del Índice. El número tiene el formato JSxxxx, donde xxxx es el
código de error de cuatro dígitos.
Escribiendo el mensaje de error en el cuadro Buscar del Índice. Recuerde que algunos mensajes de error incluyen
palabras con comillas simples. Las palabras entrecomilladas hacen referencia a identificadores del código y no forman
parte del mensaje de error. No incluya las palabras entrecomilladas en la búsqueda.
Vea también
Conceptos
Errores en tiempo de ejecución de JScript
JScript 8.0

JS0005: Argumento o llamada a procedimiento no válidos


JS0005: Invalid procedure call or argument
El código llama a un procedimiento, pero no se ha definido ningún procedimiento que coincida con la llamada.
Para corregir este error
1. Asegúrese de que los tipos de datos pasados al procedimiento coinciden con los tipos de datos que debe utilizar el
procedimiento, tal como se han definido.
2. Asegúrese de que el número de argumentos pasados al procedimiento coincide con el número de argumentos esperado
por el procedimiento.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS0007: Memoria insuficiente


JS0007: Out of memory
El programa ha consumido toda la memoria disponible, lo que puede ocurrir cuando se procesan grandes cantidades de datos.
Una forma de evitar este error es hacer un uso eficaz de la memoria disponible. Para ello, asegúrese de que el programa no
reserva memoria (en forma de matrices, objetos, etc.) que no se necesite.
Otra forma de reducir la memoria utilizada por un programa es intervenir en la rutina de recopilación de elementos no
utilizados para que libere memoria de forma dinámica. La rutina de recopilación de elementos no utilizados empleada por
JScript se ocupa de liberar la memoria no utilizada. Esta rutina libera los datos a los que el programa ya no tiene acceso. Los
datos pueden dejar de estar accesibles si se reemplazan los datos de una variable por nuevos datos o si cambia el alcance y ya
no se puede tener acceso a la variable.
Para liberar memoria del programa, establezca las variables que consumen una gran cantidad de memoria (como las matrices
de gran tamaño u otros objetos) en null cuando ya no sean necesarias. De esta forma, el recolector de elementos no utilizados
liberará la memoria.
Para corregir este error
1. Compruebe que el código utiliza la memoria de forma eficaz.
2. Declare los objetos que consumen gran cantidad de memoria justo antes de que se vayan a utilizar.
3. Establezca las variables en null cuando ya no sean necesarias.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS0013: No coinciden los tipos


JS0013: Type mismatch
El código está intentando utilizar datos de un tipo en un contexto que espera un tipo de datos incompatible. Esto puede
suceder cuando se asigna un valor a una variable o cuando se pasa un argumento a una función que tiene parámetros con
anotación de tipo.
Para corregir este error
Asegúrese de que el código pasa datos de un tipo que se puede convertir en el tipo de datos previsto.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS0028: Espacio de pila insuficiente


JS0028: Out of stack space
El programa ha consumido todo el espacio de pila disponible. Esto puede ocurrir cuando una función recursiva no termina
nunca de forma explícita.
Para corregir este error
Asegúrese de que las funciones recursivas terminan de forma explícita.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Recursividad
Otros recursos
Referencia de JScript
JScript 8.0

JS0051: Error interno


JS0051: Internal error
El código ha encontrado un error interno en el motor de secuencias de comandos.
Para corregir este error
1. Vuelva a escribir el código de una forma diferente pero equivalente, para que produzca los resultados previstos.
2. Haga clic en el vínculo "Microsoft Product Support Knowledge Base" al final de esta página para obtener sugerencias
sobre la solución de problemas.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS0053: Archivo no encontrado


JS0053: File not found
El programa no ha encontrado el archivo al que intentaba tener acceso.
Para corregir este error
1. Asegúrese de que la ruta de acceso y el nombre del archivo son correctos.
2. Asegúrese de que el archivo existe.

Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS0424: Se requiere un objeto


JS0424: Object required
El programa está intentando utilizar un elemento que no es un objeto en un contexto donde se requiere un objeto.
Para corregir este error
Asegúrese de que existe un objeto en este contexto.

Vea también
Referencia
Object (Objeto)
ActiveXObject (Objeto)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS0429: No se puede crear el objeto


JS0429: Can't create object
El programa está intentando crear un objeto nuevo, pero no es capaz de hacerlo. Esto puede ocurrir si la aplicación que
proporciona el objeto no está disponible o no proporciona ese objeto en concreto.
Para corregir este error
1. Asegúrese de que la aplicación está disponible.
2. Compruebe que se utiliza la aplicación adecuada para proporcionar el objeto.

Vea también
Referencia
ActiveXObject (Objeto)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS0438: El objeto no acepta este método o propiedad


JS0438: Object doesn't support this property or method
Un propiedad o método al que el programa está intentando tener acceso no es miembro de un objeto.
Para corregir este error
Asegúrese de que sólo se tiene acceso a las propiedades y métodos válidos de un objeto.

Vea también
Referencia
ActiveXObject (Objeto)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS0445: El objeto no acepta esta acción


JS0445: Object doesn't support this action
Se ha utilizado un objeto para una acción que el objeto no admite.
Para corregir este error
Asegúrese de que sólo se utilizan acciones válidas para el objeto.

Vea también
Referencia
ActiveXObject (Objeto)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS0451: El objeto no es una colección


JS0451: Object is not a collection
El programa está intentado crear un nuevo objeto Enumerator, pero el argumento pasado al constructor no es una colección.
Nota
En JScript se puede tener acceso directo a los elementos de una colección. Para obtener más información, vea
Enumerator (Objeto).

Para corregir este error


Asegúrese de que sólo se utilizan colecciones para crear objetos Enumerator.
Vea también
Referencia
Enumerator (Objeto)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1002: Error de sintaxis


JS1002: Syntax error
Una instrucción de JScript infringe una o más reglas gramaticales de JScript.
Para corregir este error
1. Vuelva a comprobar la sintaxis del programa en el número de línea indicado.
2. Busque paréntesis o llaves colocados erróneamente.

Vea también
Referencia
Error (Objeto)
Otros recursos
Referencia de JScript
JScript 8.0

JS1003: Se esperaba ':'


JS1003: Expected ':'
Una expresión utiliza el operador condicional ternario, pero no incluye el signo de dos puntos entre el segundo y el tercer
operando. El operador condicional ternario (tres operandos) requiere que haya dos puntos entre el segundo operando (true) y
el tercero (false).
Para corregir este error
Inserte el signo de dos puntos entre el segundo operando y el tercero.
Vea también
Referencia
Operador condicional ternario (?:)
Otros recursos
Operadores de JScript
Referencia de JScript
JScript 8.0

JS1004: Se esperaba ';'


JS1004: Expected ';'
Hay varias instrucciones en una misma línea y no están separadas con punto y coma o bien hay una instrucción for en una
línea sin punto y coma separando la inicialización, la prueba y el incremento en el encabezado.
El punto y coma se utiliza para finalizar las instrucciones. Aunque puede haber varias instrucciones en una sola línea, cada una
debe estar separada de la siguiente con un punto y coma.
El punto y coma se utiliza también para separar las expresiones de inicialización, prueba e incremento en el encabezado de un
bucle for.
Para corregir este error
1. Marque el final de cada instrucción con un punto y coma.
2. Asegúrese de que las llamadas a funciones utilizan los paréntesis correctamente.
3. Compruebe que hay signos de punto y coma en el encabezado del bucle for.
4. Compruebe que hay un signo = en una asignación.
Vea también
Referencia
for (Instrucción)
Otros recursos
Paseo por el lenguaje JScript
Referencia de JScript
JScript 8.0

JS1005: Se esperaba '('


JS1005: Expected '('
En una expresión que debía ir entre paréntesis, falta el paréntesis de apertura. Algunas expresiones deben encerrarse entre
paréntesis de apertura y de cierre. Por ejemplo, la siguiente instrucción for tiene una colocación correcta de los paréntesis:

for (initialize; test; increment) {


statement;
}

Para corregir este error


Agregue el paréntesis de apertura a la expresión de evaluación.

Vea también
Otros recursos
Referencia de JScript
JScript 8.0

JS1006: Se esperaba ')'


JS1006: Expected ')'
En una expresión que debía ir entre paréntesis, falta el paréntesis de cierre. Algunas expresiones deben encerrarse entre
paréntesis de apertura y de cierre. Por ejemplo, la siguiente instrucción for tiene una colocación correcta de los paréntesis:

for (initialize; test; increment) {


statement;
}

Para corregir este error


Agregue el paréntesis de cierre a la expresión de evaluación.

Vea también
Otros recursos
Referencia de JScript
JScript 8.0

JS1007: Se esperaba ']'


JS1007: Expected ']'
Una referencia a un elemento de una matriz no incluye el corchete de cierre. Todas las expresiones que hacen referencia a un
elemento de una matriz deben incluir los corchetes de apertura y de cierre.
Para corregir este error
Agregue el corchete de cierre a la expresión que hace referencia al elemento de la matriz.
Vea también
Referencia
Array (Objeto)
Conceptos
Uso de matrices
JScript 8.0

JS1008: Se esperaba '{'


JS1008: Expected '{'
Falta la llave de apertura que marca el comienzo del cuerpo de la función, el bloque de miembros de clase, miembros de
interfaz o de enumeración. El código que compone el cuerpo de una función, aunque sea de una sola línea, debe estar incluido
entre llaves de apertura y de cierre.
Observe que el uso de llaves en bucles es menos estricto que en los cuerpos de funciones y bloques de miembros.
Para corregir este error
Agregue la llave de apertura que marca el principio del cuerpo de la función.
Vea también
Referencia
Fuction (Objeto)
function (Instrucción)
class (Instrucción)
interface (Instrucción)
enum (Instrucción)
Otros recursos
Referencia de JScript
JScript 8.0

JS1009: Se esperaba '}'


JS1009: Expected '}'
Falta la llave de cierre que marca el final del cuerpo de la función, el bloque de miembros de clase, de miembros de interfaz, de
enumeración, del bucle, del bloque de código o del inicializador del objeto. Un ejemplo de este error podría ser un bucle for en
el que sólo la llave izquierda marca el cuerpo del bucle.
Para corregir este error
Agregue la llave de cierre que marca el final de la función, clase, interfaz, enumeración, bucle, bloque o inicializador del
objeto.
Vea también
Referencia
Fuction (Objeto)
function (Instrucción)
class (Instrucción)
interface (Instrucción)
enum (Instrucción)
Otros recursos
Estructuras condicionales de JScript
Referencia de JScript
JScript 8.0

JS1010: Se esperaba un identificador


JS1010: Expected identifier
Falta un identificador en un contexto donde se requería. Un identificador puede ser:
una variable
una propiedad
una matriz
el nombre de una función
Para corregir este error
Cambie la expresión para que aparezca un identificador a la izquierda del signo igual.
Vea también
Conceptos
Uso de matrices
Otros recursos
Referencia de JScript
JScript 8.0

JS1010: Se esperaba '='


JS1011: Expected '='
Una variable que se debe utilizar con instrucciones de compilación condicional no incluye un signo igual entre la variable y el
valor asignado.
Para corregir este error
Agregue un signo igual. Por ejemplo:

@set @myvar1 = 1

Vea también
Conceptos
Variables de compilación condicional
Otros recursos
Compilación condicional
JScript 8.0

JS1014: Carácter no válido


JS1014: Invalid character
Un identificador incluye un carácter o caracteres que el compilador de JScript no reconoce como válidos. Los caracteres válidos
siguen las reglas siguientes:
El primer carácter debe ser una letra ASCII (en mayúsculas o minúsculas), un carácter de subrayado (_) o un signo de
dólar ($).
Los siguientes caracteres pueden ser letras ASCII, números, caracteres de subrayado o signos de dólar.
El nombre de identificador no puede ser una palabra reservada.
Para corregir este error
Evite utilizar caracteres que no formen parte del lenguaje JScript.
Vea también
Conceptos
Datos de cadena
Otros recursos
Variables y constantes de JScript
Tipos de datos (JScript)
JScript 8.0

JS1015: Constante de cadena sin terminar


JS1015: Unterminated string constant
En una constante de cadena, falta una comilla de cierre. Las constantes de cadena deben ir encerradas entre comillas.
Nota
Puede utilizar parejas de comillas sencillas o dobles. Pueden incluirse comillas dobles en cadenas delimitadas por comillas si
mples y viceversa.

Para corregir este error


Agregue la comilla de cierre al final de la cadena.
Vea también
Referencia
String (Objeto)
toString (Método)
JScript 8.0

JS1016: Comentario sin terminar


JS1016: Unterminated comment
Un bloque de comentarios multilínea no se ha terminado correctamente. Los comentarios de varias líneas deben comenzar
con la combinación "/*" y finalizar con la combinación inversa "*/".
A continuación se incluye un ejemplo del uso correcto de comentarios multilínea:

/* This is a comment
This is another part of the same comment.*/

Para corregir este error


Compruebe que termina los comentarios de varias líneas con "*/".
Vea también
Referencia
Comment (Instrucciones)
JScript 8.0

JS1018: La instrucción 'return' está fuera de una función


JS1018: 'return' statement outside of function
Hay una instrucción return en el ámbito global del código o en el cuerpo de una clase o un paquete. La instrucción return sólo
debe aparecer en el cuerpo de una función.
Para corregir este error
Quite la instrucción return.
Vea también
Referencia
return (Instrucción)
Fuction (Objeto)
caller (Propiedad)
JScript 8.0

JS1019: No puede haber 'break' fuera de un bucle


JS1019: Can't have 'break' outside of loop
La palabra clave break aparece fuera del bucle. La palabra clave break se utiliza para terminar un bucle o una instrucción
switch. Debe estar incluida en el cuerpo de un bucle o de una instrucción switch.
Para corregir este error
Compruebe que la palabra clave break aparece dentro de un bucle envolvente o en una instrucción switch.
Vea también
Referencia
break (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Estructuras condicionales de JScript
Referencia de JScript
JScript 8.0

JS1020: No puede haber 'continue' fuera de un bucle


JS1020: Can't have 'continue' outside of loop
La instrucción continue está fuera de un bucle. La instrucción continue sólo se puede utilizar en el cuerpo de:
un bucle do-while
un bucle while
un bucle for
un bucle for/in
Para corregir este error
Compruebe que la instrucción continue no aparece en el cuerpo de:
un bucle do-while
un bucle while
un bucle for
un bucle for/in
Vea también
Referencia
continue (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Estructuras condicionales de JScript
Referencia de JScript
JScript 8.0

JS1023: Se esperaba un dígito hexadecimal


JS1023: Expected hexadecimal digit
El código incluye una secuencia de escape de Unicode incorrecta o un carácter no hexadecimal es el primer carácter en un
literal hexadecimal.
Las secuencias de escape de Unicode comienzan con \u, seguido de, exclusivamente, cuatro dígitos hexadecimales. Los literales
hexadecimales comienzan con 0x, seguido de cualquier número de dígitos hexadecimales. Los dígitos hexadecimales pueden
contener únicamente los números 0-9, las letras mayúsculas A-F y las letras minúsculas a-f. En el ejemplo siguiente se muestra
una secuencia de escape Unicode formada correctamente.

z = "\u1A5F";

El ejemplo siguiente muestra un literal Unicode formado correctamente.

k = 0x3E8;

Para corregir este error


1. Compruebe que los números hexadecimales pueden contener únicamente los números 0-9, las letras mayúsculas A-F y
las letras minúsculas a-f.
2. Compruebe que la secuencia de escape Unicode contiene cuatro dígitos.
Nota
Si desea utilizar el texto literal \u en una cadena, utilice dos barras diagonales inversas (\\u), de modo que se realice el
escape de la primera barra.

Vea también
Otros recursos
Referencia de JScript
Tipos de datos (JScript)
JScript 8.0

JS1024: Se esperaba 'while'


JS1024: Expected 'while'
Un bucle do while no incluye la condición while. La instrucción do debe tener la instrucción while correspondiente al final
del bloque de código.
Para corregir este error
Incluya la instrucción de prueba while después de la llave de cierre.
Vea también
Referencia
while (Instrucción)
Otros recursos
Estructuras condicionales de JScript
Referencia de JScript
JScript 8.0

JS1025: Ya se definió la etiqueta


JS1025: Label redefined
Una etiqueta nueva utiliza el nombre de una etiqueta existente. Dentro de un ámbito específico, las etiquetas deben ser únicas.
Para corregir este error
Asegúrese de que todos los nombres de etiqueta son únicos en sus respectivos ámbitos.

Vea también
Referencia
Instrucción con etiqueta
switch (Instrucción)
break (Instrucción)
continue (Instrucción)
JScript 8.0

JS1026: No se encuentra la etiqueta


JS1026: Label not found
El código hace referencia a una etiqueta que no existe. Dentro de un ámbito específico, las etiquetas deben ser únicas.
Para corregir este error
1. Compruebe si se han escrito correctamente los nombres de etiqueta.
2. Asegúrese de que todas las referencias se hacen a etiquetas definidas en el ámbito actual (esto incluye las definiciones
realizadas hacia delante).
Vea también
Referencia
Instrucción con etiqueta
switch (Instrucción)
break (Instrucción)
continue (Instrucción)
JScript 8.0

JS1027: La instrucción 'default' sólo puede aparecer una vez en


una instrucción 'switch'
JS1027: 'default' can only appear once in a 'switch' statement
Una instrucción switch utiliza una instrucción case default más de una vez. La instrucción case default debe ser siempre la
última instrucción case de la instrucción switch (es la opción utilizada en caso de que no se cumplan las demás).
Para corregir este error
Utilice únicamente una instrucción case default en la instrucción switch.
Vea también
Referencia
switch (Instrucción)
Conceptos
Palabras reservadas de JScript (JScript)
Otros recursos
Estructuras condicionales de JScript
JScript 8.0

JS1028: Se esperaba un identificador o una cadena


JS1028: Expected identifier or string
Se ha utilizado una sintaxis de literal incorrecta para declarar un literal de objeto. Las propiedades de un literal de objeto deben
ser un identificador o una cadena. Un literal de objeto (también denominado "inicializador de objeto") se compone de una lista
de pares propiedad:valor separados por comas y encerrados entre llaves. Por ejemplo:

var point = {x:1.2, y:-3.4};

Para corregir este error


Compruebe que la sintaxis del literal es correcta.
Vea también
Referencia
Operador coma (,)
JScript 8.0

JS1029: Se esperaba '@end'


JS1029: Expected '@end'
Un bloque de código compilado de manera condicional no termina con una instrucción @end. Las instrucciones de JScript se
pueden compilar condicionalmente si se colocan en un bloque @if/@end.
Para corregir este error
Agregue la instrucción @end correspondiente.
Vea también
Referencia
@if...@elif...@else...@end (Instrucción)
Conceptos
Variables de compilación condicional
Otros recursos
Compilación condicional
JScript 8.0

JS1030: La compilación condicional está desactivada


JS1030: Conditional compilation is turned off
El código utiliza una variable de compilación condicional, pero no está activa la opción de compilación condicional. Al activar la
compilación condicional se indica al compilador de JScript que interprete los identificadores que empiezan con @ como
variables de compilación condicional. Para ello, empiece el código condicional con la instrucción:

/*@cc_on @*/

Para corregir este error


Agregue la siguiente instrucción al comienzo del código condicional:

/*@cc_on @*/

Vea también
Referencia
@cc_on (Instrucción)
@if...@elif...@else...@end (Instrucción)
@set (Instrucción)
Conceptos
Variables de compilación condicional
Otros recursos
Compilación condicional
JScript 8.0

JS1031: Se esperaba una constante


JS1031: Expected constant
Hay una variable en una instrucción de prueba @if (compilación condicional). Sólo se permiten literales y variables de
compilación condicional (ambos son constantes en tiempo de compilación) en una instrucción de prueba de compilación
condicional.
Para corregir este error
1. Reemplace la variable con un literal.
2. Reemplace la variable con una variable de compilación condicional.
Vea también
Referencia
@cc_on (Instrucción)
@if...@elif...@else...@end (Instrucción)
@set (Instrucción)
Conceptos
Variables de compilación condicional
Otros recursos
Compilación condicional
JScript 8.0

JS1032: Se esperaba '@'


JS1032: Expected '@'
Una variable que se debería utilizar con instrucciones de compilación condicional utiliza la instrucción @set, pero no tiene un
signo "@" delante del nombre de la variable.
Para corregir este error
Agregue el símbolo de arroba (@) inmediatamente antes del nombre de la variable. Por ejemplo:

@set @myvar = 1

Vea también
Referencia
@set (Instrucción)
Conceptos
Variables de compilación condicional
Otros recursos
Compilación condicional
JScript 8.0

JS1033: Se esperaba 'catch'


JS1033: Expected 'catch'
Un bloque try de control de excepciones no incluye la instrucción catch asociada. Para un funcionamiento correcto, el
mecanismo de control de excepciones requiere que tanto el código que pueda fallar como el código que no se llegará a
ejecutar de producirse una excepción queden ajustados con un bloque try. Las excepciones se producen desde el bloque try
con la instrucción throw y se interceptan fuera del bloque try con una o varias instrucciones catch.
Para corregir este error
1. Agregue el bloque catch asociado.
2. Intente utilizar un bloque finally en lugar de un bloque catch.
Vea también
Referencia
try...catch...finally (Instrucción)
Error (Objeto)
JScript 8.0

JS1034: La instrucción 'else' no es válida; no se definió la


instrucción 'if'
JS1034: Unmatched 'else'; no 'if' defined
Se ha utilizado una instrucción else sin una instrucción if coincidente. La instrucción if va seguida de una instrucción o una
instrucción compuesta, seguida, a su vez, de una instrucción else opcional. Éste es el único contexto en el que puede aparecer
la instrucción else.
Una instrucción compuesta va encerrada explícitamente entre llaves. El compilador no tiene en cuenta las convenciones de
tabulación, con lo que se mejora la legibilidad del código.
Para corregir este error
1. Encierre entre llaves el código que sigue a la instrucción if.
2. Agregue una instrucción if antes de la instrucción else.
Vea también
Referencia
if...else (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1100: Se esperaba ','


JS1100: Expected ','
Falta una coma imprescindible entre los parámetros de una declaración de función.
Para corregir este error
Utilice una coma para separar cada parámetro en la declaración de función.

Vea también
Referencia
function (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1101: El modificador de visibilidad ya se ha definido


JS1101: Visibility modifier already defined
Se ha aplicado varias veces un modificador de visibilidad a una expresión. Las aplicaciones adicionales del modificador no
surten ningún efecto.
Para corregir este error
Reduzca a una el número de veces que se aplica el modificador de visibilidad.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Modificadores de JScript
Otros recursos
Referencia de JScript
JScript 8.0

JS1102: Modificador de visibilidad no válido


JS1102: Invalid visibility modifier
Existe un modificador de visibilidad en un contexto inadecuado. Esto puede ocurrir cuando se aplica un modificador a una
expresión que no puede tomar el modificador o cuando se utiliza un modificador para un miembro de una clase o interfaz que
ya tienen un modificador incompatible.
Para corregir este error
1. Quite el modificador de visibilidad o utilice otro modificador.
2. Asegúrese de que los modificadores de visibilidad aplicados a los miembros de la clase coinciden con la visibilidad de la
clase.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Modificadores de JScript
Otros recursos
Referencia de JScript
JScript 8.0

JS1103: Falta la instrucción 'case' o 'default'


JS1103: Missing 'case' or 'default' statement
La primera línea del código dentro de un bloque de instrucción switch no comienza con una palabra clave case o default.
Para corregir este error
Agregue una palabra clave case o default después de la instrucción switch.

Vea también
Referencia
switch (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1104: La instrucción '@end' no es válida; no se definió la


instrucción '@if'
JS1104: Unmatched '@end'; no '@if' defined
Se ha utilizado una instrucción @end sin una instrucción @if coincidente. Puesto que la instrucción @end termina un bloque
@if...@end, cada instrucción @if debe tener una instrucción @end coincidente y viceversa.
Para corregir este error
Asegúrese de que cada instrucción @end va precedida de una instrucción @if.
Vea también
Referencia
@if...@elif...@else...@end (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1105: La instrucción '@else' no es válida; no se definió la


instrucción '@if'
JS1105: Unmatched '@else'; no '@if' defined
Se ha utilizado una instrucción @else sin una instrucción @if coincidente. La instrucción @else sólo debe aparecer dentro de
un bloque @if...@end.
Para corregir este error
Asegúrese de que la instrucción @else aparece sólo dentro de un bloque @if...@end.
Vea también
Referencia
@if...@elif...@else...@end (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1106: La instrucción '@elif' no es válida; no se definió la


instrucción '@if'
JS1106: Unmatched '@elif'; no '@if' defined
Se ha utilizado una instrucción @elif sin una instrucción @if coincidente. La instrucción @elif sólo debe aparecer dentro de
un bloque @if...@end.
Para corregir este error
Asegúrese de que la instrucción @elif aparece sólo dentro de un bloque @if...@end.
Vea también
Referencia
@if...@elif...@else...@end (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1107: Se esperaban más caracteres de código fuente


JS1107: Expecting more source characters
Una línea de código termina antes de que se cierre la expresión. Este error se produce cuando, siendo necesario definir el inicio
y el fin de una expresión en una misma línea, ésta se ha dividido en dos o más líneas.
Para corregir este error
Proporciónele a la expresión un fin coincidente en la misma línea en que se inicia.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1108: Modificador de visibilidad no compatible


JS1108: Incompatible visibility modifier
Se ha aplicado un modificador de visibilidad a una clase o interfaz que no pueden tomar ese modificador o a un miembro de
una clase o interfaz definidas con un modificador general incompatible.
Para corregir este error
1. Quite el modificador de visibilidad o utilice otro modificador.
2. Asegúrese de que los modificadores de visibilidad aplicados a los miembros de la clase coinciden con la visibilidad de la
clase.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Modificadores de JScript
Otros recursos
Referencia de JScript
Objetos basados en clases
JScript 8.0

JS1109: Definición de clase no permitida en este contexto


JS1109: Class definition not allowed in this context
Existe una declaración de clase en un contexto inadecuado. Las declaraciones de clase se admiten únicamente en el bloque de
programa principal, dentro de otras clases o paquetes o en funciones.
Para corregir este error
Defina la clase en el bloque de programa principal, dentro de otra clase, un paquete o en una función.
Vea también
Referencia
class (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1110: La expresión debe ser una constante en tiempo de


compilación
JS1110: Expression must be a compile time constant
En un contexto donde sólo se permiten constantes de tiempo de compilación, hay una expresión que no está definida en
tiempo de compilación.
Para corregir este error
Utilice únicamente constantes de tiempo de compilación para dicho contexto.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1111: Identificador en uso


JS1111: Identifier already in use
El nombre de un identificador se repite en una expresión.
Para corregir este error
1. Si ambas instancias hacen referencia al mismo identificador, quite la segunda definición del identificador.
2. Si los identificadores deben ser diferentes, deles nombres únicos.

Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Variables y constantes de JScript
Referencia de JScript
JScript 8.0

JS1112: Se esperaba el nombre de tipo


JS1112: Type name expected
Se ha escrito de forma incorrecta o se ha omitido un nombre de tipo necesario. En la definición de una variable, constante,
función o parámetro, los nombres de tipo son necesarios después del signo de dos puntos.
Para corregir este error
Asegúrese de estar utilizando un identificador de tipo de datos válido donde se espera un nombre de tipo.
Vea también
Conceptos
Anotaciones de tipo
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1113: Sólo es válido dentro de una definición de clase


JS1113: Only valid inside a class definition
Hay fuera de una definición de clase una directiva o palabra clave válida únicamente dentro de una definición de clase.
Para corregir este error
1. Quite el término.
2. Asegúrese de que el código está dentro de una definición de clase.

Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Objetos basados en clases
Referencia de JScript
JScript 8.0

JS1114: Directiva de posición desconocida


JS1114: Unknown position directive
El código ha pasado un argumento no válido a la directiva de posición. Los argumentos válidos son end, file=, line= y
column=.
Para corregir este error
Asegúrese de que se utilizan únicamente argumentos válidos con la directiva de posición.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Directivas
JScript 8.0

JS1115: Es posible que la directiva no esté seguida por otro


código en la misma línea
JS1115: Directive may not be followed by other code on the same line
Hay código adicional detrás de una directiva.
Para corregir este error
Divida la línea en dos después de la directiva.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Directivas
JScript 8.0

JS1118: Directiva del depurador incorrecta o posición


incorrecta para la directiva
JS1118: Wrong debugger directive or wrong position for the directive
El código ha pasado un argumento no válido a la directiva @debug. Los argumentos válidos son on y off.
O bien
El código contiene una directiva no permitida.
Para corregir este error
1. Asegúrese de que el argumento pasado a la directiva @debug es on u off.
2. O bien
3. Mueva la directiva a otra ubicación.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Directivas
JScript 8.0

JS1119: Las directivas de posición no se pueden anidar


JS1119: Position directives cannot be nested
El código contiene directivas @position anidadas.
Para corregir este error
Cierre cada directiva @position antes de iniciar otra nueva.

Vea también
Referencia
@position (Directiva)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1120: Definición circular


JS1120: Circular definition
El código ha definido una clase o interfaz con respecto a sí misma. Esto puede ocurrir si el código contiene dos clases y cada
una amplía a la otra.
Para corregir este error
Asegúrese de que, al ampliar una clase o interfaz, la clase base o interfaz no depende de la clase o interfaz que se va a
definir.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Objetos basados en clases
Referencia de JScript
JScript 8.0

JS1121: En desuso
JS1121: Deprecated
El código contiene una expresión obsoleta. Existe otra expresión que realiza la misma tarea. Utilice la nueva alternativa, ya que
la compatibilidad con expresiones obsoletas puede desaparecer en versiones futuras del lenguaje.
Para corregir este error
1. Utilice el método encodeURI en lugar del método escape.
2. Utilice el método getFullYear en lugar del método getYear.
3. Utilice el método setFullYear en lugar del método setYear.
4. Utilice el método substring en lugar del método substr.
5. Utilice el método toUTCString en lugar del método toGMTString.
6. Utilice el método decodeURI en lugar del método unescape.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1122: No se puede utilizar 'this' en el contexto actual


JS1122: It is invalid to use 'this' in current context
El código utiliza this en una clase o función miembro static.
Para corregir este error
1. Reemplace this por una referencia completa a una instancia concreta de la clase.
2. Quite el modificador static.

Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Objetos basados en clases
Referencia de JScript
JScript 8.0

JS1123: No se puede obtener acceso desde este ámbito


JS1123: Not accessible from this scope
Una instrucción está intentando tener acceso a un miembro de un objeto, pero ese miembro tiene modificadores de visibilidad
definidos que impiden que se pueda tener acceso a él desde el ámbito actual. Por ejemplo, no se puede tener acceso a un
campo privado desde fuera de una clase.
Para corregir este error
1. Tenga acceso al miembro de otro modo; por ejemplo, a través de un método public.
2. Cambie los modificadores del miembro al que el código tiene acceso.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Objetos basados en clases
Referencia de JScript
JScript 8.0

JS1124: Sólo una función constructora puede tener el mismo


nombre que la clase en la que aparece
JS1124: Only a constructor function can have the same name as the class it appears in
Un método que no es constructor tiene el mismo nombre que su clase.
Para corregir este error
1. Convierta el método en constructor eliminando el tipo devuelto y las instrucciones return.
2. Cambie el nombre del método.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Objetos basados en clases
Referencia de JScript
JScript 8.0

JS1128: La clase debe proporcionar implementación


JS1128: Class must provide implementation
Un método final o un método en una clase final no tiene un cuerpo asociado.
Para corregir este error
1. Proporcione un cuerpo para el método.
2. Quite el modificador final.

Vea también
Conceptos
Modificadores de JScript
Solución de problemas en las secuencias de comandos
Otros recursos
Objetos basados en clases
Referencia de JScript
JScript 8.0

JS1129: Se esperaba un nombre de interfaz


JS1129: Interface name expected
Una clase definida implementa una interfaz inexistente.
Para corregir este error
Proporcione el nombre de una interfaz válida después de la palabra clave implements de la definición de clase.

Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Objetos basados en clases
Referencia de JScript
JScript 8.0

JS1133: Nunca se alcanzará la cláusula Catch


JS1133: Catch clause will never be reached
Hay un bloque catch detrás de otro bloque catch que intercepta todos los errores. Una instrucción catch interceptará todos
los errores cuando el argumento de la instrucción no tenga un tipo específico.
Para corregir este error
Examine todas las instrucciones catch para asegurarse de que sólo interceptan cada tipo una vez y de que la última
instrucción catch intercepta los errores sin tipo.
Vea también
Referencia
try...catch...finally (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1134: No se puede extender el tipo


JS1134: Type cannot be extended
Una expresión intenta ampliar un tipo o clase que tiene el modificador final.
Para corregir este error
1. No intente ampliar el tipo o clase.
2. Quite el modificador final de la clase.

Vea también
Conceptos
Modificadores de JScript
Solución de problemas en las secuencias de comandos
Otros recursos
Objetos basados en clases
Referencia de JScript
JScript 8.0

JS1135: Variable no declarada


JS1135: Variable has not been declared
Una expresión incluye una variable que no se ha definido con una instrucción var o que tiene un nombre escrito
incorrectamente, y el código está compilado en modo rápido. Los programas compilados en modo rápido deben tener todas
las variables declaradas de forma explícita.
El modo rápido se puede desactivar para los programas compilados con el compilador de línea de comandos.
Para corregir este error
1. Asegúrese de que define todas las variables.
2. Asegúrese de que todos los identificadores están escritos correctamente.
3. Compile el programa con la opción /fast- para desactivar el modo rápido. (Sólo para la compilación de la línea de
comandos.)

Vea también
Referencia
/fast
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Variables y constantes de JScript
Referencia de JScript
JScript 8.0

JS1136: El hecho de dejar variables sin inicializar es peligroso y


ralentiza su uso
JS1136: Leaving variables uninitialized is dangerous and makes them slow to use
El hecho de dejar variables sin inicializar es peligroso y ralentiza su uso. ¿Realmente desea dejar esta variable sin
inicializar?
Una variable definida con la instrucción var no tiene un tipo especificado o no se ha inicializado antes de utilizarla.
Para corregir este error
1. Utilice la anotación de tipo para las variables.
2. Inicialice todas las variables antes de utilizarlas.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Variables y constantes de JScript
Referencia de JScript
JScript 8.0

JS1137: Nueva palabra reservada que no se debe utilizar como


identificador
JS1137: This is a new reserved word and should not be used as an identifier
El código ha utilizado una palabra reservada nueva como nombre de un identificador.
Para corregir este error
Cambie el nombre del identificador de forma que no incluya palabras reservadas.
Vea también
Conceptos
Palabras reservadas de JScript (JScript)
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1140: No se permite en una llamada a un constructor de clase


base
JS1140: Not allowed in a call to a base class constructor
El código ha intentado pasar una propiedad de la clase actual al constructor de la clase base, lo cual no está permitido porque
las propiedades de la clase actual no existirán hasta que se cree la clase base.
Para corregir este error
Asegúrese de que ninguna de las propiedades de la clase que se va a crear se pasan al constructor de la clase base.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Objetos basados en clases
Referencia de JScript
JScript 8.0

JS1141: No se puede llamar directamente al método


constructor de una clase o al método captador o establecedor
de una propiedad
JS1141: This constructor or property getter/setter method is not meant to be called directly
Una expresión ha llamado al método constructor de una clase directamente.
O bien
Una expresión ha llamado al método captador o establecedor de una propiedad directamente.
No se puede llamar directamente a ningún método.
Para corregir este error
1. No llame al método constructor.
O bien
2. Tenga acceso a la propiedad utilizando la sintaxis ".".
Vea también
Referencia
function get (Instrucción)
function set (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Objetos basados en clases
JScript 8.0

JS1142: Los métodos get y set de esta propiedad no coinciden


entre sí
JS1142: The get and set methods of this property do not match each other
El código define los descriptores de acceso get y set de una propiedad. Sin embargo, el tipo de datos devuelto del descriptor
de acceso get no es el mismo que el tipo de parámetro del descriptor de acceso set.
Para corregir este error
Asegúrese de que el tipo de valor devuelto del descriptor de acceso get coincide con el tipo de argumento del descriptor
de acceso set.
Vea también
Referencia
function get (Instrucción)
function set (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1143: Una clase attribute personalizada se debe derivar de


System.Attribute
JS1143: A custom attribute class must derive from System.Attribute
Una clase que se utiliza como atributo personalizado no se deriva de System.Attribute. Sólo las clases que tienen
System.Attribute como clase base se pueden utilizar como atributos personalizados.
Para corregir este error
Asegúrese de que la clase de atributo personalizado tiene System.Attribute como clase base.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1144: Sólo se permiten tipos primitivos en un atributo


personalizado
JS1144: Only primitive types are allowed in a custom attribute
Una expresión ha intentado pasar a un constructor de atributos personalizados un elemento que no es un tipo primitivo, o bien
ha utilizado un elemento que no es un atributo en un lugar donde se esperaba un atributo.
Para corregir este error
Asegúrese de que la expresión utiliza un atributo y pasa únicamente tipos primitivos al constructor de atributos
personalizados.
Vea también
Conceptos
Escribir atributos personalizados
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1146: Clase o constructor de atributo personalizado


desconocido
JS1146: Unknown custom attribute class or constructor
El código utiliza un elemento que no es un atributo ni un constructor de atributos personalizados en un lugar en el que se
esperaba un atributo.
Para corregir este error
Asegúrese de que el código utiliza un constructor de atributo o un constructor de atributo personalizado en este
contexto.
Vea también
Conceptos
Escribir atributos personalizados
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1148: Hay demasiados argumentos


JS1148: There are too many arguments
Hay demasiados argumentos. Los argumentos adicionales se omitirán.
Una expresión ha pasado más argumentos a una función o método de los especificados en la definición de la función o
método.
Para corregir este error
1. Utilice el número de argumentos correcto para una función o método.
2. Compruebe que no haya una expresión con argumentos adicionales.
Vea también
Referencia
function (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1149: La instrucción with utiliza este nombre de forma


ambigua
JS1149: The with statement has made the use of this name ambiguous
Una expresión utiliza la instrucción with para tener acceso a una clase que tiene un miembro con el mismo nombre que un
identificador en el ámbito actual. El compilador no puede distinguir el identificador al que desea tener acceso.
Para corregir este error
1. Cambie el nombre del miembro de la clase o del identificador del ámbito actual.
2. Evite el uso de la instrucción with.
Vea también
Referencia
with (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1150: La presencia de eval convierte el uso de este nombre en


ambiguo
JS1150: The presence of eval has made the use of this name ambiguous
El programa utiliza una instrucción eval y se ha compilado con el modo rápido desactivado.
Cuando el modo rápido está desactivado, la instrucción eval permite declarar nuevas variable en tiempo de ejecución con
ámbito local. Estas nuevas variables pueden prevalecer sobre las variables globales, las cuales hacen referencia a una variable
no definida de forma explícita en el ámbito local potencialmente ambiguo.
Para corregir este error
1. Compile con la opción fast activada.
2. Evite el uso de la instrucción eval.
3. Utilice únicamente las variables disponibles en el ámbito local actual.
Vea también
Referencia
eval (Método de JScript)
/fast
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1151: El objeto no tiene tal miembro


JS1151: Object does not have such a member
Una expresión hace referencia a un miembro de un objeto basado en una clase, pero el objeto en cuestión no tiene un
miembro con ese nombre.
Si el código está incluido en una página ASP.NET, es posible que defina una función constructora dentro de un bloque <script
runat="server"> que utiliza la instrucción this. El modificador expando debe aplicarse a cada definición de función
constructora en un bloque <script runat="server">.
Por ejemplo, en el código siguiente de una página de ASP.NET se utiliza una función constructora marcada con el modificador
expando.

<script runat="server">
expando function Person(name) {
// If the expando modifier was not applied to the definition of Person,
// the this statment in the following line of code would generate error
// JS1151

this.name = name;
}
</script>

<%
var fred = new Person("Fred");
Response.Write(fred.name);
%>

Para corregir este error


1. Asegúrese de que la expresión hace referencia a un miembro existente del objeto basado en una clase y de que el
nombre del miembro está correctamente escrito.
2. Asegúrese de aplicar el modificador expando a cada declaración de función constructora de un bloque <script
runat="server">.
Vea también
Referencia
this (Instrucción)
expando (Modificador)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Objetos basados en clases
JScript 8.0

JS1152: No se puede definir la propiedad Item en una clase


Expando
JS1152: Cannot define the property Item on an Expando class
No se puede definir la propiedad Item en una clase Expando. El elemento está reservado para los campos expando.
Hay un miembro de la clase expando denominado Item, algo que no está permitido porque da lugar a un conflicto con la
propiedad Item, definida implícitamente para las clases expando.
Para corregir este error
Cámbiele el nombre al miembro de la clase denominado Item.
Vea también
Referencia
expando (Modificador)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Objetos basados en clases
JScript 8.0

JS1153: No se puede definir get_Item o set_Item en una clase


Expando
JS1153: Cannot define get_Item or set_Item on an Expando class
No se puede definir get_Item o set_Item en una clase Expando. Los métodos están reservados para los campos
expando.
Hay un miembro de la clase expando denominado get_Item o set_Item, algo que no está permitido porque da lugar a un
conflicto con las propiedades get_Item o set_Item, definidas implícitamente para las clases expando.
Para corregir este error
Cámbiele el nombre al miembro de la clase denominado get_Item o set_Item.
Vea también
Referencia
expando (Modificador)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Objetos basados en clases
JScript 8.0

JS1154: La clase base que define get_Item o set_Item no puede


crear la clase expando
JS1155: Base class defines get_Item or set_Item, cannot create expando class
La clase base que define get_Item o set_Item no puede crear la clase expando. Los métodos están reservados para
los campos expando.
Una clase expando amplía una clase base con un miembro denominado get_Item o set_Item, algo que no está permitido
porque da lugar a un conflicto con las propiedades get_Item o set_Item, definidas implícitamente para las clases expando.
Para corregir este error
1. Cámbiele el nombre al miembro de la clase base denominado get_Item o set_Item.
2. No herede de la clase base.
3. Quite el modificador expando de la definición de clase.
Vea también
Referencia
expando (Modificador)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Objetos basados en clases
JScript 8.0

JS1156: Ya hay una clase base marcada como expando; la


especificación actual se omitirá
JS1156: A base class is already marked expando; current specification will be ignored
Hay una clase, marcada con el modificador expando, que intenta ampliar una clase base expando. Las clases derivadas de una
clase base expando son expando automáticamente, por lo que no es necesario agregar el modificador expand de forma
explícita.
Para corregir este error
Quite el modificador expando de la clase derivada.
Vea también
Referencia
expando (Modificador)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Objetos basados en clases
JScript 8.0

JS1157: Un método abstract no puede ser privado


JS1157: An abstract method cannot be private
Hay un método que tiene los modificadores abstract y private. Esto no se permite porque los métodos private son accesibles
desde dentro de la clase, pero los métodos abstract se heredan desde fuera de la clase.
Para corregir este error
Quite uno de los modificadores abstract o private de la declaración del método.
Vea también
Referencia
abstract (Modificador)
private (Modificador)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Objetos basados en clases
JScript 8.0

JS1158: Los objetos de este tipo no se pueden indizar


JS1158: Objects of this type are not indexable
El código ha intentado indizar un elemento en un objeto, pero el tipo de datos del objeto no admite indización.
A los elementos de objetos indizables, como matrices y objetos de JScript, se tiene acceso utilizando la notación [].
Para corregir este error
1. Cambie el tipo de datos del objeto.
2. Quite el descriptor de acceso del índice.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Matrices con tipo
Otros recursos
Referencia de JScript
Objetos de JScript
JScript 8.0

JS1159: Error de sintaxis. Use 'static classname {...}' para definir


un inicializador de clase
JS1159: Syntax error. Use 'static classname {...}' to define a class initializer
Hay un bloque de código justo detrás de un modificador incluido en una clase. Los modificadores de JScript se puede aplicar
únicamente a miembros de clase. Hay dos situaciones en que se puede producir este error:
Ha intentado definir un inicializador de clase, pero ha dejado fuera el nombre de clase.
Ha intentado definir un método o un descriptor de acceso de una propiedad, pero ha dejado fuera la instrucción
function, function get o function set.
Para corregir este error
1. Si intenta definir un inicializador de clase, utilice la sintaxis correcta para la instrucción static.
2. Si desea definir el descriptor de acceso de un método o una propiedad, utilice la sintaxis correcta para la instrucción
function, function get o function set.
Vea también
Referencia
static (Instrucción)
function (Instrucción)
function get (Instrucción)
function set (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Modificadores de JScript
Otros recursos
Referencia de JScript
JScript 8.0

JS1160: La lista de atributos no se aplica al contexto actual


JS1160: The list of attributes does not apply to the current context
El código especifica una lista de atributos que no se aplican al contexto actual.
Para corregir este error
Asegúrese de que utiliza sólo atributos que se apliquen al contexto actual.

Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1161: Sólo se permiten clases dentro de un paquete


JS1161: Only classes are allowed inside a package
El código declara una función, variable o constante dentro de un paquete. En un paquete, sólo se pueden definir clases e
interfaces.
Para corregir este error
Quite todas las definiciones del paquete que no sean de clase o interfaz.
Vea también
Referencia
package (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Objetos de JScript
JScript 8.0

JS1162: Las clases expando no deben implementar IEnumerable


JS1162: Expando classes should not implement IEnumerable
Las clases expando no deben implementar IEnumerable. La interfaz está definida implícitamente en las clases
expando.
Una clase expando implementa de forma explícita IEnumerable. Esto no es necesario, puesto que las clases con el modificador
expando implementan IEnumerable implícitamente.
Para corregir este error
No implemente IEnumerable explícitamente.
Vea también
Referencia
expando (Modificador)
IEnumerable Interface
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Objetos basados en clases
JScript 8.0

JS1163: El miembro especificado no es compatible con CLS


JS1163: The specified member is not CLS compliant
El programa contiene el atributo CLSCompliantAttribute, y el compilador ha detectado un miembro de una clase que no es
compatible con Common Language Specification (CLS). Algunas de las causas posibles de este error son:
El nombre del miembro no es compatible con CLS. Los nombres compatibles con CLS no pueden comenzar con un
carácter de subrayado (_), contener el signo de dólar ($) ni diferenciarse del nombre de otro miembro público
únicamente por el uso de mayúsculas y minúsculas.
Si el miembro es un método público, los tipos de datos que no están disponibles en Common Language Runtime sirven
para anotar el tipo de los parámetros o el tipo de valor devuelto.
Si el miembro es un campo o una propiedad, los tipos de datos que no están disponibles en Common Language Runtime
sirven para anotar el tipo de un campo o propiedad.
Hay varios motivos por los que un tipo de datos puede no estar disponible en Common Language Runtime.
El tipo está definido dentro de la clase, pero no se tiene acceso público a él.
El tipo está definido pero no se ha marcado como compatible con CLS.
El tipo es un tipo primitivo no compatible con CLS. Por ejemplo, uint es un tipo primitivo no compatible con CLS. El tipo
de sistema compatible con CLS correspondiente es System.UInt32.
El tipo es un objeto JScript intrínseco, y ninguno de estos objetos es compatible con CLS. Los objetos JScript que se
utilizan habitualmente, Array, Date, Error, RegExp, y Function, se corresponden con los tipos del sistema compatibles
con CLS, System.Array, System.DateTime, System.Exception, System.Text.RegularExpressions.RegEx y
System.EventHandler.
Para corregir este error
1. Asegúrese de que el nombre del miembro no comienza con un carácter de subrayado (_), no contiene el signo de dólar
($) y no se diferencia del nombre de otro miembro únicamente por el uso de mayúsculas y minúsculas.
2. Asegúrese de que los parámetros o tipos devueltos de los métodos públicos y los tipos de los campos y propiedades
públicos son tipos de datos de Common Language Runtime o clases accesibles públicamente que están marcadas como
compatibles con CLS.
Vea también
Referencia
CLSCompliantAttribute Class
Conceptos
Solución de problemas en las secuencias de comandos
Escribir código compatible con CLS
Common Language Specification
Otros recursos
Referencia de JScript
JScript 8.0

JS1164: No se puede borrar el miembro


JS1164: Member is not deleteable
El código ha intentado eliminar (delete) un miembro de un objeto que no se puede eliminar. Sólo se pueden eliminar las
propiedades expando (propiedades que se han agregado dinámicamente a un objeto).
Para corregir este error
No intente eliminar el miembro del objeto.
Vea también
Referencia
delete (Operador)
expando (Modificador)
Conceptos
Solución de problemas en las secuencias de comandos
Object (Objeto de JScript)
Otros recursos
Referencia de JScript
JScript 8.0

JS1165: Se esperaba un nombre de paquete


JS1165: Package name expected
Detrás de la instrucción import no hay un nombre de paquete válido.
Para corregir este error
Incluya un nombre de paquete válido después de la instrucción import.

Vea también
Referencia
import (Instrucción)
package (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1169: La expresión no tiene efecto


JS1169: Expression has no effect
Existe una expresión que devuelve un valor que no se utiliza nunca.
Para corregir este error
1. Quite la expresión.
2. Utilice el valor de la expresión como argumento para una función u operador.

Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Expresiones de JScript
Otros recursos
Referencia de JScript
JScript 8.0

JS1170: Oculta otro miembro declarado en la clase base


JS1170: Hides another member declared in the base class
Un miembro de una clase derivada oculta (redefine el significado de) un campo, clase, interfaz o enumeración definidos en una
clase base. Esto no está permitido; sólo se pueden ocultar métodos y propiedades.
Para corregir este error
Asegúrese de que ningún miembro de una clase derivada oculta una definición de campo de clase base, clase, interfaz o
enumeración.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Objetos basados en clases
JScript 8.0

JS1171: No se puede cambiar la especificación de visibilidad de


un método base
JS1171: Cannot change visibility specification of a base method
Un método de una clase derivada reemplaza un método de clase base, y los modificadores de visibilidad de los dos métodos
son diferentes. Esto no está permitido porque no se puede modificar la visibilidad de un miembro de una clase base.
Para corregir este error
Cambie el modificador de visibilidad del método de la clase derivada para que coincida con la visibilidad del método de
la clase base.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Modificadores de JScript
Otros recursos
Referencia de JScript
JScript 8.0

JS1172: El método oculta el método abstract en una clase base


JS1172: Method hides abstract method in a base class
En una clase derivada hay un método definido con el modificador hide que tiene el mismo nombre que un método abstracto
de la clase base. Esto no está permitido porque un método abstracto requiere una implementación de la clase derivada, y al
ocultar un método se impide la implementación.
Para corregir este error
1. Quite el modificador abstract del método de la clase base y especifique el método con una implementación.
2. Quite el modificador hide del método de la clase derivada.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Modificadores de JScript
Otros recursos
Referencia de JScript
JScript 8.0

JS1173: El método coincide con otro de la clase base


JS1173: Method matches a method in a base class
El método coincide con otro de la clase base. Especifique 'override' o 'hide' para suprimir este mensaje.
Se ha definido un método en una clase derivada sin ningún modificador de versión segura que coincida con un método de la
clase base. Además, el programa se ha compilado con la opción /versionsafe. Cuando se compila con la opción /versionsafe,
cada método que coincida con un método de la clase base debe utilizar un modificador de versión segura (hide u override).
Para corregir este error
Aplique el modificador de versión segura apropiado a la declaración del método.
Vea también
Referencia
/versionsafe
hide (Modificador)
override (Modificador)
Conceptos
Solución de problemas en las secuencias de comandos
Modificadores de JScript
Otros recursos
Referencia de JScript
JScript 8.0

JS1174: El método coincide con otro que no se puede


sobrescribir en la clase base
JS1174: Method matches a non-overridable method in a base class
El método coincide con otro que no se puede sobrescribir en una clase base. Especifique 'hide' para suprimir este
mensaje.
Hay un método de clase base con el modificador final que coincide con un método de una clase derivada. Además, el método
de la clase derivada tiene un modificador override o el código se está compilando con la opción /versionsafe. Un método
final no se puede reemplazar; además, si se va a utilizar la opción /versionsafe, se deberá especificar explícitamente el
modificador hide para el método de la clase derivada.
Para corregir este error
Utilice el modificador hide para el método de la clase derivada.
Vea también
Referencia
/versionsafe
hide (Modificador)
override (Modificador)
final (Modificador)
Conceptos
Solución de problemas en las secuencias de comandos
Modificadores de JScript
Otros recursos
Referencia de JScript
JScript 8.0

JS1175: No hay ningún miembro en una clase base para


especificar como hide
JS1175: There is no member in a base class to hide
Hay un método de clase derivada con el modificador hide, pero no hay ningún método coincidente en la clase base. No puede
ocultar un método que no existe.
Para corregir este error
1. Quite el modificador hide de la declaración del método.
O bien
2. Agregue un método coincidente a la clase base.

Vea también
Referencia
hide (Modificador)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1176: El método de la clase base tiene un tipo de valor


devuelto diferente
JS1176: Method in base has a different return type
Hay una clase derivada que implementa una interfaz o amplía una clase base. La clase derivada tiene un método con el mismo
nombre y lista de parámetros que un método de la interfaz o clase base, pero el tipo de valor devuelto es diferente. No puede
haber dos métodos con el mismo nombre y la misma lista de parámetros, pero con tipos devueltos diferentes.
Para corregir este error
1. Cambie el nombre de la función en la clase derivada.
2. Cambie los tipos devueltos o los métodos para que coincidan en la clase derivada y en la interfaz o clase base.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Objetos basados en clases
JScript 8.0

JS1177: Conflictos con la propiedad


JS1177: Clashes with property
Se ha definido un campo o método en un clase derivada con el mismo nombre que una propiedad de la clase base. Esto crea
ambigüedad a la hora de utilizar el nombre para hacer referencia a un miembro de la clase derivada, lo cual no está permitido.
Para corregir este error
Cambie el nombre de la propiedad de la clase base o del miembro de la clase derivada.
Vea también
Referencia
function set (Instrucción)
function get (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1178: No se pueden utilizar 'override' y 'hide' conjuntamente


JS1178: Cannot use 'override' and 'hide' together
Se ha definido un método con los modificadores override y hide. Sin embargo, cada miembro de la clase sólo puede tener un
modificador de versión segura.
Para corregir este error
Quite override o hide de la declaración del método.
Vea también
Referencia
hide (Modificador)
override (Modificador)
Conceptos
Solución de problemas en las secuencias de comandos
Modificadores de JScript
Otros recursos
Referencia de JScript
JScript 8.0

JS1179: Opción no válida


JS1179: Invalid Option
Hay una expresión que utiliza la directiva @option que no incluye una opción válida. Actualmente no se admite la directiva
@option.
Para corregir este error
No utilice la directiva @option.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1180: No hay ningún método que coincida en una clase base


para especificar como override
JS1180: There is no matching method in a base class to override
Hay un método de clase derivada con el modificador override que no tiene ningún método coincidente en la clase base. No
puede reemplazar un método que no existe.
Para corregir este error
1. Quite el modificador override de la declaración del método.
O bien
2. Agregue un método coincidente a la clase base.

Vea también
Referencia
override (Modificador)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Objetos basados en clases
JScript 8.0

JS1181: No sirve para un constructor


JS1181: Not valid for a constructor
Un constructor de clases utiliza un modificador no válido. Sólo se pueden aplicar a un constructor los modificadores de
visibilidad (public, private, protected e internal), los modificadores de versión segura (hide y override) o los modificadores
final y expando.
Para corregir este error
Utilice un modificador válido para el constructor.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Modificadores de JScript
Otros recursos
Referencia de JScript
Objetos basados en clases
JScript 8.0

JS1182: No se puede devolver un valor desde una función void


o constructor
JS1182: Cannot return a value from a constructor or void function
Una expresión ha intentado devolver un valor desde un constructor o una función void. Las funciones constructoras devuelven
automáticamente un puntero a la función construida; no devuelven un valor. Las funciones que se definen con el tipo de valor
devuelto void no pueden devolver un valor.
Para corregir este error
1. Quite la instrucción return.
2. Especifique un tipo de valor devuelto distinto de void para la función.
Vea también
Referencia
function (Instrucción)
return (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1183: Más de un método o propiedad coincide con esta lista


de argumentos
JS1183: More than one method or property matches this argument list
Una expresión que está llamando a un método o propiedad sobrecargados no encuentra una coincidencia exacta con los tipos
de argumentos que se han pasado. En esta situación, el compilador intenta determinar qué función sobrecargada requiere el
menor número de conversiones de tipos de datos de los argumentos. Este error indica que el compilador ha encontrado varias
funciones que coinciden con los argumentos con el mismo número de conversiones de tipos de datos.
Para corregir este error
Compruebe los tipos de datos aceptados por la función sobrecargada y asegúrese de que los tipos de datos de los
argumentos sólo coinciden con una función sobrecargada.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1183: Más de un constructor coincide con esta lista de


argumentos
JS1184: More than one constructor matches this argument list
Una expresión que está llamando a un constructor sobrecargado no encuentra una coincidencia exacta con los tipos de
argumentos que se han pasado. En esta situación, el compilador intentar determinar qué constructor sobrecargado requiere el
menor número de conversiones de tipos de datos de los argumentos. Este error indica que el compilador ha encontrado varios
constructores que coinciden con los argumentos con el mismo número de conversiones de tipos de datos.
Para corregir este error
Compruebe los tipos de datos aceptados por el constructor sobrecargado y asegúrese de que los tipos de datos de los
argumentos sólo coinciden con un constructor sobrecargado.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Referencia de JScript
JScript 8.0

JS1185: No se puede tener acceso al constructor de clases base


desde este ámbito
JS1185: Base class constructor is not accessible from this scope
Una clase amplía una clase base, y no se puede tener acceso al constructor de la clase base desde el ámbito actual. Esto puede
ocurrir si se utilizan modificadores de visibilidad para la clase base o el constructor de la clase base.
Para corregir este error
1. Utilice un modificador de visibilidad diferente para el constructor de la clase base.
2. Si la clase base está definida con el modificador internal, defina la clase derivada en el mismo paquete que la clase base.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Modificadores de JScript
Otros recursos
Referencia de JScript
JScript 8.0

JS1186: Los literales octales están en desuso


JS1186: Octal literals are deprecated
En el código hay un literal octal que representa un número. En un literal octal, un número entero va precedido de uno o varios
ceros (0). En lugar de literales octales deben usarse literales decimales o hexadecimales.
Para corregir este error
1. Quite los ceros iniciales del número si se trata de un número decimal.
2. Convierta el número octal en decimal o hexadecimal.

Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Datos numéricos
Otros recursos
Referencia de JScript
JScript 8.0

JS1187: La variable podría no inicializarse


JS1187: Variable might not be initialized
Una expresión está teniendo acceso al valor de una variable que no se había inicializado o no se había definido como un tipo
de datos específico.
Para corregir este error
1. Inicialice la variable antes de utilizarla.
2. Declare la variable mediante la anotación de tipo.

Vea también
Referencia
var (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1188: No es válido llamar a un constructor de clases base


desde esta ubicación
JS1188: It is not valid to call a base class constructor from this location
Una expresión está llamando al constructor de clase base, super, desde una ubicación distinta de la primera línea en una
definición de constructor.
Para corregir este error
Asegúrese de que se llama al constructor de la clase base sólo desde la primera línea de una declaración de constructor.
Vea también
Referencia
super (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1189: No es válido utilizar la palabra clave super de esta


forma
JS1189: It is not valid to use the super keyword in this way
Una expresión está utilizando la instrucción super en un miembro de una clase estática. Esto no está permitido porque los
miembros estáticos se asocian a la propia clase, mientras que la instrucción super se utiliza para tener acceso a los miembros
de clase base de la instancia actual de la clase.
Para corregir este error
1. Reemplace super por una referencia completa a una instancia concreta de la clase base.
2. Quite el modificador static.
Vea también
Referencia
super (Instrucción)
static (Modificador)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1190: Es lento y confuso dejar un bloque finally de esta forma


JS1190: It is slow and potentially confusing to leave a finally block this way
Es lento y confuso dejar un bloque finally de esta forma. ¿Es lo que desea?
Hay una instrucción (return o break) que provoca que el control del programa deje el bloque finally, lo que podría tener
consecuencias imprevistas en caso de que exista una instrucción return o break en uno de los bloques try o catch.
El código de un bloque finally siempre se ejecuta después del código del bloque try y (si hay un error) después del código del
bloque catch. Por ejemplo, si se encuentra una instrucción return en un bloque try, el bloque finally se ejecutará antes que la
instrucción return. Si hay otra instrucción return en el bloque finally, se ejecutará y la instrucción return original no se
ejecutará. Para evitar esta situación potencialmente confusa, no utilice una instrucción return en un bloque finally.

function test() {
try {
return(5); // Attempt to return 5.
} catch(e) {
print(e);
} finally {
return(10); // This gets run first, returning 10 instead of 5.
}
}
print(test()); // Prints 10, not 5.

Para corregir este error


1. Asegúrese de que no se utilizan las instrucciones return y break en un bloque finally.
2. Mueva las instrucciones return o break justo detrás del bloque finally, si su intención es ejecutarlas después de los
bloques try y catch.
Vea también
Referencia
try...catch...finally (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1191: Se esperaba ','. Escriba 'identificador : Tipo' en lugar de


'Tipo identificador' para declarar un parámetro con tipo
JS1191: Expected ','. Write 'identifier : Type' rather than 'Type identifier' to declare a typed parameter
Una declaración de función incluye parámetros que no están separados por comas o un parámetro con anotación de tipo que
se ha especificado como Type identifier en lugar de identifier : Type.
Para corregir este error
1. Asegúrese de que todos los parámetros están separados por comas.
2. Especifique los parámetros con anotación de tipo con la sintaxis identifier : Type.

Vea también
Referencia
function (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Funciones de JScript
JScript 8.0

JS1192: La función abstract no puede tener cuerpo


JS1192: Abstract function cannot have body
El cuerpo de una función está asociado a un método o una propiedad, pero el método o propiedad está marcado con el
modificador abstract o está en una interfaz.
Para corregir este error
1. Quite el cuerpo de la función.
2. Cambie los modificadores.
3. Utilice una clase en lugar de una interfaz.

Vea también
Referencia
class (Instrucción)
interface (Instrucción)
Conceptos
Modificadores de JScript
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1193: Se esperaba ',' o ')'


JS1193: Expected ',' or ')'
Falta una coma o un paréntesis de cierre en una llamada a una función, un método o un constructor.
Para corregir este error
Agregue una coma o un paréntesis de cierre.

Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Funciones de JScript
Objetos de JScript
JScript 8.0

JS1194: Se esperaba ',' o ']'


JS1194: Expected ',' or ']'
Falta una coma o un corchete de cierre en una referencia a un elemento de matriz.
Para corregir este error
Agregue una coma o un corchete de cierre.

Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Matrices de JScript
JScript 8.0

JS1195: Se esperaba una expresión


JS1195: Expected expression
En este contexto, se esperaba un valor o una referencia (el resultado de una expresión), pero no se ha proporcionado una
expresión. Puede que el código incluya una instrucción que no devuelve un valor.
Para corregir este error
Asegúrese de que se utiliza una expresión.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Expresiones de JScript
Otros recursos
Referencia de JScript
JScript 8.0

JS1196: No se esperaba ';'


JS1196: Unexpected ';'
En este contexto no se puede utilizar un punto y coma, o la instrucción que finaliza con el punto y coma tiene un error.
Para corregir este error
1. Quite el punto y coma.
2. Asegúrese de que la instrucción que finaliza con el punto y coma no tiene otros errores.

Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Instrucciones de JScript
Otros recursos
Referencia de JScript
JScript 8.0

JS1197: Demasiados errores


JS1197: Too many errors
Demasiados errores El archivo podría no ser un archivo JScript .NET.
El código ha generado demasiados errores. Este error suele deberse a un intento de compilar un archivo que no es de
JScript .NET. También puede deberse a que haya en el código algunos errores de los que el compilador no pueda recuperarse y
esto dé lugar a otros muchos errores.
Para corregir este error
1. Asegúrese de que el archivo que el compilador está compilando es un archivo de JScript .NET.
2. Corrija los primeros errores y vuelva a compilar.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1198: Error de sintaxis. Escriba 'var identifier : Type' en lugar


de 'Type identifier' para declarar una variable de tipo
JS1198: Syntax error. Write 'var identifier : Type' rather than 'Type identifier' to declare a typed variable
El código tiene aparentemente una declaración de campo al estilo C con el formato Type identifier. Para declarar un campo
en JScript, utilice la sintaxis var identifier : Type.
Para corregir este error
Declare los campos utilizando la sintaxis var identifier : Type.

Vea también
Referencia
var (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Objetos basados en clases
JScript 8.0

JS1199: Error de sintaxis. Escriba 'function identifier(...) : Type{'


en lugar de 'Type identifier(...){' para declarar una función con
tipo
JS1199: Syntax error. Write 'function identifier(...) : Type{' rather than 'Type identifier(...){' to declare a typed function
El código tiene aparentemente una declaración de método al estilo C con el formato Type identifier(...). Para declarar un
método en JScript, utilice la sintaxis function identifier(...) : Type .
Para corregir este error
Declare los métodos utilizando la sintaxis function identifier(...) : Type .

Vea también
Referencia
function (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Objetos basados en clases
JScript 8.0

JS1200: Declaración de propiedad no válida


JS1200: Invalid property declaration
Declaración de propiedad no válida. La función getter no debe tener argumentos y la función setter debe tener un
argumento.
El código define una función getter de propiedad con uno o varios parámetros, o define una función setter de propiedad sin
parámetros o con varios parámetros. La definición de una función getter no debe tener parámetros, mientras que la función
setter debe tener exactamente un parámetro.
Para corregir este error
1. Defina funciones getter de propiedad sin parámetros.
2. Defina funciones setter de propiedad con sólo un parámetro.

Vea también
Referencia
function get (Instrucción)
function set (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Objetos basados en clases
JScript 8.0

JS1203: La expresión no tiene una dirección


JS1203: Expression does not have an address
En el código, un signo de Y comercial (&) va seguido de una expresión que no tiene dirección. El signo de Y comercial debe
preceder únicamente a un nombre de variable (que tenga una dirección), y sólo se debe utilizar para pasar la variable por
referencia a una función que acepte el parámetro por referencia.
Cuando se pasan variables por referencia, la función puede cambiar el valor de la variable.
Nota
JScript no permite que se definan funciones con parámetros de referencia. JScript proporciona el signo de "y" comercial para
permitir llamadas a objetos externos que tomen parámetros de referencia.

Para corregir este error


Asegúrese de que el signo de Y comercial (&) precede a un nombre de variable en una llamada a una función, y la
función acepta el parámetro por referencia.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1204: No se han suministrado todos los argumentos


necesarios
JS1204: Not all required arguments have been supplied
El código llama a una función o método con menos argumentos de los que acepta la función o método, según se definió.
Aunque la función o método proporciona valores predeterminados para los argumentos que faltan, es aconsejable especificar
valores para todos los argumentos previstos.
Para corregir este error
Asegúrese de que a la función o método se pasan todos los argumentos necesarios.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1205: La asignación crea una propiedad expando que no se


tiene en cuenta
JS1205: Assignment creates an expando property that is immediately thrown away
El código tiene una asignación a una propiedad inexistente de un objeto, y el objeto no admite propiedades expando. El
compilador intenta crear una propiedad expando, pero no se pueden agregar propiedades al objeto y, por tanto, se rechaza la
propiedad.
Para corregir este error
1. Utilice un objeto que admita propiedades expando.
2. No intente agregar propiedades expando a objetos que no las admitan.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Creación avanzada de clases
Object (Objeto de JScript)
Otros recursos
Referencia de JScript
JScript 8.0

JS1206: ¿Realmente desea escribir una asignación aquí?


JS1206: Did you intend to write an assignment here?
El código tiene un operador de asignación como expresión condicional para una instrucción condicional. Tal vez su intención
fuera utilizar un operador de igualdad o de igualdad estricta.
Para corregir este error
1. Cambie el operador de asignación (=) por el operador de igualdad (==) o por el operador de igualdad estricta (===).
2. Mueva la asignación justo delante de la instrucción condicional y, a continuación, utilice el operando izquierdo del
operador de asignación como expresión condicional.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Estructuras condicionales de JScript
JScript 8.0

JS1207: ¿Realmente desea tener una instrucción vacía para esta


bifurcación de la instrucción if?
JS1207: Did you intend to have an empty statement for this branch of the if statement?
El código tiene una instrucción if seguida de un punto y coma. El punto y coma se interpreta como el terminador de una
instrucción vacía que se ejecuta cuando la expresión condicional de la instrucción if es true.
Para corregir este error
1. Quite el punto y coma.
2. Incluya detrás de la instrucción if un bloque vacío ({}).
Vea también
Referencia
if...else (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1208: La conversión especificada no es posible


JS1208: The specified conversion or coercion is not possible
El código tiene una conversión de tipos que no se pueden efectuar. Esto indica que, en el tipo de conversión de destino, no
existen datos análogos obvios que se correspondan con los datos del tipo de datos original.
Para corregir este error
Asegúrese de que los datos proporcionados son compatibles con el tipo de datos que se va a convertir o con el tipo de
datos destino de la conversión.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Conversión de tipos
Conversión en JScript
Otros recursos
Referencia de JScript
JScript 8.0

JS1209: final y abstract no se pueden utilizar conjuntamente


JS1209: final and abstract cannot be used together
El código tiene una clase o un miembro de una clase marcado con los modificadores final y abstract. Estos modificadores no
se pueden combinar.
Para corregir este error
Utilice el modificador final o el modificador abstract.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Modificadores de JScript
Otros recursos
Referencia de JScript
JScript 8.0

JS1210: Debe ser una instancia


JS1210: Must be an instance
El código está intentando tener acceso a un miembro de una clase no estática mediante el nombre de clase. Sólo los miembros
de clases estáticas se asocian a la propia clase; los miembros no estáticos se asocian a una instancia concreta de la clase y se
tiene acceso a ellos a través de esta instancia.
Para corregir este error
Asegúrese de que a los miembros no estáticos se tiene acceso con una instancia de clase.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Objetos basados en clases
JScript 8.0

JS1212: No puede ser abstract a menos que la clase de


declaración esté marcada como abstract
JS1212: Cannot be abstract unless the declaring class is marked as abstract
El código tiene un miembro que está marcado con el modificador abstract, pero la clase a la que pertenece no está marcada
como abstract. Toda clase que contenga al menos un miembro abstract debe marcarse como abstract.
Para corregir este error
Asegúrese de que todas las clases con miembros abstract están marcadas como abstract.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Modificadores de JScript
Otros recursos
Referencia de JScript
JScript 8.0

JS1213: El tipo base de una enumeración debe ser un tipo


integral primitivo
JS1213: The base type of an enum must be a primitive integral type
El código tiene una enumeración que se ha declarado para que contenga un tipo base subyacente que no sea un tipo integral
primitivo. Los tipos base válidos para una enumeración son los tipos de datos integrales: int, short, long, byte, uint, ushort,
ulong y sbyte.
Para corregir este error
Asegúrese de que el tipo base de cada enumeración es un tipo de datos integral válido.
Vea también
Referencia
enum (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1214: No es posible construir una instancia de una clase


abstract
JS1214: It is not possible to construct an instance of an abstract class
El código ha intentado crear una instancia de una clase abstracta con el operador new. No se pueden crear instancias de las
clases marcadas con el modificador abstract.
Para corregir este error
1. Quite el modificador abstract de la clase.
2. Defina una clase que amplíe la clase abstracta y proporcione una implementación para cada uno de los métodos y
propiedades abstractos.
3. No intente crear una instancia de una clase abstracta.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1215: Al convertir una matriz JScript en una propiedad


System.Array se puede provocar la copia de matriz y asignación
de memoria
JS1215: Converting a JScript Array to a System.Array results in a memory allocation and an array copy
El código convierte el objeto Array JScript en una matriz con tipo (System.Array).
Nota
Esta operación se realiza asignando memoria suficiente para poder almacenar una copia de la matriz con tipo y copiando los
elementos de la matriz JScript en la matriz con tipo.

Por este motivo, las modificaciones realizadas en la matriz con tipo no se reflejan en la matriz JScript a menos que el código
vuelva a copiar la matriz con tipo en la matriz JScript después de realizar las modificaciones.
Para corregir este error
Utilice una conversión de tipos explícita para convertir la matriz JScript en una matriz con tipo.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Conversión de tipos
Otros recursos
Referencia de JScript
Matrices de JScript
JScript 8.0

JS1216: Los métodos static no pueden ser abstract


JS1216: Static methods cannot be abstract
Hay un método que tiene los modificadores static y abstract. Esto no se permite porque los métodos estáticos están
asociados a la propia clase, pero los métodos abstract se heredan desde fuera de la clase.
Para corregir este error
Quite uno de los modificadores static o abstract de la declaración del método.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Modificadores de JScript
Otros recursos
Referencia de JScript
JScript 8.0

JS1217: Los métodos static no pueden ser final


JS1217: Static methods cannot be final
Hay un método que tiene los modificadores static y final. Esto no se permite porque los métodos estáticos ya son finales. Los
métodos estáticos están asociados a la propia clase y, por tanto, no se pueden reemplazar.
Para corregir este error
Quite uno de los modificadores static o final de la declaración del método.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Modificadores de JScript
Otros recursos
Referencia de JScript
JScript 8.0

JS1218: Los métodos static no pueden reemplazar los métodos


de clase base
JS1218: Static methods cannot override base class methods
Hay un método que tiene los modificadores static y override. Esto no se permite porque el método estático está asociado a la
clase actual, y sólo se pueden reemplazar instancias de clases.
Para corregir este error
Quite uno de los modificadores static u override de la declaración del método.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Modificadores de JScript
Otros recursos
Referencia de JScript
JScript 8.0

JS1218: Los métodos static no pueden ocultar los métodos de


clase base
JS1219: Static methods cannot hide base class methods
Hay un método que tiene los modificadores static y hide. Esto no se permite porque el método estático está asociado a la
clase actual, y hide sólo se aplica a miembros asociados a una instancia de la clase.
Para corregir este error
Quite uno de los modificadores static o hide de la declaración del método.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Modificadores de JScript
Otros recursos
Referencia de JScript
JScript 8.0

JS1220: Los métodos expando no pueden reemplazar a los


métodos de clase base
JS1220: Expando methods cannot override base class methods
Hay un método que tiene los modificadores expando y override. Esto no se permite porque el método expando está asociado
a la clase actual, y override sólo se aplica a miembros asociados a una instancia de la clase.
Para corregir este error
Quite uno de los modificadores expando or override de la declaración del método.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Modificadores de JScript
Otros recursos
Referencia de JScript
JScript 8.0

JS1221: Una lista de argumentos de variable debe ser de un


tipo de matriz
JS1221: A variable argument list must be of an array type
La definición de la función tiene una matriz de parámetros (o una lista de argumentos de variable) cuyo tipo no se ha anotado
como matriz con tipo. Una matriz de parámetros debe ser el último parámetro de la declaración de función, debe ir precedida
de puntos suspensivos (...) y debe tener una anotación de tipo de matriz con tipo. Una matriz de parámetros no puede ser un
objeto Array JScript.
Para corregir este error
Anote el tipo de la lista de argumentos de variable como matriz con tipo.
Vea también
Referencia
function (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1222: Los métodos expando no pueden ser abstract


JS1222: Expando methods cannot be abstract
Hay un método que tiene los modificadores expando y abstract. Los métodos expando no pueden ser nunca abstractos.
Para corregir este error
Quite uno de los modificadores expando o abstract de la declaración del método.

Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Modificadores de JScript
Otros recursos
Referencia de JScript
JScript 8.0

JS1223: Una función sin un cuerpo debe ser abstract


JS1223: A function without a body should be abstract
Una función dentro de una clase (un método o propiedad) no contiene cuerpo y no está marcada con el modificador abstract.
Las funciones marcadas con el modificador abstract no deben contener cuerpo, y las funciones con cuerpo no deben estar
marcadas con el modificador abstract.
Para corregir este error
1. Marque la función con el modificador abstract.
2. Agregue un cuerpo a la función.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Modificadores de JScript
Otros recursos
Referencia de JScript
JScript 8.0

JS1224: Este modificador no se puede utilizar en un miembro


de interfaz
JS1224: This modifier cannot be used on an interface member
Un miembro de una interfaz tiene un modificador que no está permitido. Sólo se permite el modificador public para los
miembros de una interfaz.
Para corregir este error
Asegúrese de que el único modificador que se aplica a los miembros de la interfaz es el modificador public.
Vea también
Referencia
interface (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Modificadores de JScript
Otros recursos
Referencia de JScript
JScript 8.0

JS1226: Las variables no se pueden declarar en una interfaz


JS1226: Variables cannot be declared in an interface
Se ha declarado una variable en una interfaz, lo cual no está permitido. Las variables se pueden declarar en clases para crear
campos.
Para corregir este error
Asegúrese de que las declaraciones de interfaz no contienen declaraciones de variables.
Vea también
Referencia
interface (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1227: Las interfaces no se pueden declarar en una interfaz


JS1227: Interfaces cannot be declared in an interface
Una declaración de interfaz está anidada en otra declaración de interfaz, lo cual no está permitido. Sólo se permiten
declaraciones de interfaz en el ámbito global o dentro de un paquete.
Para corregir este error
Asegúrese de que no hay declaraciones de interfaz anidadas.
Vea también
Referencia
interface (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1228: Las declaraciones de miembros enum no deben utilizar


la palabra clave 'var'
JS1228: Enum member declarations should not use the 'var' keyword
Una declaración de enumeración contiene la palabra clave var, pero no se permiten declaraciones de variables dentro de una
declaración de enumeración.
Para corregir este error
Quite la palabra clave var o la declaración de variables.
Vea también
Referencia
enum (Instrucción)
var (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1229: La instrucción import no es válida en este contexto


JS1229: The import statement is not valid in this context
Hay una instrucción import en el código que no se encuentra en el ámbito global. La instrucción import sólo puede aparecer
en el ámbito global.
Para corregir este error
Mueva la instrucción import de la ubicación actual al bloque de programa principal (el ámbito global).
Vea también
Referencia
import (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1230: La declaración enum no está permitida en este


contexto
JS1230: Enum declaration not allowed in this context
Existe una declaración de enumeración en un contexto inadecuado. Las declaraciones de enumeración se admiten únicamente
en el bloque de programa principal, dentro de otras clases o paquetes o en funciones.
Para corregir este error
Defina la enumeración en el bloque de programa principal, dentro de otra clase o paquete o en una función.
Vea también
Referencia
enum (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1231: Atributo no válido para este tipo de declaración


JS1231: Attribute not valid for this type of declaration
El código aplica un atributo a una declaración que no lo acepta.
Para corregir este error
Asegúrese de que el atributo no se aplica a este tipo de declaración.

Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1232: Declaración package no permitida en este contexto


JS1232: Package declaration not allowed in this context
Hay una declaración de paquete en un contexto que no es el ámbito global. Esto no está permitido, porque los paquete sólo se
pueden declarar en el ámbito global.
Para corregir este error
Asegúrese de que todos los paquetes se declaran en el ámbito global.
Vea también
Referencia
package (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1233: Una función constructora podría no tener un tipo de


valor devuelto
JS1233: A constructor function may not have a return type
La función constructora de una clase tiene un tipo de valor devuelto especificado. Sin embargo, las funciones constructoras
devuelven automáticamente una referencia a la instancia de clase creada, pero no un valor.
Para corregir este error
1. Quite la especificación de tipo de valor devuelto del constructor.
2. Cambie el constructor por un método asignando al método un nombre distinto al de la clase.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Objetos basados en clases
JScript 8.0

JS1234: Sólo se permiten definiciones de tipo y de paquete


dentro de una biblioteca
JS1234: Only type and package definitions are allowed inside a library
Se está compilando el código para crear una biblioteca, pero contiene declaraciones que no están permitidas. El código que se
utiliza para crear bibliotecas sólo puede contener clases, interfaces y paquetes.
Para corregir este error
Asegúrese de que el código sólo contiene clases, interfaces y paquetes.
Vea también
Referencia
/target:library
class (Instrucción)
interface (Instrucción)
package (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1235: Directiva de depuración no válida


JS1235: Invalid debug directive
Se está utilizando la directiva @debug con una opción no válida. Las opciones válidas son on y off.
Para corregir este error
Utilice únicamente on y off como opciones de la directiva @debug.

Vea también
Referencia
@debug (Directiva)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1236: Este tipo de atributo debe ser único


JS1236: This type of attribute must be unique
El código aplica un atributo varias veces a un identificador, pero el atributo sólo se puede aplicar una vez.
Para corregir este error
Asegúrese de que el atributo sólo se aplica una vez a cada identificador.

Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1237: Un tipo anidado no estático sólo se puede extender a


un tipo anidado no estático en la misma clase
JS1237: A non-static nested type can only be extended by non-static type nested in the same class
Una clase contiene una definición de clase anidada, y la clase anidada no está marcada con el modificador static. Otra clase
definida amplía la clase anidada, pero la clase que realiza la ampliación no contiene los modificadores correctos o no se ha
definido dentro de la misma clase que la clase anidada. Sólo otra clase no estática anidada en la misma clase puede ampliar
una clase anidada no estática.
Para corregir este error
1. Asegúrese de que sólo las clases anidadas no estáticas amplían clases no estáticas anidadas dentro de la misma clase.
2. Aplique el modificador static a la clase anidada que se va a ampliar. De esta forma, las clases no anidadas y la clases
anidadas estáticas podrán ampliar la clase anidada.
Vea también
Referencia
static (Modificador)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Objetos basados en clases
JScript 8.0

JS1238: Un atributo que se va a aplicar a una propiedad se


debe especificar en la propiedad getter, si la hay
JS1238: An attribute that targets the property must be specified on the property getter, if present
Una propiedad definida con un establecedor (una declaración de function set) y un captador (una declaración de function
get) tiene un atributo aplicado al establecedor, lo cual no está permitido. Todos los atributos deben aplicarse explícitamente a
la propiedad getter, si ésta existe. El compilador aplica los atributos implícitamente a la propiedad setter.
Para corregir este error
Aplique el atributo a la propiedad getter.
Vea también
Referencia
function set (Instrucción)
function get (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1239: Una instrucción throw debe tener un argumento


cuando no esté dentro de un bloque catch de una instrucción
try
JS1239: A throw must have an argument when not inside the catch block of a try statement
Se está utilizando una instrucción throw sin un argumento fuera de un bloque catch. El único lugar donde se puede utilizar
una instrucción throw sin argumento es dentro de un bloque catch, en cuyo caso se vuelven a lanzar los errores
interceptados.
Para corregir este error
1. Pase un argumento a la instrucción throw.
2. Mueva la instrucción throw a un bloque catch.
Vea también
Referencia
try...catch...finally (Instrucción)
throw (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1240: Una lista de argumentos de variable debe ser el último


argumento
JS1240: A variable argument list must be the last argument
La definición de la función tiene una matriz de parámetros (o una lista de argumentos de variable) seguida de otro parámetro.
Esto no está permitido, ya que la matriz de parámetros debe ser el último parámetro.
Para corregir este error
Asegúrese de que la matriz de parámetros es el último parámetro en la definición de una función.
Vea también
Referencia
function (Instrucción)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1241: No se encontró el tipo, ¿falta una referencia de


ensamblado?
JS1241: Type could not be found, is an assembly reference missing?
Una referencia completa a un tipo utiliza un cualificador que parece un nombre de paquete. No se ha encontrado el tipo en el
paquete, o no se ha encontrado el paquete. Esto ocurre cuando no se hace referencia al ensamblado que proporciona el tipo
del paquete.
Para corregir este error
1. Asegúrese de que el paquete proporcionado contiene el tipo.
2. Asegúrese de que la opción /autoref está activada o de que se hace referencia de forma explícita a los ensamblados con
la opción /reference.

Vea también
Referencia
import (Instrucción)
/reference
/autoref
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1242: Literal octal incorrecto tratado como literal decimal


JS1242: Malformed octal literal treated as decimal literal
Un número literal comienza con un cero inicial y no tiene separador decimal, lo que indica que se trata de un literal octal (de
base 8). Sin embargo, también contiene los dígitos 8 o 9, que no son octales. El compilador interpretará el número como un
número decimal (de base 10).
Para corregir este error
1. Si el literal debe ser un literal decimal, quite el cero inicial.
2. Si el literal debe ser un literal octal, asegúrese de que sólo utiliza los dígitos comprendidos entre cero y siete.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Datos numéricos
Otros recursos
Referencia de JScript
JScript 8.0

JS1243: No se puede tener acceso a un miembro no estático


desde un ámbito estático
JS1243: A non-static member is not accessible from a static scope
Un método o propiedad estáticos han tenido acceso a un miembro no estático de la clase. Los miembros de clases estáticas
están asociados a la propia clase y no contienen información sobre los miembros de una instancia concreta, mientras que los
miembros no estáticos están asociados a una instancia concreta. Esto significa que los métodos y propiedades estáticas no
pueden tener acceso a miembros no estáticos.
Un método estático puede tener acceso indirecto a los miembros no estáticos cuando se pasa una instancia de la clase al
método como un argumento. El método estático puede tener acceso a todos los miembros de la instancia de la clase, incluidos
los miembros marcados con el modificador private.
Para corregir este error
1. Cambie los modificadores de forma que tanto el miembro al que se tiene acceso como el miembro que obtiene el acceso
sean estáticos o no estáticos.
2. Pase una instancia de la clase al método estático.
Vea también
Referencia
static (Modificador)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Objetos basados en clases
JScript 8.0

JS1244: Se debe tener acceso a un miembro estático con el


nombre de clase
JS1244: A static member must be accessed with the class name
El código está intentando tener acceso a un miembro de una clase estática a través de una instancia de clase. Los miembros de
clases estáticas están asociados a la propia clase y no se puede tener acceso a ellos desde una instancia de clase, sino
utilizando el nombre de clase como cualificador.
Para corregir este error
Asegúrese de que a los miembros estáticos se tiene acceso con el nombre de clase.
Vea también
Referencia
static (Modificador)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Objetos basados en clases
JScript 8.0

JS1245: No se puede tener acceso a un miembro no estático con


el nombre de clase
JS1245: A non-static member cannot be accessed with the class name
El código está intentando tener acceso a un miembro de una clase no estática mediante el nombre de clase. Sólo los miembros
de clases estáticas se asocian a la propia clase; los miembros no estáticos se asocian a una instancia concreta de la clase y se
tiene acceso a ellos a través de esta instancia.
Para corregir este error
Asegúrese de que a los miembros no estáticos se tiene acceso con una instancia de clase.
Vea también
Referencia
static (Modificador)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Objetos basados en clases
JScript 8.0

JS1246: El tipo no tiene un miembro estático


JS1246: Type does not have such a static member
El código está intentando tener acceso a un miembro mediante el nombre de clase (con el que sólo se tiene acceso a miembros
de clases estáticas), pero no se ha encontrado ningún miembro estático coincidente.
Para corregir este error
Cuando se vaya a tener acceso a un miembro mediante el nombre de clase, asegúrese de que el miembro es estático.
Vea también
Referencia
static (Modificador)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Objetos basados en clases
JScript 8.0

JS1247: La condición de bucle es una referencia de función


JS1247: The loop condition is a function reference
La condición de bucle es una referencia de función. ¿Intentaba llamar a la función?
En la parte de la expresión condicional de una instrucción de bucle, un nombre de función no va seguido de un conjunto de
paréntesis que contengan los argumentos de la función. El nombre de función por sí mismo hace referencia al objeto
Function de la función, y no al valor devuelto por la función.
Aunque en determinadas circunstancias puede resultar conveniente utilizar un objeto Function como condición de bucle,
como cuando cambia la propia función, normalmente se trata de un error.
Para corregir este error
Utilice la sintaxis de la llamada a la función con paréntesis que contengan los argumentos de la función para evaluar el
valor de la función.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1248: Se esperaba 'assembly'


JS1248: Expected 'assembly'
Parece que el código define atributos globales para un ensamblado, pero no se ha utilizado el identificador de ensamblado. La
sintaxis correcta para definir un atributo de ensamblado es:

[assembly: attribute]

attribute debe ser un atributo global válido para un ensamblado, y lo proporciona el espacio de nombres
System.Reflection. Para obtener más información, vea System.Reflection (Espacio de nombres).
Para corregir este error
Asegúrese de utilizar la sintaxis correcta para declarar atributos globales.

Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1249: Los atributos personalizados de ensamblado no pueden


formar parte de otra construcción
JS1249: Assembly custom attributes may not be part of another construct
Los atributos personalizados de ensamblado sólo se pueden utilizar en el ámbito global.
Para corregir este error
Asegúrese de que los atributos personalizados de ensamblado se utilizan en el ámbito global.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Ámbito de variables y constantes
Otros recursos
Referencia de JScript
JScript 8.0

JS1250: Los métodos expando no pueden ser static


JS1250: Expando methods cannot be static
Hay un método que tiene los modificadores expando y static. Esto no está permitido.
Para corregir este error
Quite uno de los modificadores expando o static de la declaración del método.

Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Modificadores de JScript
Otros recursos
Referencia de JScript
JScript 8.0

JS1251: Este método tiene el mismo nombre y tipos de


parámetro que otro método de esta clase
JS1251: This method has the same name and parameter types as another method in this class
Hay varios métodos en la clase con el mismo nombre y tipos de parámetros. Esto no está permitido porque no hay forma de
distinguir los diferentes métodos en las llamadas.
Para corregir este error
1. Si hay métodos duplicados, quite los que sean redundantes.
2. Cambie el nombre o los tipos de parámetros de alguno de los métodos.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Objetos basados en clases
JScript 8.0

JS1252: Los miembros de clase usados como constructores se


deberían marcar como funciones expando
JS1252: Class members used as constructors should be marked as expando functions
El operador new se ha aplicado a un miembro de clase. Esto sólo se admite cuando el miembro de la clase es un método o
propiedad marcado con el modificador expando, el cual permite que se utilice como constructor.
Para corregir este error
1. Aplique el modificador expando a la definición del miembro de clase.
2. No utilice el operador new en miembros de clase que no sean expando.
Vea también
Referencia
expando (Modificador)
new (Operador)
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1253: No es una cadena de versión válida


JS1253: Not a valid version string
No es una cadena de versión válida. El formato esperado es principal.secundaria[.compilación[.revisión]]
El código define un atributo AssemblyVersion global para el ensamblado, pero la cadena de versión pasada al atributo no
tiene el formato correcto. La cadena de versión debe tener el formato "principal.secundaria[.compilación[.revisión]]".
Para corregir este error
Asegúrese de que la cadena de versión tiene el formato "principal.secundaria[.compilación[.revisión]]".
Vea también
Referencia
AssemblyVersionAttribute Class
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1254: Los archivos ejecutables no se pueden adaptar y no


deben tener referencia cultural
JS1254: Executables cannot be localized, Culture should always be empty
El código define un atributo AssemblyCulture global para el ensamblado, lo cual no está permitido ya que los ejecutables no
se pueden traducir.
Para corregir este error
Asegúrese de que no se ha especificado el atributo AssemblyCulture para un archivo ejecutable.
Vea también
Referencia
AssemblyCultureAttribute Class
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1255: El operador más proporciona un medio lento de


concatenar cadenas
JS1255: The plus operator is a slow way to concatenate strings
El operador más proporciona un medio lento de concatenar cadenas. Considere la posibilidad de utilizar
System.Text.StringBuilder en su lugar.
El operador más (+) concatena cadenas. En muchas circunstancias, como cuando se agregan muchas cadenas pequeñas a otra
cadena, System.Text.StringBuilder produce código que se ejecuta mucho más rápido.
Considere, por ejemplo, el siguiente código que genera la cadena "0123456789". Cuando se compila genera esta advertencia.

var a : String = "";


for(var i=0; i<10; i++)
a += i;
print(a);

Cuando se ejecuta, muestra la cadena "0123456789".


Si en el ejemplo anterior se utilizara System.Text.StringBuilder, el programa se ejecutaría más rápido y no generaría la
advertencia.

var b : System.Text.StringBuilder;
b = new System.Text.StringBuilder();
for(var i=0; i<10; i++)
b.Append(i);
print(b);

Al igual que el programa anterior, también muestra "0123456789".


Otra forma de evitar que aparezca la advertencia es utilizar una variable sin tipo que conserve la cadena a la que se agregan las
otras cadenas.
Para corregir este error
1. Utilice System.Text.StringBuilder para el tipo de la cadena a la que se van a agregar otras cadenas, y vuelva a escribir
las instrucciones con las operaciones += utilizando en su lugar el método Append.
2. Utilice una variable sin tipo para la cadena a la que se van agregar otras cadenas. (Con esta solución no se acelera la
ejecución del código, pero se elimina la advertencia.)
Vea también
Referencia
StringBuilder Class
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1256: Las variables y las directivas de compilación


condicional no se pueden usar en el depurador
JS1256: Conditional compilation directives and variables cannot be used in the debugger
Cuando se depuraba un programa de JScript, se introdujo una directiva o variable de compilación condicional en la ventana de
comandos. Las directivas y variables de compilación condicional sólo se utilizan cuando se compila el programa; no están
disponibles una vez finalizada la compilación.
Para corregir este error
Asegúrese de que no se introducen directivas ni variables de compilación condicional en la ventana de comandos.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Escribir, compilar y depurar código JScript
JScript 8.0

JS1222: Los métodos expando deben ser públicos


JS1257: Expando methods must be public
Un método que tiene un modificador expando tiene también un modificador de visibilidad que no es public. Esto no está
permitido.
Para corregir este error
Quite el modificador expando o el modificador de visibilidad de la declaración del método.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Modificadores de JScript
Otros recursos
Referencia de JScript
JScript 8.0

JS1258: Los delegados no se deberían construir explícitamente,


use simplemente el nombre del método
JS1258: Delegates should not be explicitly constructed, simply use the method name
El código está creando un delegado a partir de una función, lo cual es innecesario. El nombre de función hace referencia por sí
mismo a un delegado.
Para corregir este error
Utilice el nombre de función sin paréntesis para hacer referencia a un delegado.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
Funciones de JScript
JScript 8.0

JS1259: El ensamblado al que se hace referencia depende de


otro ensamblado al que no se hace referencia o que no se pudo
encontrar
JS1259: A referenced assembly depends on another assembly that is not referenced or could not be found
El programa importa un ensamblado (ya sea de forma implícita con la instrucción import o de forma explícita con la opción
/reference) que depende de otro ensamblado. No se puede encontrar el otro ensamblado porque no se hace referencia a él o
porque no existe en la ubicación especificada.
Una causa posible de este error es haber movido un ensamblado a una nueva ubicación sin mover los ensamblados de los que
depende. Otra causa posible es no haber hecho referencia a los ensamblados de los que dependen otros ensamblados.
Para corregir este error
1. Asegúrese de que los ensamblados que requiere el programa existen.
2. Compruebe que la ubicación y el nombre de cada ensamblado necesario se hayan especificado correctamente.
3. Asegúrese de hacer referencia de forma explícita a los ensamblados requeridos por otros ensamblados pero no
importados por el programa.
Vea también
Referencia
import (Instrucción)
/reference
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1260: Esta conversión puede fallar en tiempo de ejecución


JS1260: This conversion may fail at runtime
El código tiene una conversión de tipos implícita que puede generar un error en tiempo de ejecución. Esto indica que, en el tipo
de conversión de destino, no existen valores de datos análogos obvios que se correspondan con algunos valores de datos del
tipo de datos original.
El uso de conversiones de tipos explícitas, que tienen en cuenta las conversiones con pérdida de información, amplía la
confiabilidad del código y reduce la posibilidad de errores en tiempo de ejecución.
Para corregir este error
1. Asegúrese de que los datos proporcionados son compatibles con el tipo de datos en que se van a convertir.
2. Utilice la conversión de tipos explícita cuando convierta datos de un tipo en otro.

Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Conversión de tipos
Otros recursos
Referencia de JScript
JScript 8.0

JS1261: Convertir una cadena en un número o booleano es un


proceso lento y puede fallar en tiempo de ejecución
JS1261: Converting a string to a number or boolean is slow and may fail at runtime
El código tiene una conversión de tipos implícita que puede generar un error en tiempo de ejecución. Esto significa que
algunos valores de cadena no tienen un valor numérico o Boolean análogo obvio.
El uso de conversiones de tipos explícitas, que tienen en cuenta las conversiones con pérdida de información, amplía la
confiabilidad del código y reduce la posibilidad de errores en tiempo de ejecución.
Para corregir este error
1. Asegúrese de que la cadena proporcionada es compatible con el tipo de datos en que se va a convertir.
2. Utilice la conversión de tipos explícita cuando convierta datos de un tipo en otro.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Conversión de tipos
Otros recursos
Referencia de JScript
JScript 8.0

JS1253: No es un archivo .resources válido


JS1262: Not a valid .resources file
El programa está compilado con la opción /resource, pero el archivo de recursos especificado no tiene el formato correcto.
Puede que el archivo esté dañado o que no sea un archivo de recursos.
Para corregir este error
Asegúrese de que el archivo especificado con la opción /resource es un archivo de recursos válido.
Vea también
Referencia
/resource
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1263: El operador & sólo se puede utilizar en una lista de


argumentos
JS1263: The & operator can only be used in a list of arguments
Hay un signo de Y comercial (&) en el código fuera de una llamada a una función. El signo de Y comercial debe preceder
únicamente a un nombre de variable (que tenga una dirección), y sólo se debe utilizar para pasar la variable por referencia a
una función que acepte el parámetro por referencia.
Cuando se pasan variables por referencia, la función puede cambiar el valor de la variable.
Nota
JScript no permite que se definan funciones con parámetros de referencia. JScript proporciona el signo de "y" comercial para
permitir llamadas a objetos externos que tomen parámetros de referencia.

Para corregir este error


Asegúrese de que el signo de Y comercial (&) precede a un nombre de variable en una llamada a una función, y la
función acepta el parámetro por referencia.
Vea también
Conceptos
Solución de problemas en las secuencias de comandos
Otros recursos
Referencia de JScript
JScript 8.0

JS1264: El tipo especificado no es compatible con CLS


JS1264: The specified type is not CLS compliant
El programa contiene el atributo CLSCompliantAttribute, y el compilador ha detectado una definición de tipos de datos que
no es compatible con Common Language Specification (CLS). Algunas de las causas posibles de este error son:
El nombre del tipo no es compatible con CLS. Los nombres compatibles con CLS no pueden comenzar con un carácter de
subrayado (_), contener el signo de dólar ($) ni diferenciarse del nombre de otro miembro público únicamente por el uso
de mayúsculas y minúsculas.
Se ha definido una enumeración para que tenga un tipo subyacente que no es compatible con CLS. Por ejemplo, la
enumeración podría estar basada en el tipo primitivo uint (que no es compatible con CLS) en lugar de en el tipo de
sistema compatible con CLS correspondiente, System.UInt32.
Para corregir este error
1. Asegúrese de que el nombre del tipo de datos no comienza con un carácter de subrayado (_), no contiene el signo de
dólar ($) y no se diferencia del nombre de otro miembro únicamente por el uso de mayúsculas y minúsculas.
2. Asegúrese de que sólo se utilizan tipos de datos compatibles con CLS como tipos subyacentes para las enumeraciones.
Vea también
Referencia
CLSCompliantAttribute Class
Conceptos
Solución de problemas en las secuencias de comandos
Escribir código compatible con CLS
Common Language Specification
Otros recursos
Referencia de JScript
JScript 8.0

JS1265: El miembro de clase no se puede marcar como


compatible con CLS porque la clase no está marcada como
compatible con CLS
JS1265: Class member cannot be marked CLS compliant because the class is not marked as CLS compliant
La clase contiene un miembro marcado con el atributo CLSCompliantAttribute, pero la clase propiamente dicha no está
marcada con el atributo CLSCompliantAttribute. Una clase debe estar marcada como compatible con CLS si alguno de sus
miembros está marcado como compatible con CLS.
Para corregir este error
Asegúrese de aplicar el atributo CLSCompliantAttribute a cada clase que tenga miembros marcados con dicho
atributo.

Vea también
Referencia
CLSCompliantAttribute Class
Conceptos
Solución de problemas en las secuencias de comandos
Escribir código compatible con CLS
Common Language Specification
Otros recursos
Referencia de JScript
JScript 8.0

JS1266: El tipo no se puede marcar como compatible con CLS


porque el ensamblado no está marcado como compatible con
CLS
JS1266: Type cannot be marked CLS compliant because the assembly is not marked as CLS compliant
El tipo de datos está marcado con el atributo CLSCompliantAttribute, pero el ensamblado que contiene el tipo de datos no
está marcado con el atributo CLSCompliantAttribute. Un ensamblado debe estar marcado como compatible con CLS si
contiene algún tipo de datos marcado como compatible con CLS.
Para corregir este error
Asegúrese de aplicar el atributo CLSCompliantAttribute al ensamblado si algún tipo de datos está marcado con dicho
atributo.

Vea también
Referencia
CLSCompliantAttribute Class
Conceptos
Solución de problemas en las secuencias de comandos
Escribir código compatible con CLS
Common Language Specification
Otros recursos
Referencia de JScript
JScript 8.0

JS1267: Procesador no válido


JS1267: Invalid processor
Un ensamblado al que se hace referencia va dirigido a un procesador diferente.
Para corregir este error
Asegúrese de que los ensamblados a los que se hace referencia se crean mediante /platform:anycpu o con el mismo
valor /platform que el ensamblado que se está creando.
Vea también
Referencia
CLSCompliantAttribute Class
Conceptos
Solución de problemas en las secuencias de comandos
Escribir código compatible con CLS
Common Language Specification
Otros recursos
Referencia de JScript
JScript 8.0

JS1268: Archivo de clave de ensamblado no válido


JS1268: Invalid assembly key file
Un archivo de clave de ensamblado no se encontró o contiene datos no válidos.
Para corregir este error
Asegúrese de que el atributo System.Reflection.AssemblyKeyFile de ensamblado señale a un archivo que contenga
un archivo de clave válido.
Vea también
Referencia
CLSCompliantAttribute Class
Conceptos
Solución de problemas en las secuencias de comandos
Escribir código compatible con CLS
Common Language Specification
Otros recursos
Referencia de JScript
JScript 8.0

JS1269: Nombre de tipo no válido


JS1269: Invalid type name
Un nombre de tipo completo debe tener menos de 1024 caracteres.
Para corregir este error
Asegúrese de utilizar un nombre de tipo completo que contenga menos de 1024 caracteres.

Vea también
Referencia
CLSCompliantAttribute Class
Conceptos
Solución de problemas en las secuencias de comandos
Escribir código compatible con CLS
Common Language Specification
Otros recursos
Referencia de JScript
JScript 8.0

JS2013: Destino no válido


JS2013: Invalid target
Un tipo de destino no es válido.
Para corregir este error
Asegúrese de especificar 'exe', 'library' o 'winexe' con la opción /target de línea de comandos.

Vea también
Referencia
CLSCompliantAttribute Class
Conceptos
Solución de problemas en las secuencias de comandos
Escribir código compatible con CLS
Common Language Specification
Otros recursos
Referencia de JScript
JScript 8.0

JS2039: Plataforma no válida


JS2039: Invalid platform
Un tipo de plataforma no es válido.
Para corregir este error
Asegúrese de especificar 'x86', 'Itanium', 'x64' o 'anycpu' con la opción de línea de comandos /platform.

Vea también
Referencia
CLSCompliantAttribute Class
Conceptos
Solución de problemas en las secuencias de comandos
Escribir código compatible con CLS
Common Language Specification
Otros recursos
Referencia de JScript
JScript 8.0

Funciones de JScript
Estas funciones están integradas en los valores devueltos de JScript y otras funciones pueden utilizarlas en operaciones
posteriores.
En esta sección
GetObject (Función)
Devuelve una referencia a un objeto de automatización desde un archivo.
ScriptEngine (Función)
Devuelve una cadena que representa el lenguaje de secuencias de comandos que se está utilizando.
ScriptEngineBuildVersion (Función)
Devuelve el número de versión de compilación del motor de secuencias de comandos que se está utilizando.
ScriptEngineMajorVersion (Función)
Devuelve el número de versión principal del motor de secuencias de comandos que se está utilizando.
ScriptEngineMinorVersion (Función)
Devuelve el número de versión secundaria del motor de secuencias de comandos que se está utilizando.
Secciones relacionadas
Referencia de JScript
Enumera los elementos que comprende la Referencia del lenguaje JScript e incluye vínculos a temas que explican con más
detalle el uso correcto de los elementos del lenguaje.
Referencia de .NET Framework
Muestra vínculos a temas que explican la sintaxis y estructura de la biblioteca de clases de .NET Framework y otros
elementos esenciales.
JScript 8.0

GetObject (Función de JScript 8.0)


Devuelve una referencia a un objeto de automatización desde un archivo. La función puede presentar dos formas:

function GetObject(class : String)


function GetObject(pathname : String [, class : String])

Argumentos
class
Necesario. Cadena de tipo "nombreAplic.tipoObj", donde nombreAplic es el nombre de la aplicación que proporciona el
objeto y tipoObj es el tipo o la clase de objeto que se va a crear.
pathname
Necesario. Ruta completa y nombre del archivo que contiene el objeto que se va a recuperar. Si se omite el argumento
pathname, es necesario el argumento class.
Comentarios
Use la función GetObject para tener acceso a un objeto de automatización desde un archivo. Asigne el objeto devuelto por la
función GetObject a la variable de objeto. Por ejemplo:

var CADObject;
CADObject = GetObject("C:\\CAD\\SCHEMA.CAD");

Cuando se ejecuta este código, se inicia la aplicación asociada al argumento pathname especificado y se activa el objeto del
archivo especificado. Si el argumento pathname es una cadena de longitud cero (""), la función GetObject devuelve una nueva
instancia de objeto del tipo especificado. Si se omite el argumento pathname, la función GetObject devuelve un objeto
actualmente activo del tipo especificado. Si no existe ningún objeto del tipo especificado, se produce un error.
Algunas aplicaciones permiten activar parte de un archivo. Para ello, agregue un signo de exclamación (!) al final del nombre
de archivo, seguido de una cadena que especifique la parte del archivo que desea activar. Para obtener información sobre
cómo crear esta cadena, consulte la documentación de la aplicación que ha creado el objeto.
Por ejemplo, en una aplicación de dibujo, quizá tenga muchas capas para un dibujo almacenado en un archivo. Puede utilizar el
código siguiente para activar una capa dentro de un dibujo denominado SCHEMA.CAD:

var LayerObject = GetObject("C:\\CAD\\SCHEMA.CAD!Layer3");

Si no especifica la clase del objeto, el objeto de automatización determina la aplicación que se va a iniciar y el objeto que se va
a activar, basándose en el nombre de archivo que se proporcione. Sin embargo, algunos archivos pueden admitir más de una
clase de objeto. Por ejemplo, un dibujo puede ser compatible con tres tipos diferentes de objetos: un objeto Application, un
objeto Drawing y un objeto Toolbar, que forman parte todos ellos del mismo archivo. Para especificar el objeto que desea
activar en un archivo, utilice el argumento opcional class. Por ejemplo:

var MyObject;
MyObject = GetObject("C:\\DRAWINGS\\SAMPLE.DRW", "FIGMENT.DRAWING");

En el ejemplo anterior, FIGMENT es el nombre de una aplicación de dibujo y DRAWING es uno de los tipos de objeto que admite.
Una vez que se activa un objeto, se hace referencia a él en el código mediante la variable de objeto que haya definido. En el
ejemplo anterior, se tiene acceso a las propiedades y métodos del nuevo objeto mediante la variable de objeto MyObject. Por
ejemplo:

MyObject.Line(9, 90);
MyObject.InsertText(9, 100, "Hello, world.");
MyObject.SaveAs("C:\\DRAWINGS\\SAMPLE.DRW");

Nota
Utilice la función GetObject cuando exista una instancia actual del objeto o cuando desee crear el objeto con un archivo carg
ado. Si no existe ninguna instancia actual y no desea que el objeto se inicie con un archivo cargado, utilice el objeto ActiveX
Object.

Si un objeto se registró como objeto de una única instancia, sólo se creará una instancia del objeto, con independencia del
número de veces que se ejecute el objeto ActiveXObject. Con un objeto de una sola instancia, la función GetObject devuelve
siempre la misma instancia cuando se llama con sintaxis de cadena de longitud cero (""), y origina un error si se omite el
argumento pathname.
Requisitos
Versión 5
Vea también
Referencia
ActiveXObject (Objeto)
JScript 8.0

ScriptEngine (Función de JScript 8.0)


Devuelve una cadena que representa el lenguaje de secuencias de comandos que se está utilizando.

function ScriptEngine() : String

Comentarios
La función ScriptEngine puede devolver cualquiera de las siguientes cadenas:
Cadena Descripción
Jscript Indica que Microsoft JScript es el motor de secuencias de comandos actual.

VBA Indica que Microsoft Visual Basic para Aplicaciones es el motor de secuencias de comandos actual.

VBScript Indica que Microsoft Visual Basic Scripting es el motor de secuencias de comandos actual.
Ejemplo
En el siguiente ejemplo se muestra el uso de la función ScriptEngine:

function GetScriptEngineInfo(){
var s;
s = ""; // Build string with necessary info.
s += ScriptEngine() + " Version ";
s += ScriptEngineMajorVersion() + ".";
s += ScriptEngineMinorVersion() + ".";
s += ScriptEngineBuildVersion();
return(s);
}

Requisitos
Versión 2
Vea también
Referencia
ScriptEngineBuildVersion (Función de JScript 8.0)
ScriptEngineMajorVersion (Función de JScript 8.0)
ScriptEngineMinorVersion (Función de JScript 8.0)
JScript 8.0

ScriptEngineBuildVersion (Función de JScript 8.0)


Devuelve el número de versión de compilación del motor de secuencias de comandos que se está utilizando.

function ScriptEngineBuildVersion() : int

Comentarios
El valor devuelto corresponde directamente a la información de versión contenida en la biblioteca de vínculos dinámicos (DLL)
del lenguaje de secuencias de comandos que se está utilizando.
Ejemplo
En el siguiente ejemplo se muestra el uso de la función ScriptEngineBuildVersion:

function GetScriptEngineInfo(){
var s;
s = ""; // Build string with necessary info.
s += ScriptEngine() + " Version ";
s += ScriptEngineMajorVersion() + ".";
s += ScriptEngineMinorVersion() + ".";
s += ScriptEngineBuildVersion();
return(s);
}

Requisitos
Versión 2
Vea también
Referencia
ScriptEngine (Función de JScript 8.0)
ScriptEngineMajorVersion (Función de JScript 8.0)
ScriptEngineMinorVersion (Función de JScript 8.0)
JScript 8.0

ScriptEngineMajorVersion (Función de JScript 8.0)


Devuelve el número de versión principal del motor de secuencias de comandos que se está utilizando.

function ScriptEngineMajorVersion() : int

Comentarios
El valor devuelto corresponde directamente a la información de versión contenida en la biblioteca de vínculos dinámicos (DLL)
del lenguaje de secuencias de comandos que se está utilizando.
Ejemplo
En el siguiente ejemplo se muestra el uso de la función ScriptEngineMajorVersion.

function GetScriptEngineInfo(){
var s;
s = ""; // Build string with necessary info.
s += ScriptEngine() + " Version ";
s += ScriptEngineMajorVersion() + ".";
s += ScriptEngineMinorVersion() + ".";
s += ScriptEngineBuildVersion();
return(s);
}

Requisitos
Versión 2
Vea también
Referencia
ScriptEngine (Función de JScript 8.0)
ScriptEngineBuildVersion (Función de JScript 8.0)
ScriptEngineMinorVersion (Función de JScript 8.0)
JScript 8.0

ScriptEngineMinorVersion (Función de JScript 8.0)


Devuelve el número de versión secundaria del motor de secuencias de comandos que se está utilizando.

function ScriptEngineMinorVersion() : int

Comentarios
El valor devuelto corresponde directamente a la información de versión contenida en la biblioteca de vínculos dinámicos (DLL)
del lenguaje de secuencias de comandos que se está utilizando.
Ejemplo
En el siguiente ejemplo se muestra el uso de la función ScriptEngineMinorVersion.

function GetScriptEngineInfo(){
var s;
s = ""; // Build string with necessary info.
s += ScriptEngine() + " Version ";
s += ScriptEngineMajorVersion() + ".";
s += ScriptEngineMinorVersion() + ".";
s += ScriptEngineBuildVersion();
return(s);
}

Requisitos
Versión 2
Vea también
Referencia
ScriptEngine (Función de JScript 8.0)
ScriptEngineBuildVersion (Función de JScript 8.0)
ScriptEngineMajorVersion (Función de JScript 8.0)
JScript 8.0

Literales
Los literales son elementos de programa invariables que tienen un significado especial dentro del contexto del código de
JScript.
En esta sección
false (Literal)
null (Literal)
true (Literal)
Secciones relacionadas
Referencia de JScript
Enumera los elementos que comprende la Referencia del lenguaje JScript e incluye vínculos a temas que explican con más
detalle el uso correcto de los elementos del lenguaje.
Referencia de .NET Framework
Muestra vínculos a temas que explican la sintaxis y estructura de la biblioteca de clases de .NET Framework y otros
elementos esenciales.
JScript 8.0

false (Literal)
Valor de tipo Boolean que representa que lo que se afirma es falso.
Comentarios
Un valor de tipo Boolean puede ser true o false. El contrario de false, o no false, es true.
Requisitos
Versión 1
Vea también
Referencia
boolean (Tipo de datos de JScript)
Boolean (Objeto)
true (Literal)
Otros recursos
Tipos de datos de JScript
JScript 8.0

null (Literal)
Objeto que representa "ningún objeto".
Comentarios
Para borrar el contenido de una variable (sin eliminar la variable), asígnele el valor null.
Nota
En JScript, null no es lo mismo que 0 (al contrario de lo que ocurre en C y C++). Asimismo, el operador typeof de JScript int
erpreta los valores null como un tipo Object, no como un tipo null. Este comportamiento, que puede provocar confusiones,
se mantiene por motivos de compatibilidad con versiones anteriores.

Requisitos
Versión 1
Vea también
Referencia
Object (Objeto)
Otros recursos
Tipos de datos de JScript
JScript 8.0

true (Literal)
Valor de tipo Boolean que representa que lo que se afirma es cierto.
Comentarios
Un valor de tipo Boolean puede ser true o false. El contrario de true, o no true, es false.
Requisitos
Versión 1
Vea también
Referencia
boolean (Tipo de datos de JScript)
Boolean (Objeto)
false (Literal)
Otros recursos
Tipos de datos de JScript
JScript 8.0

Métodos
Un método es una función que es miembro de un objeto. Los distintos métodos de JScript se encuentran ordenados
alfabéticamente según el nombre del método.
En esta sección
Métodos (A-E)
Métodos (F-I)
Métodos (J-R)
Métodos (S)
Métodos (T-Z)
Secciones relacionadas
Referencia de JScript
Enumera los elementos que comprende la Referencia del lenguaje JScript e incluye vínculos a temas que explican con más
detalle el uso correcto de los elementos del lenguaje.
Objetos
Detalla el concepto de objeto en JScript, explica cómo los objetos están relacionados con las propiedades y los métodos, e
incluye vínculos a temas que proporcionan más detalles sobre los objetos que JScript admite.
Referencia de .NET Framework
Muestra vínculos a temas que explican la sintaxis y estructura de la biblioteca de clases de .NET Framework y otros
elementos esenciales.
JScript 8.0

Métodos (A-E)
Un método es una función que es miembro de un objeto. A continuación se muestran los métodos cuyos nombres empiezan
con las letras de la a a la e.
En esta sección
abs (Método)
Devuelve el valor absoluto de un número.
acos (Método)
Devuelve el arco coseno de un número.
anchor (Método)
Coloca un delimitador HTML con un atributo NAME a ambos lados del texto especificado en el objeto.
apply (Método)
Devuelve un método de un objeto y sustituye otro objeto por el objeto actual.
asin (Método)
Devuelve el arco seno de un número.
atan (Método)
Devuelve el arco tangente de un número.
atan2 (Método)
Devuelve el ángulo (en radianes) desde el eje X hasta un punto dado (x,y).
atEnd (Método)
Devuelve un valor de tipo Boolean que indica si el enumerador está al final de la colección.
big (Método)
Coloca etiquetas <BIG> de HTML a ambos lados del texto en un objeto String.
blink (Método)
Coloca etiquetas <BLINK> de HTML a ambos lados del texto de un objeto String.
bold (Método)
Coloca etiquetas <B> de HTML a ambos lados del texto de un objeto String.
call (Método)
Llama a un método de un objeto y sustituye el objeto actual por otro objeto.
ceil (Método)
Devuelve el entero más pequeño que sea mayor o igual que su argumento numérico.
charAt (Método)
Devuelve el carácter que se encuentra en el índice especificado.
charCodeAt (Método)
Devuelve el código Unicode del carácter que se especifique.
compile (Método)
Compila una expresión regular y la convierte en un formato interno.
concat (Método, Array)
Devuelve una matriz nueva que se compone de una combinación de dos matrices.
concat (Método, String)
Devuelve un objeto String que contiene la concatenación de las dos cadenas proporcionadas.
cos (Método)
Devuelve el coseno de un número.
decodeURI (Método)
Devuelve la versión sin codificar de un identificador de recursos uniforme (URI, Uniform Resource Identifier) codificado.
decodeURIComponent (Método)
Devuelve la versión sin codificar de un componente codificado de un identificador de recursos uniformes (URI, Uniform
Resource Identifier).
dimensions (Método)
Devuelve el número de dimensiones de un objeto VBArray.
encodeURI (Método)
Codifica una cadena de texto como identificador de recursos uniforme (URI, "Uniform Resource Identifier") válido.
encodeURIComponent (Método)
Codifica una cadena de texto como un componente válido de un identificador de recursos uniforme (URI, Uniform Resource
Identifier).
escape (Método)
Codifica objetos String para que se puedan leer en todos los equipos.
eval (Método)
Evalúa código JScript y lo ejecuta.
exec (Método)
Ejecuta una búsqueda en una cadena especificada.
exp (Método)
Devuelve e (base de los logaritmos naturales) elevado a una potencia.
Secciones relacionadas
Referencia de JScript
Enumera los elementos que comprende la Referencia del lenguaje JScript e incluye vínculos a temas que explican con más
detalle el uso correcto de los elementos del lenguaje.
Métodos
Enumera por orden alfabético los métodos disponibles en JScript y proporciona vínculos a cada una de las categorías de los
métodos.
Objetos
Detalla el concepto de objeto en JScript, explica cómo los objetos están relacionados con las propiedades y los métodos, e
incluye vínculos a temas que proporcionan más detalles sobre los objetos que JScript admite.
JScript 8.0

abs (Método)
Devuelve el valor absoluto de un número.

function abs( number : Number ) : Number

Argumentos
number
Requerido. Una expresión numérica.
Comentarios
El valor devuelto es el valor absoluto del argumento number.
Ejemplo
En el siguiente ejemplo se muestra el uso del método abs.

function ComparePosNegVal(n) {
var s = "";
var v1 = Math.abs(n);
var v2 = Math.abs(-n);
if (v1 == v2) {
s = "The absolute values of " + n + " and "
s += -n + " are identical.";
}
return(s);
}

Requisitos
Versión 1
Se aplica a:
Math (Objeto)
Vea también
Otros recursos
Métodos
JScript 8.0

acos (Método)
Devuelve el arco coseno de un número.

function acos( number : Number ) : Number

Argumentos
number
Necesario. Una expresión numérica.
Comentarios
El valor devuelto está comprendido entre 0 y pi, y representa el arco coseno del argumento number. Si number es menor que -
1 o number es mayor que +1, el valor devuelto es NaN.
Requisitos
Versión 1
Se aplica a:
Math (Objeto)
Vea también
Referencia
asin (Método)
atan (Método)
cos (Método)
sin (Método)
tan (Método)
PI (Propiedad)
JScript 8.0

anchor (Método)
Devuelve una cadena con un delimitador HTML que posee un atributo NAME a ambos lados del texto especificado en el objeto.

function anchor(anchorString : String ) : String

Argumentos
anchorString
Necesario. Texto que se desea colocar en el atributo NAME de un delimitador HTML.
Comentarios
Llame al método anchor para crear un delimitador con nombre de un objeto String.
No se comprueba si ya se aplicó la etiqueta a la cadena.
Ejemplo
El siguiente ejemplo muestra cómo el método anchor realiza este proceso:

var strVariable = "This is an anchor";


strVariable = strVariable.anchor("Anchor1");

El valor de strVariable después de la última instrucción es:

<A NAME="Anchor1">This is an anchor</A>

Requisitos
Versión 1
Se aplica a:
String (Objeto)
Vea también
Referencia
link (Método)
JScript 8.0

apply (Método)
Devuelve un método de un objeto y sustituye otro objeto por el objeto actual.

function apply([thisObj : Object [,argArray : { Array | arguments }]])

Argumentos
thisObj
Opcional. Objeto que se va a utilizar como objeto actual.
argArray
Opcional. Matriz de argumentos u objeto arguments que se va a pasar a la función.
Comentarios
Si el argumento argArray no es una matriz válida o no es el objeto arguments, se produce un error TypeError.
Si no se proporcionan los argumentos argArray ni thisObj, el objeto global se utiliza como argumento thisObj y no se pasan
argumentos.
Requisitos
Versión 5,5
Se aplica a:
Fuction (Objeto)
Vea también
Otros recursos
Métodos
JScript 8.0

asin (Método)
Devuelve el arco seno de un número.

function asin(number : Number) : Number

Argumentos
number
Necesario. Una expresión numérica.
Comentarios
El valor devuelto está comprendido entre -pi/2 y pi/2, y representa el arco seno del argumento number. Si number es menor
que -1 o number es mayor que +1, el valor devuelto es NaN.
Requisitos
Versión 1
Se aplica a:
Math (Objeto)
Vea también
Referencia
acos (Método)
atan (Método)
cos (Método)
sin (Método)
tan (Método)
PI (Propiedad)
JScript 8.0

atan (Método)
Devuelve el arco tangente de un número.

function atan(number : Number ) Number

Argumentos
number
Necesario. Una expresión numérica.
Comentarios
El valor devuelto está comprendido entre -pi/2 y pi/2, y representa el arco tangente del argumento number.
Requisitos
Versión 1
Se aplica a:
Math (Objeto)
Vea también
Referencia
acos (Método)
asin (Método)
atan2 (Método)
cos (Método)
sin (Método)
tan (Método)
PI (Propiedad)
JScript 8.0

atan2 (Método)
Devuelve el ángulo (en radianes) desde el eje X hasta un punto dado (x,y).

function atan2(y : Number , x : Number ) : Number

Argumentos
x
Necesario. Expresión numérica que representa la coordenada cartesiana x de un punto.
y
Necesario. Expresión numérica que representa la coordenada cartesiana y de un punto.
Comentarios
El valor devuelto está comprendido entre -pi y pi, y representa el ángulo del punto (x,y) proporcionado.
Requisitos
Versión 1
Se aplica a:
Math (Objeto)
Vea también
Referencia
atan (Método)
tan (Método)
PI (Propiedad)
JScript 8.0

atEnd (Método)
Devuelve un valor de tipo Boolean que indica si el enumerador está al final de la colección.

function atEnd() : Boolean

Comentarios
El método atEnd devuelve true si el elemento actual es el último de la colección, la colección está vacía o el elemento actual no
está definido. De lo contrario, devuelve false.
Ejemplo
En el siguiente código, el método atEnd se utiliza para determinar si se ha alcanzado el final de una lista de unidades:

function ShowDriveList(){
var fso, s, n, e, x;
fso = new ActiveXObject("Scripting.FileSystemObject");
e = new Enumerator(fso.Drives);
s = "";
for (; !e.atEnd(); e.moveNext())
{
x = e.item();
s = s + x.DriveLetter;
s += " - ";
if (x.DriveType == 3)
n = x.ShareName;
else if (x.IsReady)
n = x.VolumeName;
else
n = "[Drive not ready]";
s += n + "<br>";
}
return(s);
}

Requisitos
Versión 2
Se aplica a:
Enumerator (Objeto)
Vea también
Referencia
Method (Elemento de JScript)
moveFirst (Método)
moveNext (Método)
JScript 8.0

big (Método)
Devuelve una cadena con etiquetas <BIG> HTML a ambos lados del texto en un objeto String.

function big() : String

Comentarios
No se comprueba si ya se aplicó la etiqueta a la cadena.
Ejemplo
El ejemplo siguiente muestra cómo funciona el método big:

var strVariable = "This is a string object";


strVariable = strVariable.big();

El valor de strVariable después de la última instrucción es:

<BIG>This is a string object</BIG>

Requisitos
Versión 1
Se aplica a:
String (Objeto)
Vea también
Referencia
small (Método)
JScript 8.0

blink (Método)
Devuelve una cadena con etiquetas <BLINK> HTML a ambos lados del texto en un objeto String.

function blink() : String

Comentarios
No se comprueba si ya se aplicó la etiqueta a la cadena.
La etiqueta <BLINK>no se admite en Microsoft Internet Explorer.
Ejemplo
El siguiente ejemplo muestra cómo funciona el método blink:

var strVariable = "This is a string object";


strVariable = strVariable.blink();

El valor de strVariable después de la última instrucción es:

<BLINK>This is a string object</BLINK>

Requisitos
Versión 1
Se aplica a:
String (Objeto)
Vea también
Otros recursos
Métodos
JScript 8.0

bold (Método)
Devuelve una cadena con etiquetas <B> HTML a ambos lados del texto en un objeto String.

function bold() : String

Comentarios
No se comprueba si ya se aplicó la etiqueta a la cadena.
Ejemplo
El siguiente ejemplo muestra cómo funciona el método bold:

var strVariable = "This is a string object";


strVariable = strVariable.bold();

El valor de strVariable después de la última instrucción es:

<B>This is a string object</B>

Requisitos
Versión 1
Se aplica a:
String (Objeto)
Vea también
Referencia
italics (Método)
JScript 8.0

call (Método)
Llama a un método de un objeto y sustituye el objeto actual por otro objeto.

function call([thisObj : Object [, arg1[, arg2[, ... [, argN]]]]])

Argumentos
thisObj
Opcional. Objeto que se va a utilizar como objeto actual.
arg1, arg2, ..., argN
Opcional. Lista de argumentos que se van a pasar al método.
Comentarios
El método call se utiliza para llamar a un método en nombre de otro objeto. El método call permite cambiar el contexto del
objeto de una función del contexto original al nuevo objeto especificado por el argumento thisObj.
Si no se proporciona el argumento thisObj, el objeto global se utiliza como argumento thisObj.
Requisitos
Versión 5,5
Se aplica a:
Fuction (Objeto)
Vea también
Otros recursos
Métodos
JScript 8.0

ceil (Método)
Devuelve el entero más pequeño que sea mayor o igual que su argumento numérico.

function ceil(number : Number ) : Number

Argumentos
number
Necesario. Una expresión numérica.
Comentarios
El valor devuelto es un valor entero igual al entero más pequeño que sea mayor o igual que su argumento numérico.
Requisitos
Versión 1
Se aplica a:
Math (Objeto)
Vea también
Referencia
floor (Método)
JScript 8.0

charAt (Método)
Devuelve el carácter al índice especificado de un objeto String.

function charAt(index : Number) : String

Argumentos
index
Requerido. Índice basado en cero del carácter deseado. Los valores válidos están comprendidos entre 0 y la longitud de la
cadena menos 1.
Comentarios
El método charAt devuelve un valor de carácter igual al carácter situado en la posición especificada por index. El primer
carácter de una cadena está en el índice 0, el segundo en el índice 1 y así sucesivamente. Los valores del argumento index que
no están dentro del intervalo válido devuelven una cadena vacía.
Ejemplo
En el siguiente ejemplo se muestra el uso del método charAt:

function charAtTest(n){
var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; // Initialize variable.
var s; // Declare variable.
s = str.charAt(n - 1); // Get correct character
// from position n – 1.
return(s); // Return character.
}

Requisitos
Versión 1
Se aplica a:
String (Objeto)
Vea también
Otros recursos
Métodos
JScript 8.0

charCodeAt (Método)
Devuelve un entero que representa la codificación Unicode del carácter que se encuentra en la ubicación especificada en un
objeto String.

function charCodeAt(index : Number) : String

Argumentos
index
Necesario. Índice basado en cero del carácter deseado. Los valores válidos están comprendidos entre 0 y la longitud de la
cadena menos 1.
Comentarios
El primer carácter de una cadena está en el índice 0, el segundo en el índice 1 y así sucesivamente.
Si no hay un carácter en el argumento index especificado, se devuelve NaN.
Ejemplo
En el siguiente ejemplo se muestra el uso del método charCodeAt.

function charCodeAtTest(n){
var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; //Initialize variable.
var n; //Declare variable.
n = str.charCodeAt(n - 1); //Get the Unicode value of the
// character at position n.
return(n); //Return the value.
}

Requisitos
Versión 5,5
Se aplica a:
String (Objeto)
Vea también
Referencia
fromCharCode (Método)
JScript 8.0

compile (Método de JScript)


Compila una expresión regular y la convierte a un formato interno para una ejecución más rápida.

function compile(pattern : String [, flags : String] )

Argumentos
pattern
Necesario. Expresión de cadena que contiene un modelo de expresión regular que se va a compilar.
flags
Opcional. Los indicadores disponibles que se pueden combinar son:
g (búsqueda global para todas las repeticiones del argumento pattern)
i (pasar por alto mayúsculas y minúsculas)
m (búsqueda en varias líneas)
Comentarios
El método compile convierte el argumento pattern a un formato interno para que la ejecución sea más rápida. Esto permite
un uso más eficiente de expresiones regulares en, por ejemplo, bucles. Una expresión regular compilada aumenta la velocidad
cuando se vuelve a utilizar la misma expresión repetidamente. Sin embargo, no se obtienen ventajas si la expresión regular
cambia.
Ejemplo
El siguiente ejemplo muestra el uso del método compile:

function CompileDemo(){
var rs;
var s = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp"
// Create regular expression for uppercase only.
var r = new RegExp("[A-Z]", "g");
var a1 = s.match(r) // Find matches.
// Compile the regular expression for lowercase only.
r.compile("[a-z]", "g");
var a2 = s.match(r) // Find matches.
return(a1 + "\n" + a2);
}

Requisitos
Versión 3
Se aplica a:
Regular Expression (Objeto)
Vea también
Conceptos
Sintaxis de expresiones regulares
JScript 8.0

concat (Método, Array)


Devuelve una matriz nueva compuesta por una combinación de la matriz actual y otros elementos adicionales.

function concat([item1 : { Object | Array } [, ... [, itemN : { Object | Array }]]]]) : Arr
ay

Argumentos
item1, item2, ..., itemN
Opcional. Elementos adicionales que se agregarán al final de la matriz actual.
Comentarios
El método concat devuelve un objeto Array que contiene la concatenación del argumento actual y cualquier otro elemento
proporcionado.
Los elementos que se van a agregar a la matriz (item1 ... itemN) se agregan por orden de izquierda a derecha. Si uno de los
elementos es una matriz, su contenido se agregará al final de la matriz actual. Si el elemento no es una matriz, se agregará al
final de la matriz como un elemento de matriz simple.
Los elementos de las matrices de origen se copiarán en la matriz resultante de la siguiente manera:
Para una referencia de objeto copiada desde cualquiera de las matrices que se están concatenando con la nueva matriz,
la referencia de objeto continúa apuntando al mismo objeto. Un cambio en la nueva matriz o en la matriz original
producirá un cambio en la otra.
Para un valor numérico o de cadena que se esté concatenando con la nueva matriz, sólo se copia el valor. Los cambios de
un valor en una matriz no afectan al valor de la otra matriz.
Ejemplo
El siguiente ejemplo muestra el uso del método concat cuando se utiliza con una matriz:

function ConcatArrayDemo(){
var a, b, c, d;
a = new Array(1,2,3);
b = "JScript";
c = new Array(42, "VBScript");
d = a.concat(b, c);
//Returns the array [1, 2, 3, "JScript", 42, "VBScript"]
return(d);
}

Requisitos
Versión 3
Se aplica a:
Array (Objeto)
Vea también
Referencia
concat (Método, String)
join (Método)
String (Objeto)
JScript 8.0

concat (Método, String)


Devuelve un valor de cadena que contiene la concatenación de la cadena actual con otras cadenas proporcionadas.

function concat([string1 : String [, ... [, stringN : String]]]]) : String

Argumentos
string1, ... , stringN
Opcional. Literales u objetos String que se concatenarán al final de la cadena actual.
Comentarios
El resultado del método concat es equivalente a: result = curstring + string1 + ... + stringN. curstring hace referencia a la
cadena almacenada en el objeto que proporciona el método concat. Un cambio de valor en la cadena de origen o en la cadena
resultante no afecta al valor de la otra cadena. Si alguno de los argumentos no es una cadena, se convertirá en cadena antes de
concatenarse con el argumento string1.
Ejemplo
El siguiente ejemplo muestra el uso del método concat cuando se utiliza con una cadena:

function concatDemo(){
var str1 = "ABCDEFGHIJKLM"
var str2 = "NOPQRSTUVWXYZ";
var s = str1.concat(str2);
// Return concatenated string.
return(s);
}

Requisitos
Versión 3
Se aplica a:
String (Objeto)
Vea también
Referencia
Operador de suma (+)
Array (Objeto)
concat (Método, Array)
JScript 8.0

cos (Método)
Devuelve el coseno de un número.

function cos(number : Number) : Number

Argumentos
number
Necesario. Una expresión numérica.
Comentarios
El valor devuelto es el coseno de su argumento numérico.
Requisitos
Versión 1
Se aplica a:
Math (Objeto)
Vea también
Referencia
acos (Método)
asin (Método)
atan (Método)
sin (Método)
tan (Método)
JScript 8.0

decodeURI (Método)
Devuelve la versión sin codificar de un identificador de recursos uniforme (URI, Uniform Resource Identifier) codificado.

function decodeURI(URIstring : String) : String

Argumentos
URIstring
Necesario. Cadena que representa un identificador URI codificado.
Comentarios
Utilice el método decodeURI en lugar del método unescape obsoleto.
El método decodeURI devuelve un valor de cadena.
Si el argumento URIString no es válido, se produce un error URIError.
Requisitos
Versión 5,5
Se aplica a:
Global (Objeto)
Vea también
Referencia
decodeURIComponent (Método)
encodeURI (Método)
JScript 8.0

decodeURIComponent (Método)
Devuelve la versión sin codificar de un componente codificado de un identificador de recursos uniformes (URI, Uniform
Resource Identifier).

function decodeURIComponent(encodedURIString : String) : String

Comentarios
El argumento requerido encodedURIString es un valor que representa un componente de URI codificado.
Comentarios
Un componente de URI forma parte de un URI completo.
Si el argumento encodedURIString no es válido, se produce un error URIError.
Requisitos
Versión 5,5
Se aplica a:
Global (Objeto)
Vea también
Referencia
decodeURI (Método)
encodeURI (Método)
JScript 8.0

dimensions (Método)
Devuelve el número de dimensiones de un objeto VBArray.

function dimensions() : Number

Comentarios
El método dimensions proporciona una forma de obtener el número de dimensiones en un objeto VBArray especificado.
El siguiente ejemplo consta de tres partes. La primera parte es código VBScript para crear una matriz segura de Visual Basic. La
segunda parte es código JScript que determina el número de dimensiones de la matriz segura y el límite superior de cada
dimensión. Ambas partes van en la sección <HEAD> de una página HTML. La tercera parte es el código JScript que va en la
sección <BODY> para ejecutar las otras dos partes.

<HEAD>
<SCRIPT LANGUAGE="VBScript">
<!--
Function CreateVBArray()
Dim i, j, k
Dim a(2, 2)
k = 1
For i = 0 To 2
For j = 0 To 2
a(j, i) = k
k = k + 1
Next
Next
CreateVBArray = a
End Function
-->
</SCRIPT>

<SCRIPT LANGUAGE="JScript">
<!--
function VBArrayTest(vba)
{
var i, s;
var a = new VBArray(vba);
for (i = 1; i <= a.dimensions(); i++)
{
s = "The upper bound of dimension ";
s += i + " is ";
s += a.ubound(i)+ ".<BR>";
}
return(s);
}
-->
</SCRIPT>
</HEAD>

<BODY>
<SCRIPT language="jscript">
document.write(VBArrayTest(CreateVBArray()));
</SCRIPT>
</BODY>

Requisitos
Versión 3
Se aplica a:
VBArray (Objeto)
Vea también
Referencia
getItem (Método)
lbound (Método)
toArray (Método)
ubound (Método)
JScript 8.0

encodeURI (Método)
Devuelve una cadena codificada como un identificador de recursos uniforme (URI, Uniform Resource Identifier) válido.

function encodeURI(URIString : String) : String

Argumentos
URIString
Requerido. Cadena que representa un identificador URI codificado.
Comentarios
El método encodeURI devuelve un identificador URI codificado. Si se pasa el resultado a decodeURI, se devuelve la cadena
original. El método encodeURI no codifica los siguientes caracteres: ":", "/", ";" y "?". Utilice el método encodeURIComponent
para codificar estos caracteres.
Requisitos
Versión 5.5
Se aplica a:
Global (Objeto)
Vea también
Referencia
decodeURI (Método)
decodeURIComponent (Método)
JScript 8.0

encodeURIComponent (Método)
Devuelve una cadena codificada como un componente válido de un identificador de recursos uniforme (URI, Uniform Resource
Identifier).

function encodeURIComponent(encodedURIString : String) : String

Argumentos
encodedURIString
Necesario. Cadena que representa un componente de URI codificado.
Comentarios
El método encodeURIComponent devuelve un identificador URI codificado. Si se pasa el resultado a
decodeURIComponent, se devuelve la cadena original. Dado que el método encodeURIComponent codifica todos los
caracteres, conviene tener cuidado si la cadena representa una ruta del tipo de /carpeta1/carepta2/predeterminado.html. Los
caracteres de barra diagonal se codificarán y no serán válidos si se envían como consulta a un servidor Web. Utilice el método
encodeURI si la cadena contiene más de un componente de URI único.
Requisitos
Versión 5,5
Se aplica a:
Global (Objeto)
Vea también
Referencia
decodeURI (Método)
decodeURIComponent (Método)
JScript 8.0

escape (Método)
Devuelve un objeto String codificado que se puede leer en todos los equipos.

function escape(charString : String) : String

Argumentos
charString
Necesario. Literal u objeto String que se va a codificar.
Comentarios
El método escape devuelve un valor de cadena (en formato Unicode) que almacena el contenido del argumento charstring.
Todos los espacios, signos de puntuación, caracteres acentuados y caracteres no ASCII se reemplazan por codificación %xx,
donde xx es equivalente al número hexadecimal que representa el carácter. Por ejemplo, un espacio se devuelve como "%20".
Los caracteres con un valor mayor que 255 se almacenan mediante el formato %uxxxx.
Nota
El método escape no debe utilizarse para codificar identificadores de recursos uniformes (URI). En su lugar, utilice los métod
os encodeURI y encodeURIComponent.

Requisitos
Versión 1
Se aplica a:
Global (Objeto)
Vea también
Referencia
encodeURI (Método)
encodeURIComponent (Método)
String (Objeto)
unescape (Método)
JScript 8.0

eval (Método de JScript)


Evalúa código JScript y lo ejecuta.

function eval(codeString : String [, override : String])

Argumentos
codeString
Necesario. Cadena que contiene código de JScript válido.
override
Opcional. Cadena que determina qué permiso de seguridad se le debe aplicar al código de codeString.
Comentarios
La función eval permite la ejecución dinámica del código de origen de JScript.
El código pasado al método eval se ejecuta en el mismo contexto que la llamada al método eval. Tenga en cuenta que las
variables o tipos nuevos definidos en la instrucción eval no son visibles para el programa de inclusión.
El código que se pasa al método eval se ejecuta en un contexto de seguridad restringido, a menos que la cadena "unsafe" se
pase como segundo parámetro. El contexto de seguridad restringido ayuda a prohibir el acceso a los recursos del sistema,
como el sistema de archivos, la red o la interfaz de usuario. Si el código intenta obtener acceso a estos recursos, se genera una
excepción de seguridad.
Si el segundo parámetro de eval es la cadena "unsafe", el código que se pasa al método eval se ejecuta en el mismo contexto
de seguridad que el código de llamada. El segundo parámetro distingue entre mayúsculas y minúsculas, por lo tanto, las
cadenas "Unsafe" o "UnSAfE" no reemplazarán el contexto de seguridad restringido.
Nota de seguridad
Utilice eval en modo no seguro sólo para ejecutar cadenas de código obtenidas de orígenes de confianza.

Ejemplo
Por ejemplo, en el siguiente fragmento de código se inicializa la variable mydate a una fecha de prueba o a la fecha actual,
dependiendo del valor de la variable doTest:

var doTest : boolean = true;


var dateFn : String;
if(doTest)
dateFn = "Date(1971,3,8)";
else
dateFn = "Date()";
var mydate : Date;
eval("mydate = new "+dateFn+";");
print(mydate);

El resultado de este programa es:

Thu Apr 8 00:00:00 PDT 1971

Requisitos
Versión 1
Se aplica a:
Global (Objeto)
Vea también
Referencia
String (Objeto)
JScript 8.0

exec (Método)
Ejecuta una búsqueda en una cadena mediante un modelo de expresión regular y devuelve una matriz que contiene los
resultados de la búsqueda.

function exec(str : String) : Array

Argumentos
str
Necesario. Objeto String o literal de cadena donde se realizará la búsqueda.
Comentarios
Si el método exec no encuentra ninguna coincidencia, devuelve null. Si encuentra una coincidencia, el método exec devuelve
una matriz y las propiedades del objeto global RegExp se actualizan para reflejar los resultados de la búsqueda. El elemento
cero de la matriz contiene toda la coincidencia, mientras que los elementos 1 a n contienen subcoincidencias que se producen
dentro de la coincidencia. El comportamiento es idéntico al del método match sin establecer el indicador global (g).
Si se establece el identificador global para una expresión regular, el método exec busca la cadena empezando en la posición
indicada por el valor de lastIndex. Si no se establece el identificador global, exec omite el valor de lastIndex y busca desde el
principio de la cadena.
La matriz devuelta por el método exec tiene tres propiedades: input, index y lastIndex. La propiedad input contiene la
cadena completa en la que se busca. La propiedad index contiene la posición de la subcadena encontrada dentro de la cadena
completa en la que se busca. La propiedad lastIndex contiene la posición posterior al último carácter de la coincidencia.
Ejemplo
En el siguiente ejemplo se muestra el uso del método exec:

function RegExpTest() {
var s = "";
var src = "The rain in Spain falls mainly in the plain.";
// Create regular expression pattern for matching a word.
var re = /\w+/g;
var arr;
// Loop over all the regular expression matches in the string.
while ((arr = re.exec(src)) != null)
s += arr.index + "-" + arr.lastIndex + "\t" + arr + "\n";
return s;
}

Requisitos
Versión 3
Se aplica a:
Regular Expression (Objeto)
Vea también
Referencia
match (Método)
RegExp (Objeto)
search (Método)
test (Método)
Conceptos
Sintaxis de expresiones regulares
JScript 8.0

exp (Método)
Devuelve e (base de los logaritmos naturales) elevado a una potencia.

function exp(number : Number) : Number

Argumentos
number
Requerido. Una expresión numérica.
Comentarios
El valor devuelto es el número e. La constante e es la base de logaritmos naturales, aproximadamente igual a 2,178, y el
argumento number es el argumento proporcionado.
Requisitos
Versión 1
Se aplica a:
Math (Objeto)
Vea también
Referencia
E (Propiedad)
JScript 8.0

Métodos (F-I)
Un método es una función que es miembro de un objeto. A continuación se muestran los métodos cuyos nombres empiezan
con las letras de la f a la i.
En esta sección
fixed (Método)
Coloca etiquetas <TT> de HTML a ambos lados del texto de un objeto String.
floor (Método)
Devuelve el entero más grande que sea menor o igual que su argumento numérico.
fontcolor (Método)
Coloca una etiqueta <FONT> de HTML con el atributo COLOR a ambos lados del texto almacenado en un objeto String.
fontsize (Método)
Coloca una etiqueta <FONT> de HTML con el atributo SIZE a ambos lados del texto almacenado en un objeto String.
fromCharCode (Método)
Devuelve una cadena a partir de varios valores de caracteres Unicode.
getDate (Método)
Devuelve, utilizando la hora local, el valor "día del mes" (Date) de un objeto Date.
getDay (Método)
Devuelve, utilizando la hora local, el valor "día de la semana" (Day) de un objeto Date.
getFullYear (Método)
Devuelve, utilizando la hora local, el valor "año" (FullYear) del objeto Date.
getHours (Método)
Devuelve, utilizando la hora local, el valor "horas" (Hours) de un objeto Date.
getItem (Método)
Devuelve el elemento que se encuentra en la ubicación especificada.
getMilliseconds (Método)
Devuelve, utilizando la hora local, el valor "milisegundos" (Milliseconds) de un objeto Date.
getMinutes (Método)
Devuelve, utilizando la hora local, el valor "minutos" (Minutes) almacenado en un objeto Date.
getMonth (Método)
Devuelve, utilizando la hora local, el valor "mes" (Month) del objeto Date.
getSeconds (Método)
Devuelve, utilizando la hora local, el valor "segundos" (Seconds) almacenado en un objeto Date.
getTime (Método)
Devuelve el valor de hora de un objeto Date.
getTimezoneOffset (Método)
Devuelve la diferencia en minutos entre la hora del equipo host y la hora universal coordinada (UTC).
getUTCDate (Método)
Devuelve, utilizando el horario universal coordinado (UTC), el valor "fecha" (Date) de un objeto Date.
getUTCDay (Método)
Devuelve, utilizando la hora universal coordinada (UTC), el valor de día de la semana (Day) de un objeto Date.
getUTCFullYear (Método)
Devuelve, utilizando la hora universal coordinada (UTC), el valor de año (FullYear) de un objeto Date.
getUTCHours (Método)
Devuelve, utilizando la hora universal coordinada (UTC), el valor de horas de un objeto Date.
getUTCMilliseconds (Método)
Devuelve, utilizando la hora universal coordinada (UTC), el valor de milisegundos de un objeto Date.
getUTCMinutes (Método)
Devuelve, utilizando la hora universal coordinada (UTC), el valor de minutos de un objeto Date.
getUTCMonth (Método)
Devuelve, utilizando la hora universal coordinada (UTC), el valor de mes de un objeto Date.
getUTCSeconds (Método)
Devuelve, utilizando la hora universal coordinada (UTC), el valor de segundos de un objeto Date.
getVarDate (Método)
Devuelve el valor VT_DATE de un objeto Date.
getYear (Método)
Devuelve el valor del año en un objeto Date. (Este método está obsoleto; en su lugar, utilice el método getFullYear.)
hasOwnProperty (Método)
Devuelve un valor Boolean que indica si un objeto tiene una propiedad con el nombre especificado.
indexOf (Método)
Devuelve la posición del carácter donde tiene lugar la primera repetición de una subcadena dentro de un objeto String.
isFinite (Método)
Devuelve un valor Boolean que indica si un número proporcionado es finito.
isNaN (Método)
Devuelve un valor Boolean que indica si un valor es el valor reservado NaN(no es un número).
isPrototypeOf (Método)
Devuelve un valor Boolean que indica si un objeto existe en la cadena de prototipo de otro objeto.
italics (Método)
Coloca etiquetas HTML <I> a ambos lados del texto de un objeto String.
item (Método)
Devuelve el elemento actual de la colección.
Secciones relacionadas
Referencia de JScript
Enumera los elementos que comprende la Referencia del lenguaje JScript e incluye vínculos a temas que explican con más
detalle el uso correcto de los elementos del lenguaje.
Métodos
Enumera por orden alfabético los métodos disponibles en JScript y proporciona vínculos a cada una de las categorías de los
métodos.
Objetos
Detalla el concepto de objeto en JScript, explica cómo los objetos están relacionados con las propiedades y los métodos, e
incluye vínculos a temas que proporcionan más detalles sobre los objetos que JScript admite.
JScript 8.0

fixed (Método)
Devuelve una cadena con etiquetas <TT> HTML a ambos lados del texto en un objeto String.

function fixed() : String

Comentarios
No se comprueba si ya se aplicó la etiqueta a la cadena.
Ejemplo
El siguiente ejemplo muestra cómo funciona el método fixed:

var strVariable = "This is a string object";


strVariable = strVariable.fixed();

El valor de strVariable después de la última instrucción es:

<TT>This is a string object</TT>

Requisitos
Versión 1
Se aplica a:
String (Objeto)
Vea también
Otros recursos
Métodos
JScript 8.0

floor (Método)
Devuelve el entero más grande que sea menor o igual que su argumento numérico.

function floor(number : Number) : Number

Argumentos
number
Necesario. Una expresión numérica.
Comentarios
El valor devuelto es un valor entero igual al entero más grande que sea menor o igual que su argumento numérico.
Requisitos
Versión 1
Se aplica a:
Math (Objeto)
Vea también
Referencia
ceil (Método)
JScript 8.0

fontcolor (Método)
Devuelve una cadena con una etiqueta <FONT> HTML que posee el atributo COLOR a ambos lados del texto en un objeto
String.

function fontcolor(colorVal : String) : String

Argumentos
colorVal
Necesario. Valor de cadena que contiene el valor del color. Puede ser el valor hexadecimal de un color o el nombre
predefinido de un color.
Comentarios
Los nombres de colores predefinidos válidos dependen del host de JScript (explorador, servidor, etc.). También pueden variar
entre versiones del host. Consulte la documentación del host para obtener más información.
No se comprueba si ya se aplicó la etiqueta a la cadena.
Ejemplo
El siguiente ejemplo muestra el método fontcolor:

var strVariable = "This is a string";


strVariable = strVariable.fontcolor("red");

El valor de strVariable después de la última instrucción es:

<FONT COLOR="RED">This is a string</FONT>

Requisitos
Versión 1
Se aplica a:
String (Objeto)
Vea también
Referencia
fontsize (Método)
JScript 8.0

fontsize (Método)
Devuelve una cadena con una etiqueta <FONT> HTML que posee el atributo COLOR a ambos lados del texto en un objeto
String.

function fontsize(intSize : Number) : String

Argumentos
intSize
Necesario. Valor entero que especifica el tamaño del texto.
Comentarios
Los valores enteros válidos dependen del host de Microsoft JScript. Consulte la documentación del host para obtener más
información.
No se comprueba si ya se aplicó la etiqueta a la cadena.
Ejemplo
El siguiente ejemplo muestra el método fontsize:

var strVariable = "This is a string";


strVariable = strVariable.fontsize(-1);

El valor de strVariable después de la última instrucción es:

<FONT SIZE="-1">This is a string</FONT>

Requisitos
Versión 1
Se aplica a:
String (Objeto)
Vea también
Referencia
fontcolor (Método)
JScript 8.0

fromCharCode (Método)
Devuelve una cadena a partir de varios valores de caracteres Unicode.

function fromCharCode([code1 : Number [, ... [, codeN : Number]]]]) : String

Argumentos
code1, ... , codeN
Opcional. Serie de valores de caracteres Unicode que se van a convertir en una cadena. Si no se proporcionan argumentos, el
resultado es una cadena vacía.
Comentarios
El método fromCharCode se llama desde el objeto String global.
Ejemplo
En el siguiente ejemplo, a test se le asigna la cadena "plain":

var test = String.fromCharCode(112, 108, 97, 105, 110);

Requisitos
Versión 3
Se aplica a:
String (Objeto)
Vea también
Referencia
charCodeAt (Método)
JScript 8.0

getDate (Método)
Devuelve, utilizando la hora local, el valor "día del mes" (Date) de un objeto Date.

function getDate() : Number

Comentarios
Para obtener el valor de fecha mediante la hora universal coordinada (UTC), utilice el método getUTCDate.
El valor devuelto es un entero entre 1 y 31 que representa el valor de fecha en el objeto Date.
Ejemplo
En el siguiente ejemplo se muestra el uso del método getDate.

function DateDemo(){
var d, s = "Today's date is: ";
d = new Date();
s += (d.getMonth() + 1) + "/";
s += d.getDate() + "/";
s += d.getYear();
return(s);
}

Requisitos
Versión 1
Se aplica a:
Date (Objeto)
Vea también
Referencia
getUTCDate (Método)
setDate (Método)
setUTCDate (Método)
JScript 8.0

getDay (Método)
Devuelve, utilizando la hora local, el valor "día de la semana" (Day) de un objeto Date.

function getDay() : Number

Comentarios
Para obtener el día mediante la hora universal coordinada (UTC), utilice el método getUTCDay.
El valor devuelto por el método getDay es un entero entre 0 y 6 que representa el día de la semana y corresponde a un día de
la semana como se indica a continuación:
Valor Día de la semana
0 Domingo

1 Lunes

2 Martes

3 Miércoles

4 Jueves

5 Viernes

6 Sábado

En el siguiente ejemplo se muestra el uso del método getDay.

function DateDemo(){
var d, day, x, s = "Today is: ";
var x = new Array("Sunday", "Monday", "Tuesday");
var x = x.concat("Wednesday","Thursday", "Friday");
var x = x.concat("Saturday");
d = new Date();
day = d.getDay();
return(s += x[day]);
}

Requisitos
Versión 1
Se aplica a:
Date (Objeto)
Vea también
Referencia
getUTCDay (Método)
JScript 8.0

getFullYear (Método)
Devuelve, utilizando la hora local, el valor "año" (FullYear) del objeto Date.

function .getFullYear() : Number

Comentarios
Para obtener el año mediante la hora universal coordinada (UTC), utilice el método getUTCFullYear.
El método getFullYear devuelve el año como valor absoluto. Por ejemplo, el año 1976 se devuelve como 1976. De este modo
se evita el problema del año 2000, en que las fechas a partir del 1 de enero de 2000 se confundirían con las fechas a partir del
1 de enero de 1900.
En el siguiente ejemplo se muestra el uso del método getFullYear.

function DateDemo(){
var d, s = "Today's date is: ";
d = new Date();
s += (d.getMonth() + 1) + "/";
s += d.getDate() + "/";
s += d.getFullYear();
return(s);
}

Requisitos
Versión 3
Se aplica a:
Date (Objeto)
Vea también
Referencia
getUTCFullYear (Método)
setFullYear (Método)
setUTCFullYear (Método)
JScript 8.0

getHours (Método)
Devuelve, utilizando la hora local, el valor "horas" (Hours) de un objeto Date.

function getHours() : Number

Comentarios
Para obtener el valor de las horas mediante la hora universal coordinada (UTC), utilice el método getUTCHours.
El método getHours devuelve un entero entre 0 y 23, que indica el número de horas transcurrido desde la medianoche. Se
devuelve un cero en dos situaciones: cuando la hora es anterior a 1:00:00 a.m. o si no se almacenó la hora en el objeto Date al
crear el objeto. La única manera de determinar el tipo de situación es comprobar también los minutos y segundos para los
valores iguales a cero. Si son cero, es prácticamente seguro que no se almacenó la hora en el objeto Date.
En el siguiente ejemplo se muestra el uso del método getHours.

function TimeDemo(){
var d, s = "The current local time is: ";
var c = ":";
d = new Date();
s += d.getHours() + c;
s += d.getMinutes() + c;
s += d.getSeconds() + c;
s += d.getMilliseconds();
return(s);
}

Requisitos
Versión 1
Se aplica a:
Date (Objeto)
Vea también
Referencia
getUTCHours (Método)
setHours (Método)
setUTCHours (Método)
JScript 8.0

getItem (Método)
Devuelve el elemento que se encuentra en la ubicación especificada del objeto VBArray.

function getItem(dimension1 : Number [, ...], dimensionN : Number) : Object

Argumentos
dimension1, ..., dimensionN
Especifica la ubicación exacta del elemento deseado del objeto VBArray. El número de argumentos debe coincidir con el
número de dimensiones del objeto VBArray.
Ejemplo
El siguiente ejemplo consta de tres partes. La primera parte es código VBScript para crear una matriz segura de Visual Basic. La
segunda parte es código de JScript que recorre en iteración la matriz segura de Visual Basic e imprime el contenido de cada
elemento. Ambas partes van en la sección <HEAD> de una página HTML. La tercera parte es el código JScript que va en la
sección <BODY> para ejecutar las otras dos partes.

<HEAD>
<SCRIPT LANGUAGE="VBScript">
<!--
Function CreateVBArray()
Dim i, j, k
Dim a(2, 2)
k = 1
For i = 0 To 2
For j = 0 To 2
a(i, j) = k
document.writeln(k)
k = k + 1
Next
document.writeln("<BR>")
Next
CreateVBArray = a
End Function
-->
</SCRIPT>
<SCRIPT LANGUAGE="JScript">
<!--
function GetItemTest(vbarray)
{
var i, j;
var a = new VBArray(vbarray);
for (i = 0; i <= 2; i++)
{
for (j =0; j <= 2; j++)
{
document.writeln(a.getItem(i, j));
}
}
}-->
</SCRIPT>
</HEAD>
&ltBODY>
<SCRIPT LANGUAGE="JScript">
<!--
GetItemTest(CreateVBArray());
-->
</SCRIPT>
</BODY>

Requisitos
Versión 1
Se aplica a:
VBArray (Objeto)
Vea también
Referencia
dimensions (Método)
lbound (Método)
toArray (Método)
ubound (Método)
JScript 8.0

getMilliseconds (Método)
Devuelve, utilizando la hora local, el valor "milisegundos" (Milliseconds) de un objeto Date.

function getMilliseconds() : Number

Comentarios
Para obtener el número de milisegundos mediante la hora universal coordinada (UTC), utilice el método getUTCMilliseconds.
El valor de milisegundos devuelto puede oscilar entre 0 y 999.
Ejemplo
El siguiente ejemplo muestra el uso del método getMilliseconds.

function TimeDemo(){
var d, s = "The current local time is: ";
var c = ":";
d = new Date();
s += d.getHours() + c;
s += d.getMinutes() + c;
s += d.getSeconds() + c;
s += d.getMilliseconds();
return(s);
}

Requisitos
Versión 3
Se aplica a:
Date (Objeto)
Vea también
Referencia
getUTCMilliseconds (Método)
setMilliseconds (Método)
ssetUTCMilliseconds (Método)
JScript 8.0

getMinutes (Método)
Devuelve el valor de minutos de un objeto Date mediante la hora local.

function getMinutes() : Number

Comentarios
Para obtener el valor de los minutos mediante la hora universal coordinada (UTC), utilice el método getUTCMinutes.
El método getMinutes devuelve un entero entre 0 y 59 igual al valor de minutos almacenado en el objeto Date. Se devuelve
un cero en dos situaciones: cuando el tiempo posterior a la hora es inferior a un minuto o si no se almacenó la hora en el
objeto Date al crear el objeto. La única manera de determinar el tipo de situación es comprobar también las horas y segundos
para los valores iguales a cero. Si son cero, es prácticamente seguro que no se almacenó la hora en el objeto Date.
Ejemplo
En el siguiente ejemplo se muestra el uso del método getMinutes.

function TimeDemo(){
var d, s = "The current local time is: ";
var c = ":";
d = new Date();
s += d.getHours() + c;
s += d.getMinutes() + c;
s += d.getSeconds() + c;
s += d.getMilliseconds();
return(s);
}

Requisitos
Versión 3
Se aplica a:
Date (Objeto)
Vea también
Referencia
getUTCMinutes (Método)
setMinutes (Método)
setUTCMinutes (Método)
JScript 8.0

getMonth (Método)
Devuelve, utilizando la hora local, el valor "mes" (Month) del objeto Date.

function getMonth() : Number

Comentarios
Para obtener el valor de mes mediante la hora universal coordinada (UTC), utilice el método getUTCMonth.
El método getMonth devuelve un entero entre 0 y 11 que indica el valor de mes en el objeto Date. El entero devuelto no es el
número que se utiliza tradicionalmente para indicar el mes. Es uno menos. Si se almacena "Jan 5, 1996 08:47:00" en un objeto
Date, getMonth devuelve 0.
Ejemplo
El siguiente ejemplo muestra el uso del método getMonth.

function DateDemo(){
var d, s = "Today's date is: ";
d = new Date();
s += (d.getMonth() + 1) + "/";
s += d.getDate() + "/";
s += d.getYear();
return(s);
}

Requisitos
Versión 1
Se aplica a:
Date (Objeto)
Vea también
Referencia
getUTCMonth (Método)
setMonth (Método)
setUTCMonth (Método)
JScript 8.0

getSeconds (Método)
Devuelve el valor de segundos de un objeto Date mediante la hora local.

function getSeconds() : Number

Comentarios
Para obtener el valor de segundos mediante la hora universal coordinada (UTC), utilice el método getUTCSeconds.
El método getSeconds devuelve un entero entre 0 y 59 que indica el valor de los segundos del objeto Date indicado. Se
devuelve un cero en dos situaciones: cuando el tiempo correspondiente al minuto actual es inferior a un segundo o si no se
almacenó la hora en el objeto Date al crear el objeto. La única manera de determinar el tipo de situación es comprobar
también las horas y minutos para los valores iguales a cero. Si son cero, es prácticamente seguro que no se almacenó la hora
en el objeto Date.
Ejemplo
En el siguiente ejemplo se muestra el uso del método getSeconds.

function TimeDemo(){
var d, s = "The current local time is: ";
var c = ":";
d = new Date();
s += d.getHours() + c;
s += d.getMinutes() + c;
s += d.getSeconds() + c;
s += d.getMilliseconds();
return(s);
}

Requisitos
Versión 1
Se aplica a:
Date (Objeto)
Vea también
Referencia
getUTCSeconds (Método)
setSeconds (Método)
setUTCSeconds (Método)
JScript 8.0

getTime (Método)
Devuelve el valor de hora de un objeto Date.

function getTime() : Number

Comentarios
El método getTime devuelve un valor entero que representa el número de milisegundos transcurrido entre la medianoche del
1 de enero de 1970 y la hora incluida en el objeto Date. El intervalo de fechas es, aproximadamente, 285.616 años antes o
después de la medianoche del 1 de enero de 1970. Los números negativos indican fechas anteriores a 1970.
Si se hacen varios cálculos de fechas y horas, conviene definir variables iguales al número de milisegundos de un día, hora o
minuto. Por ejemplo:

var MinMilli = 1000 * 60


var HrMilli = MinMilli * 60
var DyMilli = HrMilli * 24

Ejemplo
En el siguiente ejemplo se muestra el uso del método getTime.

function GetTimeTest(){
var d, s, t;
var MinMilli = 1000 * 60;
var HrMilli = MinMilli * 60;
var DyMilli = HrMilli * 24;
d = new Date();
t = d.getTime();
s = "It's been "
s += Math.round(t / DyMilli) + " days since 1/1/70";
return(s);
}

Requisitos
Versión 1
Se aplica a:
Date (Objeto)
Vea también
Referencia
setTime (Método)
JScript 8.0

getTimezoneOffset (Método)
Devuelve la diferencia en minutos entre la hora del equipo host y la hora universal coordinada (UTC).

function getTimezoneOffset() : Number

Comentarios
El método getTimezoneOffset devuelve un valor entero que representa el número de minutos entre la hora del equipo actual
y la hora UTC. Estos valores son apropiados para el equipo en el que se está ejecutando la secuencia de comandos. Si la
llamada se realiza desde una secuencia de comandos de servidor, el valor devuelto corresponde al servidor. Si la llamada se
realiza desde una secuencia de comandos de cliente, el valor devuelto corresponde al cliente.
Este número será positivo si la hora del lugar donde está el usuario es posterior al valor de UTC (por ejemplo, Horario diurno
del Pacífico) y negativo si es anterior a UTC (por ejemplo, Japón).
Por ejemplo, imagínese que un cliente de Los Ángeles se pone en contacto con la ciudad de Nueva York el 1 de diciembre.
getTimezoneOffset devuelve 480 si se ejecuta en el cliente, o 300 si se ejecuta en el servidor.
Ejemplo
En el siguiente ejemplo se muestra el uso del método getTimezoneOffset.

function TZDemo(){
var d, tz, s = "The current local time is ";
d = new Date();
tz = d.getTimezoneOffset();
if (tz < 0)
s += tz / 60 + " hours before UTC";
else if (tz == 0)
s += "UTC";
else
s += tz / 60 + " hours after UTC";
return(s);
}

Requisitos
Versión 1
Se aplica a:
Date (Objeto)
Vea también
Otros recursos
Métodos
JScript 8.0

getUTCDate (Método)
Devuelve la fecha de un objeto Date mediante la hora universal coordinada (UTC).

function getUTCDate() : Number

Comentarios
Para obtener la fecha mediante la hora local, utilice el método getDate.
El valor devuelto es un entero entre 1 y 31 que representa el valor de fecha en el objeto Date.
Ejemplo
En el siguiente ejemplo se muestra el uso del método getUTCDate.

function UTCDateDemo(){
var d, s = "Today's UTC date is: ";
d = new Date();
s += (d.getUTCMonth() + 1) + "/";
s += d.getUTCDate() + "/";
s += d.getUTCFullYear();
return(s);
}

Requisitos
Versión 3
Se aplica a:
Date (Objeto)
Vea también
Referencia
getDate (Método)
setDate (Método)
setUTCDate (Método)
JScript 8.0

getUTCDay (Método)
Devuelve, utilizando la hora universal coordinada (UTC), el valor de día de la semana (Day) de un objeto Date.

function getUTCDay() : Number

Comentarios
Para obtener el día de la semana mediante la hora local, utilice el método getDate.
El valor devuelto por el método getUTCDay es un entero entre 0 y 6 que representa el día de la semana y corresponde a un
día de la semana como se indica a continuación:
Valor Día de la semana
0 Domingo

1 Lunes

2 Martes

3 Miércoles

4 Jueves

5 Viernes

6 Sábado
Ejemplo
En el siguiente ejemplo se muestra el uso del método getUTCDay.

function DateDemo(){
var d, day, x, s = "Today is ";
var x = new Array("Sunday", "Monday", "Tuesday");
x = x.concat("Wednesday","Thursday", "Friday");
x = x.concat("Saturday");
d = new Date();
day = d.getUTCDay();
return(s += x[day] + " in UTC");
}

Requisitos
Versión 3
Se aplica a:
Date (Objeto)
Vea también
Referencia
getDay (Método)
JScript 8.0

getUTCFullYear (Método)
Devuelve, utilizando la hora universal coordinada (UTC), el valor de año (FullYear) de un objeto Date.

function getUTCFullYear() : Number

Comentarios
Para obtener el año mediante la hora local, utilice el método getFullYear.
El método getUTCFullYear devuelve el año como un número absoluto. De este modo se evita el problema del año 2000, en
que las fechas a partir del 1 de enero de 2000 se confundirían con las fechas a partir del 1 de enero de 1900.
Ejemplo
En el siguiente ejemplo se muestra el uso del método getUTCFullYear.

function UTCDateDemo(){
var d, s = "Today's UTC date is: ";
d = new Date();
s += (d.getUTCMonth() + 1) + "/";
s += d.getUTCDate() + "/";
s += d.getUTCFullYear();
return(s);
}

Requisitos
Versión 3
Se aplica a:
Date (Objeto)
Vea también
Referencia
getFullYear (Método)
setFullYear (Método)
setUTCFullYear (Método)
JScript 8.0

getUTCHours (Método)
Devuelve, utilizando la hora universal coordinada (UTC), el valor de horas de un objeto Date.

function getUTCHours() : Number

Comentarios
Para obtener el número de horas transcurrido desde la medianoche mediante la hora local, utilice el método getHours.
El método getUTCHours devuelve un entero entre 0 y 23 que indica el número de horas transcurrido desde la medianoche. Se
devuelve un cero en dos situaciones: cuando la hora es anterior a 1:00:00 a.m. o si no se almacenó la hora en el objeto Date al
crear el objeto. La única manera de determinar el tipo de situación es comprobar también los minutos y segundos para los
valores iguales a cero. Si son cero, es prácticamente seguro que no se almacenó la hora en el objeto Date.
Ejemplo
En el siguiente ejemplo se muestra el uso del método getUTCHours.

function UTCTimeDemo(){
var d, s = "Current Coordinated Universal Time (UTC) is: ";
var c = ":";
d = new Date();
s += d.getUTCHours() + c;
s += d.getUTCMinutes() + c;
s += d.getUTCSeconds() + c;
s += d.getUTCMilliseconds();
return(s);
}

Requisitos
Versión 3
Se aplica a:
Date (Objeto)
Vea también
Referencia
getHours (Método)
setHours (Método)
setUTCHours (Método)
JScript 8.0

getUTCMilliseconds (Método)
Devuelve, utilizando la hora universal coordinada (UTC), el valor de milisegundos de un objeto Date.

function getUTCMilliseconds() : Number

Comentarios
Para obtener el número de milisegundos en la hora local, utilice el método getMilliseconds.
El valor de milisegundos devuelto puede oscilar entre 0 y 999.
Ejemplo
En el siguiente ejemplo se muestra el uso del método getUTCMilliseconds.

function UTCTimeDemo(){
var d, s = "Current Coordinated Universal Time (UTC) is: ";
var c = ":";
d = new Date();
s += d.getUTCHours() + c;
s += d.getUTCMinutes() + c;
s += d.getUTCSeconds() + c;
s += d.getUTCMilliseconds();
return(s);
}

Requisitos
Versión 3
Se aplica a:
Date (Objeto)
Vea también
Referencia
getMilliseconds (Método)
setMilliseconds (Método)
ssetUTCMilliseconds (Método)
JScript 8.0

getUTCMinutes (Método)
Devuelve, utilizando la hora universal coordinada (UTC), el valor de minutos de un objeto Date.

function getUTCMinutes() : Number

Comentarios
Para obtener el número de minutos almacenados mediante la hora local, utilice el método getMinutes.
El método getUTCMinutes devuelve un entero entre 0 y 59 igual al valor de minutos almacenado en el objeto Date. Se
devuelve un cero en dos situaciones: cuando el tiempo posterior a la hora es inferior a un minuto o si no se almacenó la hora
en el objeto Date al crear el objeto. La única manera de determinar el tipo de situación es comprobar también las horas y
segundos para los valores iguales a cero. Si son cero, es prácticamente seguro que no se almacenó la hora en el objeto Date.
Ejemplo
En el siguiente ejemplo se muestra el uso del método getUTCMinutes.

function UTCTimeDemo()
{
var d, s = "Current Coordinated Universal Time (UTC) is: ";
var c = ":";
d = new Date();
s += d.getUTCHours() + c;
s += d.getUTCMinutes() + c;
s += d.getUTCSeconds() + c;
s += d.getUTCMilliseconds();
return(s);
}

Requisitos
Versión 3
Se aplica a:
Date (Objeto)
Vea también
Referencia
getMinutes (Método)
setMinutes (Método)
setUTCMinutes (Método)
JScript 8.0

getUTCMonth (Método)
Devuelve, utilizando la hora universal coordinada (UTC), el valor de mes de un objeto Date.

function getUTCMonth(): Number

Comentarios
Para obtener el mes en la hora local, utilice el método getMonth.
El método getUTCMonth devuelve un entero entre 0 y 11 que indica el valor del mes en el objeto Date. El entero devuelto no
es el número que se utiliza tradicionalmente para indicar el mes. Es uno menos. Si se almacena "Jan 5, 1996 08:47:00.0" en un
objeto Date, getUTCMonth devuelve 0.
Ejemplo
En el siguiente ejemplo se muestra el uso del método getUTCMonth.

function UTCDateDemo(){
var d, s = "Today's UTC date is: ";
d = new Date();
s += (d.getUTCMonth() + 1) + "/";
s += d.getUTCDate() + "/";
s += d.getUTCFullYear();
return(s);
}

Requisitos
Versión 3
Se aplica a:
Date (Objeto)
Vea también
Referencia
getMonth (Método)
setMonth (Método)
setUTCMonth (Método)
JScript 8.0

getUTCSeconds (Método)
Devuelve, utilizando la hora universal coordinada (UTC), el valor de segundos de un objeto Date.

function getUTCSeconds(): Number

Comentarios
Para obtener el número de segundos en la hora local, utilice el método getSeconds.
El método getUTCSeconds devuelve un entero entre 0 y 59 que indica el valor de los segundos del objeto Date indicado. Se
devuelve un cero en dos situaciones: cuando la diferencia entre la hora UTC y el minuto actual es inferior a un segundo o si no
se almacenó una hora en el objeto Date al crear el objeto. La única manera de determinar el tipo de situación es comprobar
también las horas y minutos para los valores iguales a cero. Si son cero, es prácticamente seguro que no se almacenó la hora
en el objeto Date.
Ejemplo
En el siguiente ejemplo se muestra el uso del método getUTCSeconds.

function UTCTimeDemo(){
var d, s = "Current Coordinated Universal Time (UTC) is: ";
var c = ":";
d = new Date();
s += d.getUTCHours() + c;
s += d.getUTCMinutes() + c;
s += d.getUTCSeconds() + c;
s += d.getUTCMilliseconds();
return(s);
}

Requisitos
Versión 3
Se aplica a:
Date (Objeto)
Vea también
Referencia
getSeconds (Método)
setSeconds (Método)
setUTCSeconds (Método)
JScript 8.0

getVarDate (Método)
Devuelve el valor VT_DATE de un objeto Date.

function getVarDate(): System.DateTime

Comentarios
El método getVarDate se utiliza al interactuar con objetos COM, objetos ActiveX® u otros objetos que aceptan y devuelven
valores de fecha con formato VT_DATE, como los de Visual Basic y VBScript. El formato real depende de la configuración
regional y no debe depender de JScript.
Requisitos
Versión 3
Se aplica a:
Date (Objeto)
Vea también
Referencia
getDate (Método)
parse (Método)
JScript 8.0

getYear (Método)
Devuelve el valor del año en un objeto Date.

function getYear(): Number

Comentarios
Este método está obsoleto y sólo se proporciona para ofrecer compatibilidad con versiones anteriores. En su lugar, utilice el
método getFullYear.
Para los años comprendidos entre 1900 y 1999, el año es un valor entero de 2 dígitos devuelto como la diferencia entre el año
almacenado y 1900. Para las fechas que quedan fuera de ese período, se devuelve el año con 4 dígitos. Por ejemplo, 1996 se
devuelve como 96, pero 1825 y 2025 se devuelven sin variar.
Nota
En JScript versión 1.0, el método getYear devuelve un valor que es el resultado de restar 1900 al valor de año del objeto Da
te proporcionado, con independencia del valor de año. Por ejemplo, el año 1899 se devuelve como -1 y el año 2000 se devu
elve como 100.

Ejemplo
El siguiente ejemplo muestra el uso del método getYear:

function DateDemo(){
var d, s = "Today's date is: ";
d = new Date();
s += (d.getMonth() + 1) + "/";
s += d.getDate() + "/";
s += d.getYear();
return(s);
}

Requisitos
Versión 1
Se aplica a:
Date (Objeto)
Vea también
Referencia
getFullYear (Método)
getUTCFullYear (Método)
setFullYear (Método)
setUTCFullYear (Método)
setYear (Método)
JScript 8.0

hasOwnProperty (Método)
Devuelve un valor Boolean que indica si un objeto tiene una propiedad con el nombre especificado.

function hasOwnProperty(proName : String) : Boolean

Argumentos
proName
Necesario. Valor de cadena de un nombre de propiedad.
Comentarios
El método hasOwnProperty devuelve true si el objeto tiene una propiedad con el nombre especificado y false en caso
contrario. Este método no comprueba si la propiedad existe en la cadena del prototipo del objeto; la propiedad debe ser
miembro del propio objeto.
Ejemplo
En el ejemplo siguiente, todos los objetos String comparten un método split común.

var s = new String("JScript");


print(s.hasOwnProperty("split"));
print(String.prototype.hasOwnProperty("split"));

El resultado de este programa es:

false
true

Requisitos
Versión 5,5
Se aplica a:
Object (Objeto)
Vea también
Referencia
in (Operador)
JScript 8.0

indexOf (Método)
Devuelve la posición del carácter donde tiene lugar la primera repetición de una subcadena dentro de un objeto String.

function indexOf(subString : String [, startIndex : Number]) : Number

Argumentos
subString
Requerido. Subcadena que se va a buscar dentro del objeto String.
startIndex
Opcional. Valor entero que especifica el índice para comenzar la búsqueda dentro del objeto String. Si se omite, la búsqueda
comienza al principio de la cadena.
Comentarios
El método indexOf devuelve un valor entero que indica el principio de la subcadena dentro del objeto String. Si no se
encuentra la subcadena, se devuelve -1.
Si el argumento startIndex es negativo, se trata como cero. Si es superior al mayor índice de posición del carácter, se trata
como el mayor índice posible.
La búsqueda se realiza de izquierda a derecha. De lo contrario, este método es idéntico a lastIndexOf.
Ejemplo
El siguiente ejemplo muestra el uso del método indexOf.

function IndexDemo(str2){
var str1 = "BABEBIBOBUBABEBIBOBU"
var s = str1.indexOf(str2);
return(s);
}

Requisitos
Versión 1
Se aplica a:
String (Objeto)
Vea también
Referencia
lastIndexOf (Método)
JScript 8.0

isFinite (Método)
Devuelve un valor Boolean que indica si un número proporcionado es finito.

function isFinite(number : Number) : Boolean

Argumentos
number
Necesario. Un valor numérico.
Comentarios
El método isFinite devuelve true si el argumento number es cualquier valor distinto de NaN, infinito negativo o infinito
positivo. En estos tres últimos casos, devuelve false.
Requisitos
Versión 3
Se aplica a:
Global (Objeto)
Vea también
Referencia
isNaN (Método)
JScript 8.0

isNaN (Método)
Devuelve un valor Boolean que indica si un valor es el valor reservado NaN(no es un número).

function isNaN(number : Number) : Boolean

Argumentos
number
Necesario. Un valor numérico.
Comentarios
La función isNaN devuelve true si el valor es NaN y false en caso contrario. Normalmente esta función se utiliza para
comprobar los valores devueltos desde los métodos parseInt y parseFloat.
De forma alternativa, una variable se podría comparar consigo misma. Si la comparación devuelve una desigualdad, es NaN.
Esto se debe a que NaN es el único valor que no es igual a sí mismo.
Requisitos
Versión 1
Se aplica a:
Global (Objeto)
Vea también
Referencia
isFinite (Método)
NaN (Propiedad, Global)
parseFloat (Método)
parseInt (Método)
JScript 8.0

isPrototypeOf (Método)
Devuelve un valor Boolean que indica si un objeto existe en la cadena de prototipo de otro objeto.

function isPrototypeOf(obj : Object) : Boolean

Argumentos
obj
Necesario. Objeto cuya cadena de prototipo se va a comprobar.
Comentarios
El método isPrototypeOf devuelve true si obj tiene el objeto actual en su cadena de prototipo. La cadena de prototipo se
utiliza para compartir la funcionalidad entre instancias del mismo tipo de objetos. El método isPrototypeOf devuelve false
cuando obj no es un objeto o cuando el objeto actual no aparece en la cadena de prototipo de obj.
Ejemplo
El siguiente ejemplo muestra el uso del método isPrototypeof.

function test(){
var re = new RegExp(); //Initialize variable.
return (RegExp.prototype.isPrototypeOf(re)); //Return true.
}

Requisitos
Versión 5,5
Se aplica a:
Object (Objeto)
Vea también
Otros recursos
Métodos
JScript 8.0

italics (Método)
Devuelve una cadena con etiquetas <I> HTML a ambos lados del texto en un objeto de cadena.

function italics() : String

Comentarios
No se comprueba si ya se aplicó la etiqueta a la cadena.
Ejemplo
En el siguiente ejemplo se muestra cómo funciona el método italics:

var strVariable = "This is a string";


strVariable = strVariable.italics();

El valor de strVariable después de la última instrucción es:

<I>This is a string</I>

Requisitos
Versión 1
Se aplica a:
String (Objeto)
Vea también
Referencia
bold (Método)
JScript 8.0

Method (Elemento de JScript)


Devuelve el elemento actual de la colección.

function item() : Number

Comentarios
El método item devuelve el elemento actual de un objeto Enumerator. Si la colección está vacía o el elemento actual no está
definido, se devuelve undefined.
Ejemplo
En el siguiente código, el método item se utiliza para devolver un miembro de la colección Drives.

function ShowDriveList(){
var fso, s, n, e, x;
fso = new ActiveXObject("Scripting.FileSystemObject");
e = new Enumerator(fso.Drives);
s = "";
for (; !e.atEnd(); e.moveNext())
{
x = e.item();
s = s + x.DriveLetter;
s += " - ";
if (x.DriveType == 3)
n = x.ShareName;
else if (x.IsReady)
n = x.VolumeName;
else
n = "[Drive not ready]";
s += n + "<br>";
}
return(s);
}

Requisitos
Versión 3
Se aplica a:
Enumerator (Objeto)
Vea también
Referencia
atEnd (Método)
moveFirst (Método)
moveNext (Método)
JScript 8.0

Métodos (J-R)
Un método es una función que es miembro de un objeto. A continuación se muestran los métodos cuyos nombres empiezan
con las letras de la j a la r.
En esta sección
join (Método)
Devuelve un objeto Stringformado por todos los elementos de una matriz concatenados.
lastIndexOf (Método)
Devuelve la última repetición de una subcadena dentro de un objeto String.
lbound (Método)
Devuelve el menor valor de índice que se utiliza en la dimensión especificada de un objeto VBArray.
link (Método)
Coloca un delimitador HTML con un atributo HREF a ambos lados del texto almacenado en un objeto String.
localeCompare (Método)
Devuelve un valor que indica si dos cadenas son equivalentes en la configuración regional actual.
log (Método)
Devuelve el logaritmo natural de un número.
match (Método)
Devuelve, como matriz, los resultados de una búsqueda en una cadena utilizando el objeto Regular Expression
proporcionado.
max (Método)
Devuelve la mayor de entre dos expresiones numéricas proporcionadas.
min (Método)
Devuelve el menor de entre dos números proporcionados.
moveFirst (Método)
Restablece el elemento actual de la colección en el primer elemento.
moveNext (Método)
Desplaza el elemento actual al siguiente elemento de la colección.
parse (Método)
Analiza una cadena que contiene una fecha y devuelve el número de milisegundos transcurridos entre esa fecha y la
medianoche del 1 de enero de 1970.
parseFloat (Método)
Devuelve un número de punto flotante convertido desde una cadena.
parseInt (Método)
Devuelve un número entero convertido desde una cadena.
pop (Método)
Quita el último elemento de una matriz y lo devuelve.
pow (Método)
Devuelve el valor de una expresión base elevada a la potencia que se especifique.
push (Método)
Anexa nuevos elementos a una matriz y devuelve la nueva longitud de la matriz.
random (Método)
Devuelve un número pseudoaleatorio entre 0 y 1.
replace (Método)
Devuelve una copia de una cadena con texto reemplazado utilizando una expresión regular.
reverse (Método)
Devuelve un objeto Array con los elementos invertidos.
round (Método)
Devuelve una expresión numérica especificada, redondeada al entero más cercano.
Secciones relacionadas
Referencia de JScript
Enumera los elementos que comprende la Referencia del lenguaje JScript e incluye vínculos a temas que explican con más
detalle el uso correcto de los elementos del lenguaje.
Métodos
Enumera por orden alfabético los métodos disponibles en JScript y proporciona vínculos a cada una de las categorías de los
métodos.
Objetos
Explica el concepto de objeto en JScript, explica cómo se relacionan los objetos con los métodos y propiedades e incluye
vínculos a temas que proporcionan más detalles sobre los objetos que admite JScript.
JScript 8.0

join (Método)
Devuelve un valor de cadena que se compone de todos los elementos de una matriz concatenados y separados por el carácter
separador especificado.

function join(separator : String) : String

Argumentos
separator
Necesario. Cadena que se utiliza para separar un elemento de una matriz del siguiente en el objeto String resultante. Si se
omite, los elementos de la matriz se separarán mediante comas.
Comentarios
Si alguno de los elementos de la matriz es undefined o null, se tratará como una cadena vacía.
Ejemplo
El siguiente ejemplo muestra el uso del método join.

function JoinDemo(){
var a, b;
a = new Array(0,1,2,3,4);
b = a.join("-");
return(b);
}

Requisitos
Versión 2
Se aplica a:
Array (Objeto)
Vea también
Referencia
String (Objeto)
JScript 8.0

lastIndexOf (Método)
Devuelve el índice de la última repetición de una subcadena dentro de un objeto String.

function lastIndexOf(substring : String [, startindex : Number ]) : Number

Argumentos
substring
Necesario. Subcadena que se va a buscar dentro del objeto String .
startindex
Opcional. Valor entero que especifica el índice para comenzar la búsqueda dentro del objeto String. Si se omite, la búsqueda
comienza al final de la cadena.
Comentarios
El método lastIndexOf devuelve un valor entero que indica el principio de la subcadena dentro del objeto String. Si no se
encuentra la subcadena, se devuelve -1.
Si el argumento startindex es negativo, se trata como cero. Si es superior al mayor índice de posición del carácter, se trata
como el mayor índice posible.
La búsqueda se realiza de derecha a izquierda. De lo contrario, este método es idéntico a indexOf.
Ejemplo
El siguiente ejemplo muestra el uso del método lastIndexOf.

function lastIndexDemo(str2) {
var str1 = "BABEBIBOBUBABEBIBOBU"
var s = str1.lastIndexOf(str2);
return(s);
}

Requisitos
Versión 1
Se aplica a:
String (Objeto)
Vea también
Referencia
indexOf (Método)
JScript 8.0

lbound (Método)
Devuelve el menor valor de índice que se utiliza en la dimensión especificada de un objeto VBArray.

function lbound([dimension : Number]) : Object

Argumentos
dimension
Opcional. Dimensión del objeto VBArray para la que se desea obtener el índice del límite inferior. Si se omite, lbound se
comporta como si se hubiera pasado 1.
Comentarios
Si el objeto VBArray está vacío, el método lbound devuelve el valor undefined. Si el argumento dimension es mayor que el
número de dimensiones del objeto VBArray, o es negativo, el método genera un error "Subíndice fuera del intervalo".
Ejemplo
El siguiente ejemplo consta de tres partes. La primera parte es código VBScript para crear una matriz segura de Visual Basic. La
segunda parte es código JScript que determina el número de dimensiones de la matriz segura y el límite inferior de cada
dimensión. Dado que la matriz segura se crea en VBScript en lugar de en Visual Basic, el límite inferior será siempre cero.
Ambas partes van en la sección <HEAD> de una página HTML. La tercera parte es el código JScript que va en la sección
<BODY> para ejecutar las otras dos partes.

<HEAD>
<SCRIPT LANGUAGE="VBScript">
<!--
Function CreateVBArray()
Dim i, j, k
Dim a(2, 2)
k = 1
For i = 0 To 2
For j = 0 To 2
a(j, i) = k
k = k + 1
Next
Next
CreateVBArray = a
End Function
-->
</SCRIPT>

<SCRIPT LANGUAGE="JScript">
<!--
function VBArrayTest(vba){
var i, s;
var a = new VBArray(vba);
for (i = 1; i <= a.dimensions(); i++)
{
s = "The lower bound of dimension ";
s += i + " is ";
s += a.lbound(i)+ ".<BR>";
return(s);
}
}
-->
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT language="jscript">
document.write(VBArrayTest(CreateVBArray()));
</SCRIPT>
</BODY>

Requisitos
Versión 3
Se aplica a:
VBArray (Objeto)
Vea también
Referencia
dimensions (Método)
getItem (Método)
toArray (Método)
ubound (Método)
JScript 8.0

link (Método)
Devuelve una cadena con un delimitador HTML con un atributo HREF a ambos lados del texto de un objeto String.

function link(linkstring : String) : String

Comentarios
Llame al método link para crear un hipervínculo a partir de un objeto String.
No se comprueba si ya se aplicó la etiqueta a la cadena.
Ejemplo
El siguiente es un ejemplo que muestra cómo el método realiza este proceso:

var strVariable = "This is a hyperlink";


strVariable = strVariable.link("http://www.microsoft.com");

El valor de strVariable después de la última instrucción es:

<A HREF="http://www.microsoft.com">This is a hyperlink</A>

Requisitos
Versión 1
Se aplica a:
String (Objeto)
Vea también
Referencia
anchor (Método)
JScript 8.0

localeCompare (Método)
Devuelve un valor que indica si dos cadenas son equivalentes en la configuración regional actual.

function localeCompare(stringExp : String) : Number

Argumentos
stringExp
Requerido. Cadena que se va a comparar con el objeto de cadena actual.
Comentarios
El método localeCompare realiza una comparación de la cadena actual y la cadena stringExp con respecto a la configuración
regional y devuelve -1, 0 ó +1, según sea la ordenación de la configuración regional predeterminada del sistema.
Si, en la ordenación, el objeto de cadena actual está delante de stringExp, localeCompare devuelve –1 y, si está detrás,
devuelve +1. Si se devuelve el valor cero, las dos cadenas son equivalentes.
Requisitos
Versión 5,5
Se aplica a:
String (Objeto)
Vea también
Referencia
toLocaleString (Método)
JScript 8.0

log (Método)
Devuelve el logaritmo natural de un número.

function log(number : Number) : Number

Argumentos
number
Necesario. Un valor numérico.
Comentarios
El valor devuelto es el logaritmo natural de number. La base es e.
Requisitos
Versión 1
Se aplica a:
Math (Objeto)
Vea también
Otros recursos
Métodos
JScript 8.0

match (Método)
Ejecuta una búsqueda en una cadena mediante un modelo de expresión regular y devuelve una matriz que contiene los
resultados de la búsqueda.

function match(rgExp : RegExp) : Array

Argumentos
rgExp
Necesario. Instancia de un objeto Regular Expression que contiene el modelo de expresión regular y los indicadores
aplicables. También puede ser un nombre de variable o un literal de cadena que contenga el modelo de expresión regular y
los indicadores.
Comentarios
Si el método match no encuentra ninguna coincidencia, devuelve null. Si encuentra una coincidencia, el método match
devuelve una matriz y las propiedades del objeto global RegExp se actualizan para reflejar los resultados de la búsqueda.
La matriz devuelta por el método match tiene tres propiedades: input, index y lastIndex. La propiedad input contiene la
cadena completa en la que se busca. La propiedad index contiene la posición de la subcadena encontrada dentro de la cadena
completa en la que se busca. La propiedad lastIndex contiene la posición siguiente al último carácter de la última coincidencia.
Si no se establece el indicador global (g), el elemento cero de la matriz contiene toda la coincidencia, mientras que los
elementos del 1 al n contienen las coincidencias secundarias que se hayan encontrado dentro de la coincidencia. El
comportamiento es idéntico al del método exec sin el establecimiento del indicador global. Si se establece el indicador global,
los elementos del 0 al n contienen todas las coincidencias que se hayan encontrado.
Ejemplo
En el siguiente ejemplo se muestra el uso del método match.

function MatchDemo(){
var r, re; //Declare variables.
var s = "The rain in Spain falls mainly in the plain";
re = /ain/i; //Create regular expression pattern.
r = s.match(re); //Attempt match on search string.
return(r); //Return first occurrence of "ain".
}

Este ejemplo muestra el uso del método match con el indicador g establecido.

function MatchDemo(){
var r, re; //Declare variables.
var s = "The rain in Spain falls mainly in the plain";
re = /ain/ig; //Create regular expression pattern.
r = s.match(re); //Attempt match on search string.
return(r); //Return array containing all four
// occurrences of "ain".
}

Las siguientes líneas de código muestran el uso de un literal de cadena con el método match.

var r, re = "Spain";
r = "The rain in Spain".replace(re, "Canada");

Requisitos
Versión 3
Se aplica a:
String (Objeto)
Vea también
Referencia
exec (Método)
RegExp (Objeto)
replace (Método)
search (Método)
test (Método)
JScript 8.0

max (Método)
Devuelve la mayor de ninguna o varias expresiones numéricas proporcionadas.

function max([number1 : Number [, ... [, numberN : Number]]]) : Number

Argumentos
number1, ... , numberN
Requerido. Expresiones numéricas
Comentarios
Si no se proporciona ningún argumento, el valor devuelto es NEGATIVE_INFINITY. Si algún argumento es NaN, el valor
devuelto es también NaN.
Requisitos
Versión 1
Se aplica a:
Math (Objeto)
Vea también
Referencia
min (Método)
NEGATIVE_INFINITY (Propiedad)
JScript 8.0

min (Método)
Devuelve la menor de ninguna o varias expresiones numéricas proporcionadas.

function min([number1 : Number [, ... [, numberN : Number]]]) : Number

Argumentos
number1, ... , numberN
Requerido. Expresiones numéricas
Comentarios
Si no se proporciona ningún argumento, el valor devuelto es POSITIVE_INFINITY. Si algún argumento es NaN, el valor
devuelto es también NaN.
Requisitos
Versión 1
Se aplica a:
Math (Objeto)
Vea también
Referencia
max (Método)
POSITIVE_INFINITY (Propiedad)
JScript 8.0

moveFirst (Método)
Restablece el elemento actual de un objeto Enumerator en el primer elemento.

function moveFirst()

Comentarios
Si no hay elementos en la colección, el elemento actual se establece en undefined.
Ejemplo
En el siguiente ejemplo, se utiliza el método moveFirst para evaluar los miembros de la colección Drives desde el principio de
la lista:

function ShowFirstAvailableDrive(){
var fso, s, e, x; //Declare variables.
fso = new ActiveXObject("Scripting.FileSystemObject");
e = new Enumerator(fso.Drives); //Create Enumerator object.
e.moveFirst(); //Move to first drive.
s = ""; //Initialize s.
do
{
x = e.item(); //Test for existence of drive.
if (x.IsReady) //See if it's ready.
{
s = x.DriveLetter + ":"; //Assign 1<SUP>st</SUP> drive letter to s.
break;
}
else
if (e.atEnd()) //See if at the end of the collection.
{
s = "No drives are available";
break;
}
e.moveNext(); //Move to the next drive.
}
while (!e.atEnd()); //Do while not at collection end.
return(s); //Return list of available drives.
}

Requisitos
Versión 3
Se aplica a:
Enumerator (Objeto)
Vea también
Referencia
atEnd (Método)
Method (Elemento de JScript)
moveNext (Método)
JScript 8.0

moveNext (Método)
Desplaza el elemento actual al siguiente elemento del objeto Enumerator.

function moveNext()

Comentarios
Si el enumerador está al final de la colección o la colección está vacía, el elemento actual se establece en undefined.
En el siguiente ejemplo, el método moveNext se utiliza para desplazarse a la siguiente unidad de la colección Drives:

function ShowDriveList(){
var fso, s, n, e, x; //Declare variables.
fso = new ActiveXObject("Scripting.FileSystemObject");
e = new Enumerator(fso.Drives); //Create Enumerator object.
s = ""; //Initialize s.
for (; !e.atEnd(); e.moveNext())
{
x = e.item();
s = s + x.DriveLetter; //Add drive letter
s += " - "; //Add "-" character.
if (x.DriveType == 3)
n = x.ShareName; //Add share name.
else if (x.IsReady)
n = x.VolumeName; //Add volume name.
else
n = "[Drive not ready]"; //Indicate drive not ready.
s += n + "\n";
}
return(s); //Return drive status.
}

Requisitos
Versión 3
Se aplica a:
Enumerator (Objeto)
Vea también
Referencia
atEnd (Método)
Method (Elemento de JScript)
moveFirst (Método)
JScript 8.0

parse (Método)
Analiza una cadena que contiene una fecha y devuelve el número de milisegundos transcurridos entre esa fecha y la
medianoche del 1 de enero de 1970.

function parse(dateVal : {String | System.DateTime} ) : Number

Argumentos
dateVal
Necesario. Una cadena que contiene una fecha con un formato del tipo "Jan 5, 1996 08:47:00" o un valor VT_DATE obtenido
de un objeto ActiveX® u otro objeto.
Comentarios
El método parse devuelve un valor entero que representa el número de milisegundos transcurridos entre la medianoche del 1
de enero de 1970 y la fecha proporcionada en el argumento dateVal.
Es un método estático del objeto Date. Al ser un método estático, la llamada se realiza como se muestra en el siguiente
ejemplo, en lugar de como un método de un objeto Date creado.

var datestring = "November 1, 1997 10:15 AM";


Date.parse(datestring)

Las siguientes reglas determinan lo que el método parse puede analizar satisfactoriamente:
Las fechas cortas pueden utilizar "/" o "-" como separador de fecha, pero deben seguir el formato /mes/día/año, por
ejemplo "7/20/96".
Las fechas largas con el formato "July 10 1995" se pueden escribir con el año, mes y día en cualquier orden, y el año con
formato de 2 ó 4 dígitos. Si se utiliza el formato de 2 dígitos, el año debe ser superior o igual a 70.
Cualquier texto entre paréntesis se trata como un comentario. Estos paréntesis se pueden anidar.
Los espacios y las comas se tratan como delimitadores. Se permite utilizar varios delimitadores.
Los nombres del mes y del día deben tener dos o más caracteres. Los nombres con dos caracteres que no son únicos se
resuelven como la última coincidencia. Por ejemplo, "Ju" se resuelve como July, no como June.
El día de la semana establecido se omite si no es correcto con arreglo al resto de la fecha proporcionada. Por ejemplo,
"Tuesday November 9 1996" se acepta y se analiza, aunque la fecha en cuestión sea realmente viernes. El objeto Date
resultante contiene "Friday November 9 1996".
JScript permite utilizar todas las zonas horarias estándar, así como la hora universal coordinada (UTC, Universal
Coordinated Time) y la hora media de Greenwich (GMT, Greenwich Mean Time).
El signo de dos puntos separa las horas, los minutos y los segundos aunque no es necesario que se especifiquen todos.
"10:", "10:11" y "10:11:12" son todos válidos.
Si se utiliza el reloj de 24 horas, es un error especificar "p.m." para horas posteriores a las 12 del mediodía. Por ejemplo,
"23:15 p.m." es un error.
Una cadena que contiene una fecha no válida es un error. Por ejemplo, una cadena que contiene dos años o dos meses
es un error.
Ejemplo
El siguiente ejemplo muestra el uso del método parse. Si se proporciona una fecha a la función, ésta devolverá la diferencia
entre la fecha proporcionada y 1/1/1970:

function GetTimeTest(testdate){
var s, t; //Declare variables.
var MinMilli = 1000 * 60; //Initialize variables.
var HrMilli = MinMilli * 60;
var DyMilli = HrMilli * 24;
t = Date.parse(testdate); //Parse testdate.
s = "There are " //Create return string.
s += Math.round(Math.abs(t / DyMilli)) + " days "
s += "between " + testdate + " and 1/1/70";
return(s); //Return results.
}

Requisitos
Versión 1
Se aplica a:
Date (Objeto)
Vea también
Otros recursos
Métodos
JScript 8.0

parseFloat (Método)
Devuelve un número de punto flotante convertido desde una cadena.

function parseFloat(numString : String) : Number

Argumentos
numString
Necesario. Cadena que representa un número de punto flotante.
Comentarios
El método parseFloat devuelve un valor numérico igual al número contenido en numString. Si no se puede analizar el prefijo
de numString en un número de punto flotante, se devuelve NaN (no un número).
Se puede comprobar NaN mediante el método isNaN.
Ejemplo
En el siguiente ejemplo se utiliza el método parseFloat para convertir dos cadenas en números.

parseFloat("abc") // Returns NaN.


parseFloat("1.2abc") // Returns 1.2.

Requisitos
Versión 1
Se aplica a:
Global (Objeto)
Vea también
Referencia
isNaN (Método)
parseInt (Método)
String (Objeto)
JScript 8.0

parseInt (Método)
Devuelve un número entero convertido desde una cadena.

function parseInt(numString : String [, radix : Number]) : Number

Argumentos
numString
Necesario. Cadena para convertir en un número.
radix
Opcional. Valor entre 2 y 36 que indica la base del número contenido en numString. Si no se proporciona, las cadenas con un
prefijo '0x' se consideran hexadecimales y las cadenas con un prefijo '0' se consideran octales. Todas las demás cadenas se
consideran decimales.
Comentarios
El método parseInt devuelve un valor de número entero igual al número contenido en numString. Si no se puede analizar el
prefijo de numString en un entero, se devuelve NaN (no un número).
Se puede comprobar NaN mediante el método isNaN.
Ejemplo
En el siguiente ejemplo se utiliza el método parseInt para convertir dos cadenas en números.

parseInt("abc") // Returns NaN.


parseInt("12abc") // Returns 12.

Requisitos
Versión 1
Se aplica a:
Global (Objeto)
Vea también
Referencia
isNaN (Método)
parseFloat (Método)
String (Objeto)
valueOf (Método)
JScript 8.0

pop (Método)
Quita el último elemento de una matriz y lo devuelve.

function pop() : Object

Comentarios
Si la matriz está vacía, se devuelve undefined.
Requisitos
Versión 5,5
Se aplica a:
Array (Objeto)
Vea también
Referencia
push (Método)
JScript 8.0

pow (Método)
Devuelve el valor de una expresión formada por una base elevada a una potencia especificada.

function pow(base : Number, exponent : Number) : Number

Argumentos
base
Necesario. Valor de la base de la expresión.
exponent
Necesario. Valor del exponente de la expresión.
Comentarios
El método pow devuelve una expresión numérica igual a baseexponent.
Ejemplo
En el siguiente ejemplo se muestra el uso del método pow.

var x = Math.pow(10,3); // x is assigned the value 1000.

Requisitos
Versión 1
Se aplica a:
Math (Objeto)
Vea también
Otros recursos
Métodos
JScript 8.0

push (Método)
Anexa nuevos elementos a una matriz y devuelve la nueva longitud de la matriz.

function push([item1 : Object [, ... [, itemN : Object]]]) : Number

Argumentos
item1, ... , itemN
Opcional. Nuevos elementos del objeto Array.
Comentarios
El método push anexa los elementos en el orden en que aparecen. Si uno de los argumentos es una matriz, se anexa como un
único elemento. Utilice el método concat para combinar los elementos de dos o más matrices.
Requisitos
Versión 5,5
Se aplica a:
Array (Objeto)
Vea también
Referencia
concat (Método, Array)
pop (Método)
JScript 8.0

random (Método)
Devuelve un número pseudoaleatorio entre 0 y 1.

function random() : Number

Comentarios
El número pseudoaleatorio generado está comprendido entre 0 (incluido) y 1 (excluido); es decir, el número devuelto puede
ser cero, pero siempre será menor que uno. El generador de números aleatorios se inicializa automáticamente cuando se carga
JScript por primera vez.
Requisitos
Versión 1
Se aplica a:
Math (Objeto)
Vea también
Otros recursos
Métodos
JScript 8.0

replace (Método)
Devuelve una copia de una cadena con texto reemplazado mediante una expresión regular o una cadena de búsqueda.

function replace(rgExp : RegExp, replaceText : String) : String

Argumentos
rgExp
Necesario. Instancia de un objeto Regular Expression que contiene el modelo de expresión regular y los indicadores
aplicables. También puede ser un literal u objeto String. Si rgExp no es una instancia de un objeto Regular Expression, se
convertirá en una cadena y se realizará una búsqueda exacta de los resultados; no se intentará convertir la cadena en una
expresión regular.
replaceText
Necesario. Objeto String o literal de cadena que contiene el texto que se va a reemplazar por cada coincidencia de rgExp en
el objeto de cadena actual. En JScript 5.5 o posterior, el argumento replaceText también puede ser una función que devuelva
el texto de reemplazo.
Comentarios
El resultado del método replace es una copia del objeto de cadena actual después de hacer todos los reemplazos
especificados.
Se puede utilizar cualquiera de las siguientes variables de coincidencia para identificar la coincidencia más reciente y la cadena
de procedencia. Las variables de coincidencia se pueden utilizar en texto de reemplazo cuando la cadena de reemplazo se
tenga que determinar dinámicamente.
Characte Significado
rs
$$ $ (JScript 5.5 o posterior)

$& Especifica la parte del objeto de cadena actual que ha coincidido con el modelo completo. (JScript 5.5 o posterior)

$` Especifica la parte del objeto de cadena actual que precede a la coincidencia descrita por $&. (JScript 5.5 o posterior
)

$' Especifica la parte del objeto de cadena actual que precede a la coincidencia descrita por $&. (JScript 5.5 o posterior
)

$n Subcoincidencia n-ésima, donde n es un número decimal de un dígito comprendido entre 1 y 9. (JScript 5.5 o poste
rior)

$ nn Subcoincidencia nn-ésima, donde nn es un número decimal de dos dígitos comprendido entre 01 y 99. (JScript 5.5
o posterior)

Si replaceText es una función, para cada subcadena encontrada se llama a la función con los siguientes m + 3 argumentos,
donde m es el número de paréntesis de apertura existentes en la expresión rgExp. El primer argumento es la subcadena que ha
coincidido. Los siguientes m argumentos son todas las capturas resultantes de la búsqueda. El argumento m + 2 es el
desplazamiento dentro del objeto de cadena actual donde se encontró la coincidencia, y el argumento m + 3 es el objeto de
cadena actual. El resultado es el valor de cadena resultante de reemplazar cada coincidencia de la subcadena por el
correspondiente valor devuelto por la llamada a la función.
El método replace actualiza las propiedades del objeto global RegExp.
Ejemplo
En el siguiente ejemplo se muestra el uso del método replace para reemplazar la primera instancia de la palabra "The" con la
palabra "A". Observe que sólo se reemplaza la primera instancia de "The" porque el modelo distingue mayúsculas de
minúsculas.

function ReplaceDemo(){
var r, re; //Declare variables.
var ss = "The man hit the ball with the bat.\n";
ss += "while the fielder caught the ball with the glove.";
re = /The/g; //Create regular expression pattern.
r = ss.replace(re, "A"); //Replace "The" with "A".
return(r); //Return string with replacement made.
}

Además, el método replace también puede reemplazar subexpresiones en el modelo. En el siguiente ejemplo se intercambia
cada par de palabras en la cadena.

function ReplaceDemo(){
var r, re; //Declare variables.
var ss = "The rain in Spain falls mainly in the plain.";
re = /(\S+)(\s+)(\S+)/g; //Create regular expression pattern.
r = ss.replace(re, "$3$2$1"); //Swap each pair of words.
return(r); //Return resulting string.
}

En el siguiente ejemplo, que funciona en JScript 5.5 o posterior, se realiza la conversión de grados Fahrenheit a Celsius y se
muestra el uso de una función como replaceText. Para ver cómo se comporta esta función, pase una cadena que contenga un
número seguido inmediatamente de "F" (por ejemplo, "Water boils at 212").

function f2c(s) {
var test = /(\d+(\.\d*)?)F\b/g; //Initialize pattern.
return(s.replace
(test,
function($0,$1,$2) {
return((($1-32) * 5/9) + "C");
}
)
);
}
document.write(f2c("Water freezes at 32F and boils at 212F."));

Requisitos
Versión 1
Se aplica a:
String (Objeto)
Vea también
Referencia
exec (Método)
match (Método)
RegExp (Objeto)
search (Método)
test (Método)
JScript 8.0

reverse (Método)
Devuelve un objeto Array con los elementos invertidos.

function reverse() : Array

Comentarios
El método reverse invierte los elementos de un objeto Array en el contexto. No se crea un nuevo objeto Array durante la
ejecución.
Si la matriz no es contigua, el método reverse crea elementos que rellenan los espacios vacíos de la matriz. Cada uno de estos
elementos creados tiene el valor undefined.
Ejemplo
El siguiente ejemplo muestra el uso del método reverse.

function ReverseDemo(){
var a, l; //Declare variables.
a = new Array(0,1,2,3,4); //Create an array and populate it.
l = a.reverse(); //Reverse the contents of the array.
return(l); //Return the resulting array.
}

Requisitos
Versión 2
Se aplica a:
Array (Objeto)
Vea también
Otros recursos
Métodos
JScript 8.0

round (Método)
Devuelve la expresión numérica proporcionada, redondeada al número entero más próximo.

function round(number : Number) : Number

Argumentos
number
Necesario. Una expresión numérica.
Comentarios
Si la parte decimal del argumento number es 0,5 o mayor, el valor devuelto es igual al menor entero superior a number. De lo
contrario, round devuelve el mayor entero inferior o igual a number.
Requisitos
Versión 1
Se aplica a:
Math (Objeto)
Vea también
Otros recursos
Métodos
JScript 8.0

Métodos (S)
Un método es una función que es miembro de un objeto. A continuación se muestran los métodos cuyos nombres empiezan
con la letra s.
En esta sección
search (Método)
Devuelve la posición de la primera coincidencia de subcadena en una búsqueda de expresión regular.
setDate (Método)
Establece la fecha numérica del objeto Date utilizando la hora local.
setFullYear (Método)
Establece el valor del año del objeto Date de acuerdo con la hora local.
setHours (Método)
Establece, utilizando la hora local, el valor de horas del objeto Date.
setMilliseconds (Método)
Establece, utilizando la hora local, el valor de milisegundos del objeto Date.
setMinutes (Método)
Establece, utilizando la hora local, el valor de minutos del objeto Date.
setMonth (Método)
Establece, utilizando la hora local, el valor de mes del objeto Date.
setSeconds (Método)
Establece, utilizando la hora local, el valor de segundos del objeto Date.
setTime (Método)
Establece el valor de fecha y hora en el objeto Date.
setUTCDate (Método)
Establece la fecha numérica en el objeto Date utilizando el horario universal coordinado (UTC).
setUTCFullYear (Método)
Establece, utilizando el horario universal coordinado (UTC), el valor "año" (FullYear) del objeto Date.
setUTCHours (Método)
Establece, utilizando el horario universal coordinado (UTC), el valor "horas" (Hours) del objeto Date.
setUTCMilliseconds (Método)
Establece, utilizando el horario universal coordinado (UTC), el valor "milisegundos" (Milliseconds) del objeto Date.
setUTCMinutes (Método)
Establece, utilizando el horario universal coordinado (UTC), el valor "minutos" (Minutes) del objeto Date.
setUTCMonth (Método)
Establece, utilizando el horario universal coordinado (UTC), el valor "mes" (Month) del objeto Date.
setUTCSeconds (Método)
Establece, utilizando el horario universal coordinado (UTC), el valor "segundos" (Seconds) del objeto Date.
setYear (Método)
Establece el valor de año del objeto Date.
shift (Método)
Quita el primer elemento de una matriz y lo devuelve.
sin (Método)
Devuelve el seno de un número.
slice (Método, Array)
Devuelve una sección de una matriz.
slice (Método, String)
Devuelve una sección de una cadena.
small (Método)
Coloca etiquetas HTML <SMALL> a ambos lados del texto de un objeto String.
sort (Método)
Devuelve un objeto Array con los elementos ordenados.
splice (Método)
Quita elementos de una matriz, inserta nuevos elementos en su lugar si procede y devuelve los elementos eliminados.
split (Método)
Devuelve la matriz de cadenas resultante de la separación de una cadena en subcadenas.
sqrt (Método)
Devuelve la raíz cuadrada de un número.
strike (Método)
Coloca etiquetas HTML <STRIKE> a ambos lados del texto de un objeto String.
sub (Método)
Coloca etiquetas HTML <SUB> a ambos lados del texto de un objeto String.
substr (Método)
Devuelve una subcadena que comienza en una posición especificada y tiene una longitud especificada.
substring (Método)
Devuelve la subcadena en la ubicación especificada dentro de un objeto String.
sup (Método)
Coloca etiquetas HTML <SUP> a ambos lados del texto de un objeto String.
Secciones relacionadas
Referencia de JScript
Enumera los elementos que comprende la Referencia del lenguaje JScript e incluye vínculos a temas que explican con más
detalle el uso correcto de los elementos del lenguaje.
Métodos
Enumera por orden alfabético los métodos disponibles en JScript y proporciona vínculos a cada una de las categorías de los
métodos.
Objetos
Detalla el concepto de objeto en JScript, explica cómo los objetos están relacionados con las propiedades y los métodos, e
incluye vínculos a temas que proporcionan más detalles sobre los objetos que JScript admite.
JScript 8.0

search (Método)
Devuelve la posición de la primera coincidencia de subcadena en una búsqueda de expresión regular.

function search(rgExp : RegExp) : Number

Argumentos
rgExp
Necesario. Instancia de un objeto Regular Expression que contiene el modelo de expresión regular y los indicadores
aplicables.
Comentarios
El método search indica si existe o no alguna coincidencia. Si se encuentra una coincidencia, el método search devuelve un
valor entero que especifica el desplazamiento desde el principio de la cadena en la que se encontró la coincidencia. Si no se
encuentra ninguna coincidencia, devuelve -1.
Ejemplo
El siguiente ejemplo muestra el uso del método search.

function SearchDemo(){
var r, re; //Declare variables.
var s = "The rain in Spain falls mainly in the plain.";
re = /falls/i; //Create regular expression pattern.
r = s.search(re); //Search the string.
return(r); //Return the index to the first match
//or –1 if no match is found.
}

Requisitos
Versión 3
Se aplica a:
String (Objeto)
Vea también
Referencia
exec (Método)
match (Método)
Regular Expression (Objeto)
replace (Método)
test (Método)
Conceptos
Sintaxis de expresiones regulares
JScript 8.0

setDate (Método)
Establece la fecha de un objeto Date en la zona de hora local.

function setDate(numDate : Number)

Argumentos
numDate
Necesario. Valor numérico igual a la fecha numérica.
Comentarios
Para establecer el valor de fecha mediante la hora universal coordinada (UTC), utilice el método setUTCDate.
Si el valor de numDate es mayor que el número de días del mes almacenado en el objeto Date o es un número negativo, la
fecha se establece en una fecha igual a numDate menos el número de días del mes almacenado. Por ejemplo, si la fecha
almacenada es "January 5, 1996" y se llama a setDate(32), la fecha cambia a "February 1, 1996". Los números negativos se
comportan de manera similar.
Ejemplo
En el siguiente ejemplo se muestra el uso del método setDate.

function SetDateDemo(newdate){
var d, s; //Declare variables.
d = new Date(); //Create date object.
d.setDate(newdate); //Set date to newdate.
s = "Current setting is ";
s += d.toLocaleString();
return(s); //Return newly set date.
}

Requisitos
Versión 3
Se aplica a:
Date (Objeto)
Vea también
Referencia
getDate (Método)
getUTCDate (Método)
setUTCDate (Método)
JScript 8.0

setFullYear (Método)
Establece el valor del año del objeto Date mediante la hora local.

function setFullYear(numYear : Number [, numMonth Number [, numDate Number]])

Argumentos
numYear
Requerido. Valor numérico igual al año.
numMonth
Opcional. Valor numérico igual al mes. Se debe proporcionar si se proporciona el argumento numDate.
numDate
Opcional. Valor numérico igual a la fecha.
Comentarios
Si no se especifica el argumento opcional, todos los métodos set que toman argumentos opcionales utilizan el valor devuelto
por los métodos get correspondientes. Por ejemplo, si el argumento numMonth es opcional, pero no se especifica, JScript
utiliza el valor devuelto por el método getMonth.
Además, si el valor de un argumento es mayor que su intervalo o es un número negativo, los demás valores almacenados se
modifican consecuentemente.
Para establecer el año mediante la hora universal coordinada (UTC), utilice el método setUTCFullYear.
El intervalo de años admitido en el objeto de fecha es, aproximadamente, 285.616 años antes o después de 1970.
Ejemplo
En el siguiente ejemplo se muestra el uso del método setFullYear:

function SetFullYearDemo(newyear){
var d, s; //Declare variables.
d = new Date(); //Create Date object.
d.setFullYear(newyear); //Set year.
s = "Current setting is ";
s += d.toLocaleString();
return(s); //Return new date setting.
}

Requisitos
Versión 3
Se aplica a:
Date (Objeto)
Vea también
Referencia
getFullYear (Método)
getUTCFullYear (Método)
setUTCFullYear (Método)
JScript 8.0

setHours (Método)
Establece, utilizando la hora local, el valor de horas del objeto Date.

function setHours(numHours : Number [, numMin : Number [, numSec : Number [, numMilli : Num


ber ]]])

Argumentos
numHours
Necesario. Valor numérico igual al valor de horas.
numMin
Opcional. Valor numérico igual al valor de los minutos.
numSec
Opcional. Valor numérico igual al valor de segundos.
numMilli
Opcional. Valor numérico igual al valor de milisegundos.
Comentarios
Si no se especifica un argumento opcional, todos los métodos set que toman argumentos opcionales utilizan el valor devuelto
por los métodos get correspondientes. Por ejemplo, si el argumento numMinutes es opcional, pero no se especifica, JScript
utiliza el valor devuelto por el método getMinutes.
Para establecer el valor de horas mediante la hora universal coordinada (UTC), utilice el método setUTCHours.
Si el valor de un argumento es mayor que su intervalo o es un número negativo, los demás valores almacenados se modifican
consecuentemente. Por ejemplo, si la fecha almacenada es "Jan 5, 1996 00:00:00" y se llama a setHours(30), la fecha cambia a
"Jan 6, 1996 06:00:00". Los números negativos se comportan de manera similar.
Ejemplo
En el siguiente ejemplo se muestra el uso del método setHours.

function SetHoursDemo(nhr, nmin, nsec){


var d, s; //Declare variables.
d = new Date(); //Create Date object.
d.setHours(nhr, nmin, nsec); //Set hours, minutes, & seconds.
s = "Current setting is " + d.toLocaleString()
return(s); //Return new date setting.
}

Requisitos
Versión 3
Se aplica a:
Date (Objeto)
Vea también
Referencia
getHours (Método)
getUTCHours (Método)
setUTCHours (Método)
JScript 8.0

setMilliseconds (Método)
Establece, utilizando la hora local, el valor de milisegundos del objeto Date.

function setMilliseconds(numMilli : Number)

Argumentos
numMilli
Necesario. Valor numérico igual al valor de milisegundos.
Comentarios
Para establecer el valor de milisegundos mediante la hora universal coordinada (UTC), utilice el método setUTCMilliseconds.
Si el valor de numMilli es mayor que 999 o es un número negativo, el número almacenado de segundos (y minutos, horas, etc.
según sea necesario) se incrementa en la cantidad apropiada.
Ejemplo
En el siguiente ejemplo se muestra el uso del método setMilliseconds.

function SetMSecDemo(nmsec){
var d, s; //Declare variables.
var sep = ":"; //Initialize separator.
d = new Date(); //Create Date object.
d.setMilliseconds(nmsec); //Set milliseconds.
s = "Current setting is ";
s += d.toLocaleString() + sep + d.getMilliseconds();
return(s); //Return new date setting.
}

Requisitos
Versión 3
Se aplica a:
Date (Objeto)
Vea también
Referencia
getMilliseconds (Método)
getUTCMilliseconds (Método)
ssetUTCMilliseconds (Método)
JScript 8.0

setMinutes (Método)
Establece el valor de minutos del objeto Date mediante la hora local.

function setMinutes(numMinutes : Number [, numSeconds : Number [, numMilli : Number]])

Argumentos
numMinutes
Requerido. Valor numérico igual al valor de los minutos.
numSeconds
Opcional. Valor numérico igual al valor de los segundos. Se debe proporcionar si se utiliza el argumento numMilli.
numMilli
Opcional. Valor numérico igual al valor de milisegundos.
Comentarios
Si no se especifica un argumento opcional, todos los métodos set que toman argumentos opcionales utilizan el valor devuelto
por los métodos get correspondientes. Por ejemplo, si el argumento numSeconds es opcional, pero no se especifica, JScript
utiliza el valor devuelto por el método getSeconds.
Para establecer el valor de minutos mediante la hora universal coordinada (UTC), utilice el método setUTCMinutes.
Si el valor de un argumento es mayor que su intervalo o es un número negativo, los demás valores almacenados se modifican
consecuentemente. Por ejemplo, si la fecha almacenada es "Jan 5, 1996 00:00:00" y se llama a setMinutes(90), la fecha
cambia a "Jan 5, 1996 01:30:00". Los números negativos se comportan de manera similar.
Ejemplo
En el siguiente ejemplo se muestra el uso del método setMinutes.

function SetMinutesDemo(nmin, nsec){


var d, s; //Declare variables.
d = new Date(); //Create Date object.
d.setMinutes(nmin, nsec); //Set minutes.
s = "Current setting is " + d.toLocaleString()
return(s); //Return new setting.
}

Requisitos
Versión 1
Se aplica a:
Date (Objeto)
Vea también
Referencia
getMinutes (Método)
getUTCMinutes (Método)
setUTCMinutes (Método)
JScript 8.0

setMonth (Método)
Establece, utilizando la hora local, el valor de mes del objeto Date.

function setMonth(numMonth : Number [, dateVal : Number])

Argumentos
numMonth
Requerido. Valor numérico igual al mes.
dateVal
Opcional. Valor numérico que representa la fecha. Si no se proporciona, se utiliza el valor de una llamada al método
getDate.
Comentarios
Para establecer el valor de mes mediante la hora universal coordinada (UTC), utilice el método setUTCMonth.
Si el valor de numMonth es mayor que 11 (enero es el mes 0) o es un número negativo, el año almacenado se modifica
consecuentemente. Por ejemplo, si la fecha almacenada es "Jan 5, 1996" y se llama a setMonth(14), la fecha cambia a "Mar 5,
1997".
Ejemplo
En el siguiente ejemplo se muestra el uso del método setMonth.

function SetMonthDemo(newmonth){
var d, s; //Declare variables.
d = new Date(); //Create Date object.
d.setMonth(newmonth); //Set month.
s = "Current setting is ";
s += d.toLocaleString();
return(s); //Return new setting.
}

Requisitos
Versión 1
Se aplica a:
Date (Objeto)
Vea también
Referencia
getMonth (Método)
getUTCMonth (Método)
setUTCMonth (Método)
JScript 8.0

setSeconds (Método)
Establece, utilizando la hora local, el valor de segundos del objeto Date.

function setSeconds(numSeconds : Number [, numMilli : Number])

Argumentos
numSeconds
Necesario. Valor numérico igual al valor de los segundos.
numMilli
Opcional. Valor numérico igual al valor de milisegundos.
Comentarios
Si no se especifica un argumento opcional, todos los métodos set que toman argumentos opcionales utilizan el valor devuelto
por los métodos get correspondientes. Por ejemplo, si el argumento numMilli es opcional, pero no se especifica, JScript utiliza
el valor devuelto por el método getMilliseconds.
Para establecer el valor de segundos mediante la hora universal coordinada (UTC), utilice el método setUTCSeconds.
Si el valor de un argumento es mayor que su intervalo o es un número negativo, los demás valores almacenados se modifican
consecuentemente. Por ejemplo, si la fecha almacenada es "Jan 5, 1996 00:00:00" y se llama a setSeconds(150), la fecha
cambia a "Jan 5, 1996 00:02:30".
Ejemplo
En el siguiente ejemplo se muestra el uso del método setSeconds.

function SetSecondsDemo(nsec, nmsec){


var d, s; //Declare variables.
var sep = ":";
d = new Date(); //Create Date object.
d.setSeconds(nsec, nmsec); //Set seconds and milliseconds.
s = "Current setting is ";
s += d.toLocaleString() + sep + d.getMilliseconds();
return(s); //Return new setting.
}

Requisitos
Versión 1
Se aplica a:
Date (Objeto)
Vea también
Referencia
getSeconds (Método)
getUTCSeconds (Método)
setUTCSeconds (Método)
JScript 8.0

setTime (Método)
Establece el valor de fecha y hora en el objeto Date.

function setTime(milliseconds : Number)

Argumentos
milliseconds
Necesario. Valor numérico que representa el número de milisegundos transcurridos desde la medianoche del 1 de enero de
1970 UTC.
Comentarios
Si milliseconds es un valor negativo, indica una fecha anterior a 1970. El intervalo de fechas disponibles es aproximadamente
285.616 años antes o después de 1970.
La acción de establecer la fecha y la hora con el método setTime es independiente de la zona horaria.
Ejemplo
En el siguiente ejemplo se muestra el uso del método setTime.

function SetTimeTest(newtime){
var d, s; //Declare variables.
d = new Date(); //Create Date object.
d.setTime(newtime); //Set time.
s = "Current setting is ";
s += d.toUTCString();
return(s); //Return new setting.
}

Requisitos
Versión 1
Se aplica a:
Date (Objeto)
Vea también
Referencia
getTime (Método)
JScript 8.0

setUTCDate (Método)
Establece la fecha numérica en el objeto Date utilizando el horario universal coordinado (UTC).

function setUTCDate(numDate : Number)

Argumentos
numDate
Necesario. Valor numérico igual a la fecha numérica.
Comentarios
Para establecer la fecha mediante la hora local, utilice el método setDate.
Si el valor de numDate es mayor que el número de días del mes almacenado en el objeto Date o es un número negativo, la
fecha se establece en una fecha igual a numDate menos el número de días del mes almacenado. Por ejemplo, si la fecha
almacenada es "January 5, 1996" y se llama a setUTCDate(32), la fecha cambia a "February 1, 1996". Los números negativos
se comportan de manera similar.
Ejemplo
En el siguiente ejemplo se muestra el uso del método setUTCDate.

function SetUTCDateDemo(newdate){
var d, s; //Declare variables.
d = new Date(); //Create Date object.
d.setUTCDate(newdate); //Set UTC date.
s = "Current setting is ";
s += d.toUTCString();
return(s); //Return new setting.
}

Requisitos
Versión 3
Se aplica a:
Date (Objeto)
Vea también
Referencia
getDate (Método)
getUTCDate (Método)
setDate (Método)
JScript 8.0

setUTCFullYear (Método)
Establece, utilizando el horario universal coordinado (UTC), el valor "año" (FullYear) del objeto Date.

function setUTCFullYear(numYear : Number [, numMonth : Number [, numDate : Number]])

Argumentos
numYear
Necesario. Valor numérico igual al año.
numMonth
Opcional. Valor numérico igual al mes.
numDate
Opcional. Valor numérico igual a la fecha.
Comentarios
Si no se especifica un argumento opcional, todos los métodos set que toman argumentos opcionales utilizan el valor devuelto
por los métodos get correspondientes. Por ejemplo, si el argumento numMonth es opcional, pero no se especifica, JScript
utiliza el valor devuelto por el método getUTCMonth.
Además, si el valor de un argumento es mayor que su intervalo o es un número negativo, los demás valores almacenados se
modifican consecuentemente.
Para establecer el año mediante la hora local, utilice el método setFullYear.
El intervalo de años admitido en el objeto Date es, aproximadamente, 285.616 años antes o después de 1970.
Ejemplo
En el siguiente ejemplo se muestra el uso del método setUTCFullYear.

function SetUTCFullYearDemo(newyear){
var d, s; //Declare variables.
d = new Date(); //Create Date object.
d.setUTCFullYear(newyear); //Set UTC full year.
s = "Current setting is ";
s += d.toUTCString();
return(s); //Return new setting.
}

Requisitos
Versión 3
Se aplica a:
Date (Objeto)
Vea también
Referencia
getFullYear (Método)
getUTCFullYear (Método)
setFullYear (Método)
JScript 8.0

setUTCHours (Método)
Establece, utilizando el horario universal coordinado (UTC), el valor "horas" (Hours) del objeto Date.

function setUTCHours(numHours : Number [, numMin : Number [, numSec : Number [, numMilli :


Number]]])

Argumentos
numHours
Requerido. Valor numérico igual al valor de las horas.
numMin
Opcional. Valor numérico igual al valor de los minutos.
numSec
Opcional. Valor numérico igual al valor de los segundos.
numMilli
Opcional. Valor numérico igual al valor de milisegundos.
Comentarios
Si no se especifica un argumento opcional, todos los métodos set que toman argumentos opcionales utilizan el valor devuelto
por los métodos get correspondientes. Por ejemplo, si el argumento numMin es opcional, pero no se especifica, JScript utiliza
el valor devuelto por el método getUTCMinutes.
Para establecer el valor de las horas mediante la hora local, utilice el método setHours.
Si el valor de un argumento es mayor que su intervalo o es un número negativo, los demás valores almacenados se modifican
consecuentemente. Por ejemplo, si la fecha almacenada es "Jan 5, 1996 00:00:00.00" y se llama a setUTCHours(30), la fecha
cambia a "Jan 6, 1996 06:00:00.00".
Ejemplo
En el siguiente ejemplo se muestra el uso del método setUTCHours.

function SetUTCHoursDemo(nhr, nmin, nsec){


var d, s; //Declare variables.
d = new Date(); //Create Date object.
d.setUTCHours(nhr, nmin, nsec); //Set UTC hours, minutes, seconds.
s = "Current setting is " + d.toUTCString()
return(s); //Return new setting.
}

Requisitos
Versión 3
Se aplica a:
Date (Objeto)
Vea también
Referencia
getHours (Método)
getUTCHours (Método)
setHours (Método)
JScript 8.0

ssetUTCMilliseconds (Método)
Establece, utilizando el horario universal coordinado (UTC), el valor "milisegundos" (Milliseconds) del objeto Date.

function setUTCMilliseconds(numMilli : Number)

Argumentos
numMilli
Necesario. Valor numérico igual al valor de milisegundos.
Comentarios
Para establecer el valor de los milisegundos mediante la hora local, utilice el método setMilliseconds.
Si el valor de numMilli es mayor que 999 o es un número negativo, el número almacenado de segundos (y minutos, horas, etc.
según sea necesario) se incrementa en la cantidad apropiada.
Ejemplo
En el siguiente ejemplo se muestra el uso del método setUTCMilliseconds.

function SetUTCMSecDemo(nmsec){
var d, s; //Declare variables.
var sep = ":"; //Initialize separator.
d = new Date(); //Create Date object.
d.setUTCMilliseconds(nmsec); //Set UTC milliseconds.
s = "Current setting is ";
s += d.toUTCString() + sep + d.getUTCMilliseconds();
return(s); //Return new setting.
}

Requisitos
Versión 3
Se aplica a:
Date (Objeto)
Vea también
Referencia
getMilliseconds (Método)
getUTCMilliseconds (Método)
setMilliseconds (Método)
JScript 8.0

setUTCMinutes (Método)
Establece, utilizando la hora universal coordinada (UTC), el valor de minutos del objeto Date.

function setUTCMinutes(numMinutes : Number [, numSeconds : Number [, numMilli : Number ]])

Argumentos
numMinutes
Requerido. Valor numérico igual al valor de los minutos.
numSeconds
Opcional. Valor numérico igual al valor de los segundos. Se debe proporcionar si se utiliza numMilli.
numMilli
Opcional. Valor numérico igual al valor de milisegundos.
Comentarios
Si no se especifica un argumento opcional, todos los métodos set que toman argumentos opcionales utilizan el valor devuelto
por los métodos get correspondientes. Por ejemplo, si el argumento numSeconds es opcional, pero no se especifica, JScript
utiliza el valor devuelto por el método getUTCSeconds.
Para modificar el valor de los minutos mediante la hora local, utilice el método setMinutes.
Si el valor de un argumento es mayor que su intervalo o es un número negativo, los demás valores almacenados se modifican
consecuentemente. Por ejemplo, si la fecha almacenada es "Jan 5, 1996 00:00:00.00" y se llama a setUTCMinutes(70), la fecha
cambia a "Jan 5, 1996 01:10:00.00".
Ejemplo
En el siguiente ejemplo se muestra el uso del método setUTCMinutes:

function SetUTCMinutesDemo(nmin, nsec){


var d, s; //Declare variables.
d = new Date(); //Create Date object.
d.setUTCMinutes(nmin,nsec); //Set UTC minutes.
s = "Current setting is " + d.toUTCString()
return(s); //Return new setting.
}

Requisitos
Versión 3
Se aplica a:
Date (Objeto)
Vea también
Referencia
getMinutes (Método)
getUTCMinutes (Método)
setMinutes (Método)
JScript 8.0

setUTCMonth (Método)
Establece, utilizando el horario universal coordinado (UTC), el valor "mes" (Month) del objeto Date.

function setUTCMonth(numMonth : Number [, dateVal : Number ])

Argumentos
numMonth
Requerido. Valor numérico igual al mes.
dateVal
Opcional. Valor numérico que representa la fecha. Si no se proporciona, se utiliza el valor de una llamada al método
getUTCDate.
Comentarios
Para establecer el valor del mes mediante la hora local, utilice el método setMonth.
Si el valor de numMonth es mayor que 11 (enero es el mes 0) o es un número negativo, el año almacenado se incrementa o
reduce consecuentemente. Por ejemplo, si la fecha almacenada es "Jan 5, 1996 00:00:00.00" y se llama a setUTCMonth(14), la
fecha cambia a "Mar 5, 1997 00:00:00.00".
Ejemplo
En el siguiente ejemplo se muestra el uso del método setUTCMonth.

function SetUTCMonthDemo(newmonth){
var d, s; //Declare variables.
d = new Date(); //Create Date object.
d.setUTCMonth(newmonth); //Set UTC month.
s = "Current setting is ";
s += d.toUTCString();
return(s); //Return new setting.
}

Requisitos
Versión 3
Se aplica a:
Date (Objeto)
Vea también
Referencia
getMonth (Método)
getUTCMonth (Método)
setMonth (Método)
JScript 8.0

setUTCSeconds (Método)
Establece, utilizando el horario universal coordinado (UTC), el valor "segundos" (Seconds) del objeto Date.

function setUTCSeconds(numSeconds : Number [, numMilli : Number ])

Argumentos
numSeconds
Necesario. Valor numérico igual al valor de los segundos.
numMilli
Opcional. Valor numérico igual al valor de milisegundos.
Comentarios
Si no se especifica un argumento opcional, todos los métodos set que toman argumentos opcionales utilizan el valor devuelto
por los métodos get correspondientes. Por ejemplo, si el argumento numMilli es opcional, pero no se especifica, JScript utiliza
el valor devuelto por el método getUTCMilliseconds.
Para establecer el valor de los segundos mediante la hora local, utilice el método setSeconds.
Si el valor de un argumento es mayor que su intervalo o es un número negativo, los demás valores almacenados se modifican
consecuentemente. Por ejemplo, si la fecha almacenada es "Jan 5, 1996 00:00:00.00" y se llama a setSeconds(150), la fecha
cambia a "Jan 5, 1996 00:02:30.00".
Ejemplo
En el siguiente ejemplo se muestra el uso del método setSeconds.

function SetUTCSecondsDemo(nsec, nmsec){


var d, s; //Declare variables.
d = new Date(); //Create Date object.
d.setUTCSeconds(nsec, nmsec); //Set UTC seconds and milliseconds.
s = "Current UTC milliseconds setting is ";
s += d.getUTCMilliseconds(); //Get new setting.
return(s); //Return new setting.
}

Requisitos
Versión 3
Se aplica a:
Date (Objeto)
Vea también
Referencia
getSeconds (Método)
getUTCSeconds (Método)
setSeconds (Método)
JScript 8.0

setYear (Método)
Establece el valor de año del objeto Date.

function setYear(numYear : Number)

Argumentos
numYear
Necesario. Valor numérico igual al año menos 1900.
Comentarios
Este método está obsoleto y sólo se mantiene a efectos de compatibilidad con versiones anteriores. En su lugar, utilice el
método setFullYear.
Para establecer el año de un objeto Date en 1997, llame al método setYear(97). Para establecer el año en 2010, llame al
método setYear(2010). Finalmente, para establecer el año en un año del intervalo comprendido entre 0 y 99, utilice el método
setFullYear.
Nota
En JScript versión 1.0, el método setYear utiliza un valor que es el resultado de sumar a 1900 el valor del año proporcionado
por el argumento numYear, con independencia del valor del año. Por ejemplo, para establecer el año 1899, numYear es -1 y
para establecer el año 2000, numYear es 100.

Requisitos
Versión 1
Se aplica a:
Date (Objeto)
Vea también
Referencia
getFullYear (Método)
getUTCFullYear (Método)
getYear (Método)
setFullYear (Método)
setUTCFullYear (Método)
JScript 8.0

shift (Método)
Quita el primer elemento de una matriz y lo devuelve.

function shift() : Object

Comentarios
El método shift quita el primer elemento de una matriz y lo devuelve.
Requisitos
Versión 5,5
Se aplica a:
Array (Objeto)
Vea también
Referencia
unshift (Método)
JScript 8.0

sin (Método)
Devuelve el seno de un número.

function sin(number : Number) : Number

Argumentos
number
Necesario. Expresión numérica para la que se calcula el seno.
Comentarios
El valor devuelto es el seno del argumento numérico.
Requisitos
Versión 1
Se aplica a:
Math (Objeto)
Vea también
Referencia
acos (Método)
asin (Método)
atan (Método)
cos (Método)
tan (Método)
JScript 8.0

slice (Método, Array)


Devuelve una sección de una matriz.

function slice(start : Number [, end : Number]) : Array

Argumentos
start
Requerido. Índice del principio de la parte especificada de la matriz.
end
Opcional. Índice del final de la parte especificada de la matriz.
Comentarios
El método slice devuelve un objeto Array que contiene la parte especificada de la matriz.
El método slice copia hasta el elemento que end indica, pero sin incluirlo. Si start es negativo, se trata como length + start,
donde length es la longitud de la matriz. Si end es negativo, se trata como length + end, donde length es la longitud de la
matriz. Si end se omite, la extracción continúa hasta el final de la matriz. Si end tiene lugar antes que start, no se copian
elementos en la matriz nueva.
Ejemplo
En el siguiente ejemplo, se copian en newArray todos los elementos de myArray excepto el último:

var myArray = new Array(4,3,5,65);


var newArray = myArray.slice(0, -1)

Requisitos
Versión 3
Se aplica a:
Array (Objeto)
Vea también
Referencia
slice (Método, String)
String (Objeto)
JScript 8.0

slice (Método, String)


Devuelve una sección de una cadena.

function slice(start : Number [, end : Number]) : String

Argumentos
start
Necesario. Índice del principio de la parte especificada de la matriz.
end
Opcional. Índice del final de la parte especificada de la matriz.
Comentarios
El método slice devuelve un objeto String que contiene la parte especificada de la matriz.
El método slice copia hasta el elemento que end indica, pero sin incluirlo. Si start es negativo, se trata como length + start,
donde length es la longitud de la cadena. Si end es negativo, se trata como length + end, donde length es la longitud de la
cadena. Si end se omite, la extracción continúa hasta el final de la cadena. Si end tiene lugar antes que start, no se copian
caracteres en la cadena nueva.
Ejemplo
En el ejemplo siguiente, la primera llamada al método slice devuelve una cadena que contiene los cinco primeros caracteres
de str. En el ejemplo siguiente, la primera llamada al método slice devuelve una cadena que contiene los cinco primeros
caracteres de str.

var str = "hello world";


var firstfive = str.slice(0,5); // Contains "hello".
var lastfive = str.slice(-5); // Contains "world".

Requisitos
Versión 3
Se aplica a:
String (Objeto)
Vea también
Referencia
Array (Objeto)
slice (Método, Array)
JScript 8.0

small (Método)
Devuelve una cadena con etiquetas <SMALL> HTML a ambos lados del texto en un objeto String.

function small() : String

Comentarios
No se comprueba si ya se aplicó la etiqueta a la cadena.
Ejemplo
El siguiente ejemplo muestra el uso del método small:

var strVariable = "This is a string";


strVariable = strVariable.small();

El valor de strVariable después de la última instrucción es:

<SMALL>This is a string</SMALL>

Requisitos
Versión 1
Se aplica a:
String (Objeto)
Vea también
Referencia
big (Método)
JScript 8.0

sort (Método)
Devuelve un objeto Array con los elementos ordenados.

function sort(sortFunction : Function ) : Array

Argumentos
sortFunction
Opcional. Nombre de la función utilizada para determinar el orden de los elementos.
Comentarios
El método sort ordena el objeto Array en el contexto; no se crea un nuevo objeto Array durante la ejecución.
Si se proporciona una función en el argumento sortFunction, debe devolver uno de los siguientes valores:
Un valor negativo si el primer argumento pasado es menor que el segundo argumento.
Cero si los dos argumentos son equivalentes.
Un valor positivo si el primer argumento es mayor que el segundo argumento.
Si se omite el argumento sortFunction, los elementos se ordenan de forma ascendente, siguiendo el orden del juego de
caracteres ASCII.
Ejemplo
El siguiente ejemplo muestra el uso del método sort.

function SortDemo(){
var a, l; //Declare variables.
a = new Array("X" ,"y" ,"d", "Z", "v","m","r");
l = a.sort(); //Sort the array.
return(l); //Return sorted array.
}

Requisitos
Versión 2
Se aplica a:
Array (Objeto)
Vea también
Otros recursos
Objetos de JScript
JScript 8.0

splice (Método)
Quita elementos de una matriz, inserta nuevos elementos en su lugar si procede y devuelve los elementos eliminados.
Devuelve los elementos quitados de la matriz.

function splice(start : Number, deleteCount : Number [, item1 : Object [, ... [, itemN : Ob


ject]]]]) : Array

Argumentos
start
Requerido. Posición a partir de cero en la matriz de la que se va a comenzar a quitar elementos.
deleteCount
Requerido. Número de elementos que se van a quitar.
item1, ... , itemN
Opcional. Elementos que se van a insertar en la matriz sustituyendo a los eliminados.
Comentarios
El método splice modifica la matriz quitando el número especificado de elementos desde la posición start e insertando nuevos
elementos. Los elementos eliminados se devuelven como un nuevo objeto array.
Requisitos
Versión 5,5
Se aplica a:
Array (Objeto)
Vea también
Referencia
slice (Método, Array)
JScript 8.0

split (Método)
Devuelve la matriz de cadenas resultante de la separación de una cadena en subcadenas.

function split([ separator : { String | RegExp } [, limit : Number]]) : Array

Argumentos
separator
Opcional. Cadena o instancia de un objeto de expresión regular que identifica el carácter o caracteres que se van a utilizar
en la separación de la cadena. Si se omite, se devuelve una matriz de un único elemento que contiene toda la cadena.
limit
Opcional. Valor utilizado para limitar el número de elementos devueltos en la matriz.
Comentarios
El resultado del método split es una matriz de cadenas dividida en cada punto donde aparece separatoren la cadena. El
argumento separator no se devuelve como parte de ningún elemento de la matriz.
Ejemplo
El siguiente ejemplo muestra el uso del método split.

function SplitDemo(){
var s, ss;
var s = "The rain in Spain falls mainly in the plain.";
// Split at each space character.
ss = s.split(" ");
return(ss);
}

Requisitos
Versión 3
Se aplica a:
String (Objeto)
Vea también
Referencia
concat (Método, String)
RegExp (Objeto)
Regular Expression (Objeto)
Conceptos
Sintaxis de expresiones regulares
JScript 8.0

sqrt (Método)
Devuelve la raíz cuadrada de un número.

function sqrt(number : Number) : Number

Argumentos
number
Necesario. Expresión numérica para la que se calcula la raíz cuadrada.
Comentarios
Si number es negativo, el valor devuelto es NaN.
Requisitos
Versión 1
Se aplica a:
Math (Objeto)
Vea también
Referencia
SQRT1_2 (Propiedad)
SQRT2 (Propiedad)
JScript 8.0

strike (Método)
Devuelve una cadena con etiquetas <STRIKE> HTML a ambos lados del texto en un objeto String.

function strike() : String

Comentarios
No se comprueba si ya se aplicó la etiqueta a la cadena.
Ejemplo
En el siguiente ejemplo se muestra cómo funciona el método strike:

var strVariable = "This is a string object";


strVariable = strVariable.strike();

El valor de strVariable después de la última instrucción es:

<STRIKE>This is a string object</STRIKE>

Requisitos
Versión 1
Se aplica a:
String (Objeto)
Vea también
Otros recursos
Métodos
JScript 8.0

sub (Método)
Devuelve una cadena con etiquetas <SUB> HTML a ambos lados del texto en un objeto String.

function sub() : String

Comentarios
No se comprueba si ya se aplicó la etiqueta a la cadena.
Ejemplo
El siguiente ejemplo muestra cómo funciona el método sub:

var strVariable = "This is a string object";


strVariable = strVariable.sub();

El valor de strVariable después de la última instrucción es:

<SUB>This is a string object</SUB>

Requisitos
Versión 1
Se aplica a:
String (Objeto)
Vea también
Referencia
sup (Método)
JScript 8.0

substr (Método)
Devuelve una subcadena que comienza en una posición especificada y tiene una longitud especificada.

function substr(start : Number [, length : Number]) : String

Argumentos
start
Necesario. Posición inicial de la subcadena deseada. El índice del primer carácter de la cadena es cero.
length
Opcional. Número de caracteres que se va a incluir en la subcadena devuelta.
Comentarios
Si length es igual a cero o es negativo, se devuelve una cadena vacía. Si no se especifica, la subcadena continúa hasta el final de
la cadena.
Ejemplo
En el siguiente ejemplo se muestra el uso del método substr.

function SubstrDemo(){
var s, ss; //Declare variables.
var s = "The rain in Spain falls mainly in the plain.";
ss = s.substr(12, 5); //Get substring.
return(ss); // Returns "Spain".
}

Requisitos
Versión 3
Se aplica a:
String (Objeto)
Vea también
Referencia
substring (Método)
JScript 8.0

substring (Método)
Devuelve la subcadena en la posición especificada dentro de un objeto String.

function substring(start : Number, end : Number) : String

Argumentos
start
Necesario. Entero correspondiente al índice basado en cero que indica el principio de la subcadena.
end
Necesario. Entero correspondiente al índice basado en cero que indica el final de la subcadena.
Comentarios
El método substring devuelve una cadena que contiene la subcadena desde el argumento start hasta el argumento end, pero
sin incluir este.
El método substring utiliza el menor valor de start y end como punto inicial de la subcadena. Por ejemplo, strvar.substring(0,
3) y strvar.substring(3, 0) devuelven la misma subcadena.
Si start o end son NaN o negativos, se reemplazan por cero.
La longitud de la subcadena es igual al valor absoluto de la diferencia entre start y end. Por ejemplo, la longitud de la
subcadena devuelta en strvar.substring(0, 3) y strvar.substring(3, 0) es tres.
Ejemplo
El siguiente ejemplo muestra el uso del método substring.

function SubstringDemo(){
var ss; //Declare variables.
var s = "The rain in Spain falls mainly in the plain..";
ss = s.substring(12, 17); //Get substring.
return(ss); //Return substring.
}

Requisitos
Versión 1
Se aplica a:
String (Objeto)
Vea también
Referencia
substr (Método)
JScript 8.0

sup (Método)
Devuelve una cadena con etiquetas <SUP> HTML a ambos lados del texto en un objeto String.

function sup() : String

Comentarios
No se comprueba si ya se aplicó la etiqueta a la cadena.
Ejemplo
El siguiente ejemplo muestra cómo funciona el método sup.

var strVariable = "This is a string object";


strVariable = strVariable.sup();

El valor de strVariable después de la última instrucción es:

<SUP>This is a string object</SUP>

Requisitos
Versión 1
Se aplica a:
String (Objeto)
Vea también
Referencia
sub (Método)
JScript 8.0

Métodos (T-Z)
Un método es una función que es miembro de un objeto. A continuación se muestran los métodos cuyos nombres empiezan
con las letras de la t a la z.
En esta sección
tan (Método)
Devuelve la tangente de un número.
test (Método)
Devuelve un valor Boolean que indica si existe o no un modelo en una cadena de búsqueda.
toArray (Método)
Devuelve una matriz JScript estándar convertida a partir de un objeto VBArray.
toDateString (Método)
Devuelve una fecha como un valor de cadena.
toExponential (Método)
Devuelve una cadena que contiene un número representado en notación exponencial.
toFixed (Método)
Devuelve una cadena que representa un número en notación de punto fijo.
toGMTString (Método)
Devuelve una fecha convertida en cadena utilizando la hora media de Greenwich (GMT).
toLocaleDateString (Método)
Devuelve una fecha como un valor de cadena apropiado para la configuración regional actual del entorno host.
toLocaleLowerCase (Método)
Devuelve una cadena donde todos los caracteres alfabéticos se han convertido a minúsculas, según la configuración regional
actual del entorno host.
toLocaleString (Método)
Devuelve una fecha convertida en cadena utilizando la configuración regional actual.
toLocaleTimeString (Método)
Devuelve una hora como un valor de cadena apropiado para la configuración regional actual del entorno host.
toLocaleUpperCase (Método)
Devuelve una cadena donde todos los caracteres alfabéticos se han convertido a mayúsculas, según la configuración
regional actual del entorno host.
toLowerCase (Método)
Devuelve una cadena donde todos los caracteres alfabéticos se han convertido a minúsculas.
toPrecision (Método)
Devuelve una cadena que contiene un número representado en notación exponencial o de punto fijo con un número
especificado de dígitos.
toString (Método)
Devuelve una representación en forma de cadena de un objeto.
toTimeString (Método)
Devuelve una hora como un valor de cadena.
toUpperCase (Método)
Devuelve una cadena donde todos los caracteres alfabéticos se han convertido a mayúsculas.
toUTCString (Método)
Devuelve una fecha convertida en cadena utilizando el horario universal coordinado (UTC).
ubound (Método)
Devuelve el mayor valor de índice utilizado en la dimensión especificada del objeto VBArray.
unescape (Método)
Descodifica objetos String codificados con el método escape.
unshift (Método)
Devuelve una matriz en la que los elementos especificados se insertan al principio.
UTC (Método)
Devuelve el número de milisegundos transcurrido entre la medianoche del 1 de enero de 1970 en el horario universal
coordinado (UTC) (o GMT) y la fecha proporcionada.
valueOf (Método)
Devuelve el valor primitivo del objeto especificado.
Secciones relacionadas
Referencia de JScript
Enumera los elementos que comprende la Referencia del lenguaje JScript e incluye vínculos a temas que explican con más
detalle el uso correcto de los elementos del lenguaje.
Métodos
Enumera por orden alfabético los métodos disponibles en JScript y proporciona vínculos a cada una de las categorías de los
métodos.
Objetos
Detalla el concepto de objeto en JScript, explica cómo los objetos están relacionados con las propiedades y los métodos, e
incluye vínculos a temas que proporcionan más detalles sobre los objetos que JScript admite.
JScript 8.0

tan (Método)
Devuelve la tangente de un número.

function tan(number : Number) : Number

Argumentos
number
Necesario. Expresión numérica para la que se calcula la tangente.
Comentarios
El valor devuelto es la tangente de number.
Requisitos
Versión 1
Se aplica a:
Math (Objeto)
Vea también
Referencia
acos (Método)
asin (Método)
atan (Método)
atan2 (Método)
cos (Método)
sin (Método)
JScript 8.0

test (Método)
Devuelve un valor Boolean que indica si existe o no un modelo de expresión regular en una cadena de búsqueda.

function test(str : String) : Boolean

Argumentos
str
Necesario. Cadena en la que se realiza la búsqueda.
Comentarios
El método test comprueba si existe un modelo dentro de una cadena y devuelve True en tal caso o False en caso contrario. Si
se encuentra una coincidencia, las propiedades del objeto RegExp global se actualizan para reflejar los resultados de la
búsqueda.
Si se establece el identificador global para una expresión regular, el método test busca la cadena empezando en la posición
indicada por el valor de lastIndex. Si no se establece el identificador global, test omite el valor de lastIndex y busca desde el
principio de la cadena.
Ejemplo
El siguiente ejemplo muestra el uso del método test. Para utilizar este ejemplo, pase un modelo de expresión regular y una
cadena a la función. La función busca la presencia del modelo de expresión regular en la cadena y devuelve una cadena que
indica el resultado de la búsqueda:

function TestDemo(re, s){


var s1; //Declare variable.
// Test string for existence of regular expression.
if (re.test(s)) //Test for existence.
s1 = " contains "; //s contains pattern.
else
s1 = " does not contain "; //s does not contain pattern.
return("'" + s + "'" + s1 + "'"+ re.source + "'"); //Return string.
}

Requisitos
Versión 3
Se aplica a:
Regular Expression (Objeto)
Vea también
Referencia
RegExp (Objeto)
Conceptos
Sintaxis de expresiones regulares
JScript 8.0

toArray (Método)
Devuelve una matriz JScript estándar convertida a partir de un objeto VBArray.

function toArray() : Array

Comentarios
La conversión convierte un objeto VBArray de varias dimensiones en una matriz JScript de una dimensión. El método toArray
anexa cada una de las dimensiones al final de la dimensión anterior. Por ejemplo, un objeto VBArray con tres dimensiones y
tres elementos en cada dimensión se convierte en una matriz JScript de la siguiente forma:
Supongamos que el objeto VBArray contiene: (1, 2, 3), (4, 5, 6), (7, 8, 9). Después de la conversión, la matriz JScript contiene 1,
2, 3, 4, 5, 6, 7, 8, 9.
En la actualidad no existe ningún método para convertir una matriz JScript en un objeto VBArray.
Ejemplo
El siguiente ejemplo consta de tres partes. La primera parte es código VBScript que crea una matriz segura de Visual Basic. La
segunda parte es un código JScript que convierte la matriz segura de Visual Basic en una matriz JScript. Tanto la primera parte
como la segunda van en la sección <HEAD> de una página HTML. La tercera parte es el código JScript que va en la sección
<BODY> para ejecutar las otras dos partes.

<HEAD>
<SCRIPT LANGUAGE="VBScript">
<!--
Function CreateVBArray()
Dim i, j, k
Dim a(2, 2)
k = 1
For i = 0 To 2
For j = 0 To 2
a(j, i) = k
document.writeln(k)
k = k + 1
Next
document.writeln("<BR>")
Next
CreateVBArray = a
End Function
-->
</SCRIPT>

<SCRIPT LANGUAGE="JScript">
<!--
function VBArrayTest(vbarray)
{
var a = new VBArray(vbarray);
var b = a.toArray();
var i;
for (i = 0; i < 9; i++)
{
document.writeln(b[i]);
}
}
-->
</SCRIPT>
</HEAD>

<BODY>
<SCRIPT LANGUAGE="JScript">
<!--
VBArrayTest(CreateVBArray());
-->
</SCRIPT>
</BODY>

Requisitos
Versión 3
Se aplica a:
VBArray (Objeto)
Vea también
Referencia
dimensions (Método)
getItem (Método)
lbound (Método)
ubound (Método)
JScript 8.0

toDateString (Método)
Devuelve una fecha como un valor de cadena.

function toDateString() : String

Comentarios
El método toDateString devuelve un valor de cadena que contiene la fecha, en la zona horaria actual, en un formato práctico y
de fácil lectura.
Requisitos
Versión 5,5
Se aplica a:
Date (Objeto)
Vea también
Referencia
toTimeString (Método)
toLocaleDateString (Método)
JScript 8.0

toExponential (Método)
Devuelve una cadena que contiene un número representado en notación exponencial.

function toExponential( [fractionDigits : Number] ) : String

Argumentos
fractionDigits
Opcional. Número de dígitos situados a continuación del signo decimal. Debe estar entre 0 y 20, ambos incluidos.
Comentarios
El método toExponential devuelve una representación de cadena de un número en notación exponencial. La cadena contiene
un dígito delante del signo decimal del significando y puede contener los dígitos indicados en fractionDigits detrás de él.
Si no se proporciona un valor para fractionDigits, el método toExponential devuelve el número de dígitos necesario para
especificar el número de forma única.
Requisitos
Versión 5,5
Se aplica a:
Number (Objeto)
Vea también
Referencia
toFixed (Método)
toPrecision (Método)
JScript 8.0

toFixed (Método)
Devuelve una cadena que representa un número en notación de punto fijo.

function toFixed( [fractionDigits : Number] ) : String

Argumentos
fractionDigits
Opcional. Número de dígitos situados a continuación del signo decimal. Debe estar entre 0 y 20, ambos incluidos.
Comentarios
El método toFixed devuelve una representación de cadena de un número en notación de punto fijo. La cadena contiene un
dígito delante del signo decimal del significando y debe contener los dígitos indicados en fractionDigits detrás de él.
Si no se proporciona un valor para fractionDigitso es undefined, el método toFixed supone que el valor es cero.
Requisitos
Versión 5,5
Se aplica a:
Number (Objeto)
Vea también
Referencia
toExponential (Método)
toPrecision (Método)
JScript 8.0

toGMTString (Método)
Devuelve una fecha convertida en cadena utilizando la hora media de Greenwich (GMT).

function toGMTString() : String

Comentarios
El método toGMTString está obsoleto y sólo se proporciona a efectos de compatibilidad con versiones anteriores. Se
recomienda utilizar el método toUTCString en su lugar.
El método toGMTString devuelve un objeto String que contiene la fecha con el formato propio de la convención GMT. El
formato del valor devuelto es el siguiente: "05 Jan 1996 00:00:00 GMT".
Requisitos
Versión 1
Se aplica a:
Date (Objeto)
Vea también
Referencia
toUTCString (Método)
JScript 8.0

toLocaleDateString (Método)
Devuelve una fecha como un valor de cadena apropiado para la configuración regional actual del entorno host.

function toLocaleDateString() : String

Comentarios
El método toLocaleDateString devuelve un valor de cadena que contiene una fecha, en la zona horaria actual, en un formato
de fácil lectura. La fecha tiene el formato predeterminado de la configuración regional actual del entorno host. El valor devuelto
por este método no se puede basar en las secuencias de comandos, ya que variará entre equipos. El método
toLocalDateString sólo se debe utilizar para dar formato a la presentación y nunca como parte de un cálculo.
Requisitos
Versión 5,5
Se aplica a:
Date (Objeto)
Vea también
Referencia
toDateString (Método)
toLocaleTimeString (Método)
JScript 8.0

toLocaleLowerCase (Método)
Devuelve una cadena donde todos los caracteres alfabéticos se han convertido a minúsculas, según la configuración regional
actual del entorno host.

function tolocaleLowerCase() : String

Comentarios
El método toLocaleLowerCase convierte los caracteres de una cadena teniendo en cuenta la configuración regional actual del
entorno host. En la mayoría de los casos, los resultados son los mismos que se obtendrían con el método toLowerCase. Los
resultados difieren si las reglas de un lenguaje entran en conflicto con las asignaciones normales de minúsculas y mayúsculas
de Unicode.
Requisitos
Versión 5,5
Se aplica a:
String (Objeto)
Vea también
Referencia
toLocaleUpperCase (Método)
toLowerCase (Método)
JScript 8.0

toLocaleString (Método)
Devuelve un valor como un valor de cadena apropiado para la configuración regional actual del entorno host.

function toLocaleString() : String

Comentarios
Para el objeto Array, los elementos de la matriz se convierten en cadenas y estas cadenas se concatenan y devuelven
separadas entre sí por el separador de lista especificado para la configuración regional actual del entorno host.
Para el objeto Date, el método toLocaleString devuelve un objeto String que contiene la fecha escrita en el formato largo
predeterminado de la configuración regional actual.
Para fechas comprendidas entre 1601 y 9999 d.C., se aplica formato a la fecha de acuerdo con la configuración regional
del Panel de control del usuario.
Para fechas no incluidas dentro de este intervalo, se utiliza el formato predeterminado del método toString.
Para el objeto Number, toLocaleString genera un valor de cadena que representa el valor de Number con el formato
apropiado para la configuración regional actual del entorno host.
Para objetos Object, el método ToLocaleString se proporciona para dar a todos los objetos una capacidad genérica
toLocaleString, aunque no la utilicen.
Nota
El método toLocaleString sólo debe utilizarse para mostrar resultados al usuario; no debe utilizarse nunca como base para
procesar datos dentro de una secuencia de comandos, ya que el resultado devuelto depende del equipo.

Ejemplo
El siguiente ejemplo del lado cliente muestra el uso del método toLocaleString mediante un objeto Array, Date y Number.

function toLocaleStringArray() {
// Declare variables.
var myArray = new Array(6);
var i;
// Initialize string.
var s = "The array contains: ";
// Populate array with values.
for(i = 0;i < 7; i++)
{
// Make value same as index.
myArray[i] = i;
}
s += myArray.toLocaleString();
return(s);
}
function toLocaleStringDate() {
// Declare variables.
var d = new Date();
var s = "Current date setting is ";
// Convert to current locale.
s += d.toLocaleString();
return(s);
}
function toLocaleStringNumber() {
var n = Math.PI;
var s = "The value of Pi is: ";
s+= n.toLocaleString();
return(s);
}
Requisitos
Versión 1
Se aplica a:
Array (Objeto)| Date (Objeto)| Number (Objeto)| Object (Objeto)
Vea también
Otros recursos
Métodos
JScript 8.0

toLocaleTimeString (Método)
Devuelve una hora como un valor de cadena apropiado para la configuración regional actual del entorno host.

function toLocaleTimeString() : String

Comentarios
El método toLocaleTimeString devuelve un valor de cadena que contiene una hora, en la zona horaria actual, con un formato
de fácil lectura. La hora tiene el formato predeterminado de la configuración regional actual del entorno host. El valor devuelto
por este método no se puede basar en las secuencias de comandos, ya que variará entre equipos. El método
toLocalTimeString sólo se debe utilizar para dar formato a la presentación y nunca como parte de un cálculo.
Requisitos
Versión 5,5
Se aplica a:
Date (Objeto)
Vea también
Referencia
toTimeString (Método)
toLocaleDateString (Método)
JScript 8.0

toLocaleUpperCase (Método)
Devuelve una cadena donde todos los caracteres alfabéticos se han convertido a mayúsculas, según la configuración regional
actual del entorno host.

function tolocaleUpperCase() : String

Comentarios
El método toLocaleUpperCase convierte los caracteres de una cadena teniendo en cuenta la configuración regional actual del
entorno host. En la mayoría de los casos, los resultados son los mismos que se obtendrían con el método toUpperCase. Los
resultados difieren si las reglas de un lenguaje entran en conflicto con las asignaciones normales de minúsculas y mayúsculas
de Unicode.
Requisitos
Versión 5,5
Se aplica a:
String (Objeto)
Vea también
Referencia
toLocaleLowerCase (Método)
toUpperCase (Método)
JScript 8.0

toLowerCase (Método)
Devuelve una cadena donde todos los caracteres alfabéticos se han convertido a minúsculas.

function toLowerCase() : String

Comentarios
El método toLowerCaseno tiene efecto en caracteres no alfabéticos.
Ejemplo
En el siguiente ejemplo se muestran los efectos del método toLowerCase:

var strVariable = "This is a STRING object";


strVariable = strVariable.toLowerCase();

El valor de strVariable después de la última instrucción es:

this is a string object

Requisitos
Versión 1
Se aplica a:
String (Objeto)
Vea también
Referencia
toUpperCase (Método)
JScript 8.0

toPrecision (Método)
Devuelve una cadena que contiene un número representado en notación exponencial o de punto fijo con un número
especificado de dígitos.

function toPrecision ( [precision : Number] ) : String

Argumentos
precision
Opcional. Número de dígitos significativos. Debe estar entre 1 y 21, ambos incluidos.
Comentarios
Para los números representados en notación exponencial, se devuelven los dígitos indicados por precision - 1 detrás del signo
decimal. Para los números representados en notación fija, se devuelven los dígitos significativos indicados por precision.
Si no se proporciona un valor para precision o es undefined, se llama al método toString en su lugar.
Requisitos
Versión 5.5
Se aplica a:
Number (Objeto)
Vea también
Referencia
toFixed (Método)
toExponential (Método)
JScript 8.0

toString (Método)
Devuelve una representación en forma de cadena de un objeto.

function toString( [radix : Number] ) : String

Argumentos
radix
Opcional. Especifica una base para convertir los valores numéricos en cadenas. Este valor sólo se usa para números.
Comentarios
El método toString es un miembro de todos los objetos integrados de JScript. El comportamiento depende del tipo de objeto:
Objeto Comportamiento
Array Los elementos de un objeto Array se convierten en cadenas. Las cadenas resultantes se concatenan, separadas por co
mas.

Boolea Si el valor de Boolean es true, devuelve "true". De lo contrario, devuelve "false".


n

Date Devuelve la representación textual de la fecha.

Error Devuelve una cadena que contiene el mensaje de error asociado.

Functio Devuelve una cadena que tiene la forma siguiente, donde functionname es el nombre de la función a cuyo método to
n String se llamó:
"function functionname() { [código nativo] }"

Numbe Devuelve la representación textual del número.


r

String Devuelve el valor del objeto String.

Default Devuelve "[object objectname]", donde objectname es el nombre del tipo de objeto.
Ejemplo
El siguiente ejemplo muestra el uso del método toString con un argumento base. El valor devuelto por la función que se
muestra a continuación es una tabla de conversión de base.

function CreateRadixTable (){


var s, s1, s2, s3, x; //Declare variables.
s = "Hex Dec Bin \n"; //Create table heading.
for (x = 0; x < 16; x++) //Establish size of table
{ // in terms of number of
switch(x) // values shown.
{ //Set intercolumn spacing.
case 0 :
s1 = " ";
s2 = " ";
s3 = " ";
break;
case 1 :
s1 = " ";
s2 = " ";
s3 = " ";
break;
case 2 :
s3 = " ";
break;
case 3 :
s3 = " ";
break;
case 4 :
s3 = " ";
break;
case 5 :
s3 = " ";
break;
case 6 :
s3 = " ";
break;
case 7 :
s3 = " ";
break;
case 8 :
s3 = "" ;
break;
case 9 :
s3 = "";
break;
default:
s1 = " ";
s2 = "";
s3 = " ";
} //Convert to hex, decimal & binary.
s += " " + x.toString(16) + s1 + x.toString(10)
s += s2 + s3 + x.toString(2)+ "\n";

}
return(s); //Return entire radix table.
}

Requisitos
Versión 2
Se aplica a:
Array (Objeto)| Boolean (Objeto)| Date (Objeto)| Error (Objeto)| Fuction (Objeto)| Number (Objeto)| Object (Objeto)|
String (Objeto)
Vea también
Referencia
function (Instrucción)
JScript 8.0

toTimeString (Método)
Devuelve una hora como un valor de cadena.

function toTimeString() : String

Comentarios
El método toTimeString devuelve un valor de cadena que contiene la hora, en la zona horaria actual, en un formato práctico y
de fácil lectura.
Requisitos
Versión 5,5
Se aplica a:
Date (Objeto)
Vea también
Referencia
toDateString (Método)
toLocaleTimeString (Método)
JScript 8.0

toUpperCase (Método)
Devuelve una cadena donde todos los caracteres alfabéticos se han convertido a mayúsculas.

function toUpperCase() : String

Comentarios
El método toUpperCase no tiene efecto en caracteres no alfabéticos.
Ejemplo
En el siguiente ejemplo se muestran los efectos del método toUpperCase:

var strVariable = "This is a STRING object";


strVariable = strVariable.toUpperCase();

El valor de strVariable después de la última instrucción es:

THIS IS A STRING OBJECT

Requisitos
Versión 1
String (Objeto)
Vea también
Referencia
toLowerCase (Método)
JScript 8.0

toUTCString (Método)
Devuelve una fecha convertida en cadena utilizando la hora universal coordinada (UTC).

function toUTCString() : String

Comentarios
El método toUTCString devuelve un objeto String que contiene la fecha con el formato propio de la convención UTC en un
formato práctico y de fácil lectura.
Ejemplo
En el siguiente ejemplo se muestra el uso del método toUTCString.

function toUTCStrDemo(){
var d, s; //Declare variables.
d = new Date(); //Create Date object.
s = "Current setting is ";
s += d.toUTCString(); //Convert to UTC string.
return(s); //Return UTC string.
}

Requisitos
Versión 3
Se aplica a:
Date (Objeto)
Vea también
Referencia
toGMTString (Método)
JScript 8.0

ubound (Método)
Devuelve el mayor valor de índice utilizado en la dimensión especificada del objeto VBArray.

function ubound( [dimension : Number] ) : Number

Argumentos
dimension
Opcional. Dimensión del objeto VBArray para la que se desea obtener el índice del límite superior. Si se omite, ubound se
comporta como si se hubiera pasado 1.
Comentarios
Si el objeto VBArray está vacío, el método ubound devuelve el valor undefined. Si el argumento dimension es mayor que el
número de dimensiones del objeto VBArray, o es negativo, el método genera un error "Subíndice fuera del intervalo".
Ejemplo
El siguiente ejemplo consta de tres partes. La primera parte es código VBScript para crear una matriz segura de Visual Basic. La
segunda parte es código JScript que determina el número de dimensiones de la matriz segura y el límite superior de cada
dimensión. Ambas partes van en la sección <HEAD> de una página HTML. La tercera parte es el código JScript que va en la
sección <BODY> para ejecutar las otras dos partes.

<HEAD>
<SCRIPT LANGUAGE="VBScript">
<!--
Function CreateVBArray()
Dim i, j, k
Dim a(2, 2)
k = 1
For i = 0 To 2
For j = 0 To 2
a(j, i) = k
k = k + 1
Next
Next
CreateVBArray = a
End Function
-->
</SCRIPT>

<SCRIPT LANGUAGE="JScript">
<!--
function VBArrayTest(vba)
{
var i, s;
var a = new VBArray(vba);
for (i = 1; i <= a.dimensions(); i++)
{
s = "The upper bound of dimension ";
s += i + " is ";
s += a.ubound(i)+ ".<BR>";
return(s);
}
}
-->
</SCRIPT>
</HEAD>

<BODY>
<SCRIPT language="jscript">
document.write(VBArrayTest(CreateVBArray()));
</SCRIPT>
</BODY>

Requisitos
Versión 3
Se aplica a:
VBArray (Objeto)
Vea también
Referencia
dimensions (Método)
getItem (Método)
lbound (Método)
toArray (Método)
JScript 8.0

unescape (Método)
Devuelve una cadena descodificada desde un objeto String codificado con un método escape.

function unescape(charString : String) : String

Argumentos
charString
Necesario. Literal u objeto String que se va a descodificar.
Comentarios
El método unescape devuelve un valor de cadena que almacena el contenido del argumento charString. Todos los caracteres
codificados con el formato hexadecimal %xx se reemplazan por sus equivalentes del juego de caracteres ASCII.
Los caracteres codificados con formato %uxxxx (caracteres Unicode) se reemplazan por caracteres Unicode con codificación
hexadecimal xxxx.
Nota
El método unescape no debe utilizarse para descodificar identificadores de recursos uniformes (URI, Uniform Resource Iden
tifier). En su lugar, utilice los métodos decodeURI y decodeURIComponent.

Requisitos
Versión 1
Se aplica a:
Global (Objeto)
Vea también
Referencia
decodeURI (Método)
decodeURIComponent (Método)
escape (Método)
String (Objeto)
JScript 8.0

unshift (Método)
Inserta los elementos especificados al comienzo de la matriz.

function unshift([item1 : Object [, ... [, itemN : Object]]]) : Array

Argumentos
item1, ... , itemN
Opcional. Elementos que se van a insertar en el principio de Array.
Comentarios
El método unshift inserta elementos en el principio de una matriz, de forma que aparezcan en el mismo orden que tienen en
la lista de argumentos.
Requisitos
Versión 5,5
Se aplica a:
Array (Objeto)
Vea también
Referencia
shift (Método)
JScript 8.0

UTC (Método)
Devuelve el número de milisegundos transcurrido entre la medianoche del 1 de enero de 1970 en el horario universal
coordinado (UTC) (o GMT) y la fecha proporcionada.

function UTC(year : Number , month : Number , day : Number [, hours : Number [, minutes : N
umber [, seconds : Number [,ms : Number]]]]) : Number

Argumentos
year
Necesario. Es necesario el formato de año con cuatro dígitos para la precisión de las fechas de cambio de siglo. Si se utiliza
un valor de year comprendido entre 0 y 99, se supone que el auténtico valor es 1900 + year.
month
Necesario. Mes como un entero comprendido entre 0 y 11 (de enero a diciembre).
day
Necesario. Fecha como un valor entero comprendido entre 1 y 31.
hours
Opcional. Se debe proporcionar si se proporciona el argumento minutes. Entero comprendido entre 0 y 23 (desde
medianoche a las 11 p.m.) que especifica la hora.
minutes
Opcional. Se debe proporcionar si se proporciona el argumento seconds. Entero comprendido entre 0 y 59 que especifica los
minutos.
seconds
Opcional. Se debe proporcionar si se proporciona el argumento milliseconds. Entero comprendido entre 0 y 59 que
especifica los segundos.
ms
Opcional. Entero comprendido entre 0 y 999 que especifica los milisegundos.
Comentarios
El método UTC devuelve el número de milisegundos transcurridos entre la medianoche del 1 de enero de 1970 UTC y la fecha
proporcionada. Este valor devuelto se puede utilizar en el método setTime y en el constructor del objeto Date. Si el valor de
un argumento es mayor que su intervalo o es un número negativo, los demás valores almacenados se modifican
consecuentemente. Por ejemplo, si se especifican 150 segundos, JScript vuelve a definir ese número como dos minutos y 30
segundos.
La diferencia entre el método UTC y el constructor del objeto Date que acepta una fecha es que el primero supone la hora
universal coordinada y el segundo supone la hora local.
El método UTC es un método estático. Por tanto, para poderse utilizar, no es necesario crear previamente un objeto Date.
Nota
Si el valor de year está comprendido entre 0 y 99, utilice 1900 + year para el año.

Ejemplo
En el siguiente ejemplo se muestra el uso del método UTC.

function DaysBetweenDateAndNow(yr, mo, dy){


var d, r, t1, t2, t3; //Declare variables.
var MinMilli = 1000 * 60 //Initialize variables.
var HrMilli = MinMilli * 60
var DyMilli = HrMilli * 24
t1 = Date.UTC(yr, mo - 1, dy) //Get milliseconds since 1/1/1970.
d = new Date(); //Create Date object.
t2 = d.getTime(); //Get current time.
if (t2 >= t1)
t3 = t2 - t1;
else
t3 = t1 - t2;
r = Math.round(t3 / DyMilli);
return(r); //Return difference.
}

Requisitos
Versión 1
Se aplica a:
Date (Objeto)
Vea también
Referencia
setTime (Método)
JScript 8.0

valueOf (Método)
Devuelve el valor primitivo del objeto especificado.

function valueOf() : Object

Comentarios
El método valueOf se define de forma diferente para cada objeto intrínseco de JScript.
Objeto Valor devuelto
Array La instancia de la matriz.

Boolean El valor Boolean.

Date El valor de hora almacenado en milisegundos desde la medianoche del 1 de enero de 1970 UTC.

Function La propia función.

Number El valor numérico.

Object El propio objeto. Éste es el valor predeterminado.

String El valor de cadena.

Los objetos Math y Error no tienen un método valueOf.


Requisitos
Versión 2
Se aplica a:
Array (Objeto)| Boolean (Objeto)| Date (Objeto)| Fuction (Objeto)| Number (Objeto)| Object (Objeto)| String (Objeto)
Vea también
Referencia
toString (Método)
JScript 8.0

Modificadores
Los modificadores de JScript se utilizan para cambiar el comportamiento y la visibilidad de las clases, interfaces o miembros de
clase o interfaz. Se pueden utilizar modificadores para definir clases e interfaces, pero no son necesarios.
En esta sección
abstract (Modificador)
Modificador de herencia que permite la definición de clases y miembros de clase, pero no permite que se den
implementaciones.
expando (Modificador)
Modificador de compatibilidad que marca una clase como ampliable dinámicamente o un método como constructor de
objetos expando.
final (Modificador)
Modificador de herencia que impide que una clase sea ampliada o que un método o una propiedad sean reemplazados.
hide (Modificador)
Modificador de versión segura que impide que un método o una propiedad reemplacen un método o propiedad de una
clase base.
internal (Modificador)
Modificador de visibilidad que hace visible una clase, una interfaz o un miembro sólo en el paquete actual.
override (Modificador)
Modificador de versión segura empleado para reemplazar explícitamente un método en una clase base.
private (Modificador)
Modificador de visibilidad que hace visible un miembro de clase sólo para los miembros de la misma clase.
protected (Modificador)
Modificador de visibilidad que hace visible un miembro de clase o interfaz sólo para la clase o interfaz actual y las clases
derivadas de la clase actual.
public (Modificador)
Modificador de visibilidad que hace visibles a los miembros de una clase o interfaz para cualquier código que tenga acceso a
la clase o interfaz.
static (Modificador)
Modificador que marca un miembro de clase como perteneciente a la clase en cuestión.
Secciones relacionadas
Modificadores de JScript
Información general y conceptual sobre la finalidad y los usos de los modificadores de JScript.
JScript 8.0

abstract (Modificador)
Declara que una clase debe ampliarse o que una clase derivada debe proporcionar la implementación de un método o
propiedad.

abstract statement

Argumentos
statement
Necesario. Definición de una clase, un método o una propiedad.
Comentarios
El modificador abstract se utiliza con métodos o propiedades de una clase que no tengan implementación o con clases que
contengan tales métodos. No se pueden crear instancias de una clase con miembros abstractos con el operador new. De una
clase base abstracta pueden derivarse tanto clases abstractas como no abstractas.
Los métodos y propiedades de clases y las clases se pueden marcar con el modificador abstract. Toda clase que contenga
miembros abstract deberá marcarse como abstract. Las interfaces y miembros de interfaz, que son implícitamente abstractos,
no pueden tomar el modificador abstract. Los campos no pueden ser abstract.
El modificador abstract no puede combinarse con el otro modificador de herencia (final). De manera predeterminada, los
miembros de clase no son ni abstract ni final. Los modificadores de herencia no se pueden combinar con el modificador
static.
Ejemplo
El siguiente ejemplo muestra un uso del modificador abstract:

// CAnimal is an abstract base class.


abstract class CAnimal {
abstract function printQualities();
}
// CDog and CKangaroo are derived classes of CAnimal.
class CDog extends CAnimal {
function printQualities() {
print("A dog has four legs.");
}
}
class CKangaroo extends CAnimal {
function printQualities() {
print("A kangaroo has a pouch.");
}
}

// Define animal of type CAnimal.


var animal : CAnimal;

animal = new CDog;


// animal uses printQualities from CDog.
animal.printQualities();
animal = new CKangaroo;
// animal uses printQualities from CKangaroo.
animal.printQualities();

El resultado de este programa es:

A dog has four legs.


A kangaroo has a pouch.

Requisitos
Versión .NET
Vea también
Referencia
final (Modificador)
static (Modificador)
var (Instrucción)
function (Instrucción)
class (Instrucción)
new (Operador)
Conceptos
Ámbito de variables y constantes
Otros recursos
Modificadores
JScript 8.0

expando (Modificador)
Declara que las instancias de una clase admiten propiedades expando o que un método es un constructor de objeto expando.

expando statement

Argumentos
statement
Necesario. Definición de una clase o un método.
Comentarios
El modificador expando se utiliza para marcar una clase que acepte propiedades expando como dinámicamente ampliable. A
las propiedades expando de instancias de clase expando se debe tener acceso utilizando la notación []; no son accesibles con
el operador punto. El modificador expando marca también un método como constructor de un objeto expando.
Las clases y métodos de clases se pueden marcar con este modificador. Los campos, las propiedades y los miembros de
interfaz no pueden tomar este modificador.
Una clase expando tiene una propiedad privada oculta denominada Item que toma un parámetro Object y devuelve un tipo
Object. No se puede definir una propiedad con esta firma en una clase expando.
Ejemplo 1
El siguiente ejemplo muestra un uso del modificador expando en una clase. La clase expando es como un objeto Object de
JScript, pero hay algunas diferencias que se muestran en el siguiente ejemplo:

expando class CExpandoExample {


var x : int = 10;
}

// New expando class-based object.


var testClass : CExpandoExample = new CExpandoExample;
// New JScript Object.
var testObject : Object = new Object;

// Add expando properties to both objects.


testClass["x"] = "ten";
testObject["x"] = "twelve";
// Access the field of the class-based object.
print(testClass.x); // Prints 10.
// Access the expando property.
print(testClass["x"]); // Prints ten.

// Access the property of the class-based object.


print(testObject.x); // Prints twelve.
// Access the same property using the [] operator.
print(testObject["x"]); // Prints twelve.

El resultado de este código es:

10
ten
twelve
twelve

Ejemplo 2
El siguiente ejemplo muestra un uso del modificador expando en un método. Cuando se llama al método expando del modo
habitual, se tiene acceso al campo x. Si se utiliza el método como un constructor explícito con el operador new, se agrega una
propiedad expando a un objeto nuevo:

class CExpandoExample {
var x : int;
expando function constructor(val : int) {
this.x = val;
return "Method called as a function.";
}
}
var test : CExpandoExample = new CExpandoExample;
// Call the expando method as a function.
var str = test.constructor(123);
print(str); // The return value is a string.
print(test.x); // The value of x has changed to 123.

// Call the expando method as a constructor.


var obj = new test.constructor(456);
// The return value is an object, not a string.
print(obj.x); // The x property of the new object is 456.
print(test.x); // The x property of the original object is still 123.

El resultado de este código es:

Method called as a function.


123
456
123

Requisitos
Versión .NET
Vea también
Referencia
static (Modificador)
var (Instrucción)
function (Instrucción)
class (Instrucción)
Conceptos
Ámbito de variables y constantes
Anotaciones de tipo
Otros recursos
Modificadores
JScript 8.0

final (Modificador)
Declara que una clase no se puede ampliar o que un método o propiedad no se puede reemplazar.

final statement

Argumentos
statement
Necesario. Definición de una clase, un método o una propiedad.
Comentarios
El modificador final se utiliza para especificar que una clase no se puede ampliar o que un método o propiedad no se puede
reemplazar. De este modo, se evita que otras clases cambien el comportamiento de la clase reemplazando funciones
importantes. Los métodos con el modificador final se pueden ocultar o sobrecargar con métodos de clases derivadas.
Los métodos y propiedades de clases y las clases se pueden marcar con este modificador. Las interfaces, los campos y los
miembros de interfaz no pueden tomar el modificador final.
El modificador final no puede combinarse con el otro modificador de herencia (abstract). De manera predeterminada, los
miembros de clase no son ni abstract ni final. Los modificadores de herencia no se pueden combinar con el modificador
static.
Ejemplo
El siguiente ejemplo muestra un uso del modificador final. Este modificador evita que un método de la clase base se
reemplace con métodos de las clases derivadas.

class CBase {
final function methodA() { print("Final methodA of CBase.") };
function methodB() { print("Non-final methodB of CBase.") };
}

class CDerived extends CBase {


function methodA() { print("methodA of CDerived.") };
function methodB() { print("methodB of CDerived.") };
}

var baseInstance : CBase = new CDerived;


baseInstance.methodA();
baseInstance.methodB();

El resultado de este programa muestra que el método final no se reemplaza:

Final methodA of CBase.


methodB of CDerived.

Requisitos
Versión .NET
Vea también
Referencia
abstract (Modificador)
hide (Modificador)
override (Modificador)
var (Instrucción)
function (Instrucción)
class (Instrucción)
Conceptos
Ámbito de variables y constantes
Anotaciones de tipo
Otros recursos
Modificadores
JScript 8.0

hide (Modificador)
Declara que un método o propiedad oculta un método o propiedad de una clase base.

hide statement

Argumentos
statement
Necesario. Definición de un método o una propiedad.
Comentarios
El modificador hide se utiliza para un método que oculta otro método de la clase base. No puede utilizar este modificador para
un método a menos que la clase base tenga un miembro con la misma firma.
Los métodos y propiedades de clases y las clases se pueden marcar con el modificador hide. Las clases, los campos, las
interfaces y los miembros de interfaz no pueden tomar este modificador.
El modificador hide no puede combinarse con el otro modificador de versión segura (override). Los modificadores de versión
segura no se pueden combinar con el modificador static. A menos que los métodos de la clase base lleven el modificador
final, serán reemplazados por los métodos de manera predeterminada. A menos que se proporcione una implementación
explícita para el método abstracto base, no es posible ocultar un método abstract. En una ejecución en modo de versión
segura, se debe utilizar uno de los modificadores de versión segura siempre que se reemplace un método de la clase base.
Ejemplo
El siguiente ejemplo muestra un uso del modificador hide. El método de la clase derivada marcado con el modificador hide no
reemplaza el método de la clase base. El método marcado con override sí reemplaza el método de la clase base.

class CBase {
function methodA() { print("methodA of CBase.") };
function methodB() { print("methodB of CBase.") };
}

class CDerived extends CBase {


hide function methodA() { print("Hiding methodA.") };
override function methodB() { print("Overriding methodB.") };
}

var derivedInstance : CDerived = new CDerived;


derivedInstance.methodA();
derivedInstance.methodB();

var baseInstance : CBase = derivedInstance;


baseInstance.methodA();
baseInstance.methodB();

El resultado de este programa muestra que un método oculto no reemplaza un método de la clase base:

Hiding methodA.
Overriding methodB.
methodA of CBase.
Overriding methodB.

Requisitos
Versión .NET
Vea también
Referencia
override (Modificador)
static (Modificador)
var (Instrucción)
function (Instrucción)
class (Instrucción)
/versionsafe
Conceptos
Ámbito de variables y constantes
Anotaciones de tipo
Otros recursos
Modificadores
JScript 8.0

internal (Modificador)
Declara que una clase, miembro de clase, interfaz o miembro de interfaz tiene visibilidad interna.

internal statement

Argumentos
statement
Necesario. Definición de una clase, interfaz o miembro.
Comentarios
El modificador internal hace visible una clase, una interfaz o un miembro sólo dentro del paquete actual. El código externo al
paquete actual no puede tener acceso a miembros con el modificador internal.
Las clases e interfaces se pueden marcar con este modificador. En el ámbito global, el modificador internal es el mismo que el
modificador public. Cualquier miembro de una clase o interfaz se puede marcar con el modificador internal.
El modificador internal no puede combinarse con ningún otro modificador de visibilidad (public, private o protected). Los
modificadores de visibilidad son relativos al ámbito en el que están definidos. Por ejemplo, un método public de una clase
internal no es accesible públicamente, pero cualquier código que tenga acceso a la clase puede tener acceso al método.
Requisitos
Versión .NET
Vea también
Referencia
public (Modificador)
private (Modificador)
protected (Modificador)
var (Instrucción)
function (Instrucción)
class (Instrucción)
Conceptos
Ámbito de variables y constantes
Otros recursos
Modificadores
JScript 8.0

override (Modificador)
Declara que un método o propiedad reemplaza un método o propiedad de una clase base.

override statement

Argumentos
statement
Requerido. Definición de un método o una propiedad.
Comentarios
El modificador override se utiliza para un método que reemplaza otro método de la clase base. No se puede utilizar este
modificador para un método a menos que la clase base tenga un miembro con la misma firma.
Los métodos y propiedades de clases y las clases se pueden marcar con el modificador override. Las clases, los campos, las
interfaces y los miembros de interfaz no pueden tomar este modificador.
El modificador override no puede combinarse con el otro modificador de versión segura (hide). Los modificadores de versión
segura no se pueden combinar con el modificador static. A menos que los métodos de la clase base lleven el modificador
final, serán reemplazados por los métodos de manera predeterminada. No se puede reemplazar un método final. En una
ejecución en modo de versión segura, se debe utilizar uno de los modificadores de versión segura siempre que se reemplace
un método de la clase base.
Ejemplo
El siguiente ejemplo muestra un uso del modificador override. El método de la clase derivada marcado con el modificador
override reemplaza al método de la clase base. El método marcado con el modificador hide no reemplaza el método de clase
base.

class CBase {
function methodA() { print("methodA of CBase.") };
function methodB() { print("methodB of CBase.") };
}

class CDerived extends CBase {


hide function methodA() { print("Hiding methodA.") };
override function methodB() { print("Overriding methodB.") };
}

var derivedInstance : CDerived = new CDerived;


derivedInstance.methodA();
derivedInstance.methodB();
var baseInstance : CBase = derivedInstance;
baseInstance.methodA();
baseInstance.methodB();

El resultado de este programa muestra que un método override reemplaza un método de la clase base:

Hiding methodA.
Overriding methodB.
methodA of CBase.
Overriding methodB.

Requisitos
Versión .NET
Vea también
Referencia
hide (Modificador)
var (Instrucción)
function (Instrucción)
class (Instrucción)
Conceptos
Ámbito de variables y constantes
Anotaciones de tipo
Otros recursos
Modificadores
JScript 8.0

private (Modificador)
Declara que un miembro de clase tiene visibilidad privada.

private statement

Argumentos
statement
Requerido. Definición de un miembro de clase.
Comentarios
El modificador private marca un miembro de una clase como visible sólo dentro de esa clase. El código externo a la clase
actual, incluidas las clases derivadas, no puede tener acceso a miembros con el modificador private.
Las clases e interfaces de ámbito global no se pueden marcar con este modificador. Cualquier miembro de una clase o interfaz
(incluidas las clases e interfaces anidadas) se puede marcar con el modificador private.
El modificador private no puede combinarse con ningún otro modificador de visibilidad (public, protected o internal).
Requisitos
Versión .NET
Vea también
Referencia
public (Modificador)
protected (Modificador)
internal (Modificador)
var (Instrucción)
function (Instrucción)
class (Instrucción)
Conceptos
Ámbito de variables y constantes
Otros recursos
Modificadores
JScript 8.0

protected (Modificador)
Declara que un miembro de clase o interfaz tiene visibilidad protegida.

protected statement

Argumentos
statement
Necesario. Definición de un miembro de clase o interfaz.
Comentarios
El modificador protected hace visible a un miembro de una clase o interfaz sólo dentro de esa clase o interfaz y todas las
clases derivadas de la clase actual. El código externo a la clase actual no puede tener acceso a miembros con el modificador
protected.
Las clases e interfaces de ámbito global no se pueden marcar con el modificador protected. Cualquier miembro de una clase
o interfaz (incluidas las clases e interfaces anidadas) se puede marcar con el modificador protected.
El modificador protected no puede combinarse con ningún otro modificador de visibilidad (public, private o internal).
Requisitos
Versión .NET
Vea también
Referencia
public (Modificador)
private (Modificador)
internal (Modificador)
var (Instrucción)
function (Instrucción)
class (Instrucción)
Conceptos
Ámbito de variables y constantes
Otros recursos
Modificadores
JScript 8.0

public (Modificador)
Declara que una clase, interfaz o miembro tiene visibilidad pública.

public statement

Argumentos
statement
Necesario. Definición de una clase, interfaz o miembro.
Comentarios
El modificador public hace visible un miembro de una clase para cualquier código que tenga acceso a la clase.
Todas las clases e interfaces son public de manera predeterminada. Un miembro de una clase o interfaz se puede marcar con
el modificador public.
El modificador public no puede combinarse con ningún otro modificador de visibilidad (private, protected o internal).
Requisitos
Versión .NET
Vea también
Referencia
private (Modificador)
protected (Modificador)
internal (Modificador)
var (Instrucción)
function (Instrucción)
class (Instrucción)
Conceptos
Ámbito de variables y constantes
Otros recursos
Modificadores
JScript 8.0

static (Modificador)
Declara que un miembro de una clase pertenece a una clase en lugar de instancias de esa clase.

static statement

Argumentos
statement
Necesario. Definición de un miembro de clase.
Comentarios
El modificador static indica que un miembro, en lugar de pertenecer a las instancias de una clase, pertenece a la propia clase.
De ese modo se consigue que en cada aplicación sólo haya una copia del miembro static, por muchas instancias que se hayan
creado de la clase. Sólo se puede tener acceso a los miembros static con referencias a las clases, no con referencias a las
instancias. No obstante, en una declaración de un miembro de clase, se puede tener acceso a los miembros static con el objeto
this.
Los miembros de clases se pueden marcar con el modificador static. Las clases, las interfaces y los miembros de interfaz no
pueden este modificador.
El modificador static no puede combinarse con ninguno de los modificadores de herencia (abstract y final) ni de versión
segura (hide y override).
No confunda el modificador static con la instrucción static. El modificador static denota un miembro que pertenece a la
propia clase y no a una instancia de la clase.
Ejemplo
El siguiente ejemplo muestra un uso del modificador static:

class CTest {
var nonstaticX : int; // A non-static field belonging to a class instance.
static var staticX : int; // A static field belonging to the class.
}

// Initialize staticX. An instance of test is not needed.


CTest.staticX = 42;

// Create an instance of test class.


var a : CTest = new CTest;
a.nonstaticX = 5;
// The static field is not directly accessible from the class instance.

print(a.nonstaticX);
print(CTest.staticX);

El resultado de este programa es:

5
42

Requisitos
Versión .NET
Vea también
Referencia
expando (Modificador)
var (Instrucción)
function (Instrucción)
class (Instrucción)
static (Instrucción)
Conceptos
Ámbito de variables y constantes
Anotaciones de tipo
Otros recursos
Modificadores
JScript 8.0

Objetos de JScript
Los objetos son colecciones de propiedades y métodos. Las secciones que se muestran a continuación proporcionan vínculos a
información que explica cómo utilizar los objetos de JScript.
Nota
El motor en tiempo de ejecución no es seguro para subprocesos. Por tanto, los objetos y métodos de JScript pueden tener un
comportamiento impredecible cuando se utilizan en aplicaciones multiproceso.

En esta sección
ActiveXObject (Objeto)
Habilita y devuelve una referencia a un objeto de automatización
arguments (Objeto)
Proporciona acceso a los argumentos pasados a la función actual.
Array (Objeto)
Permite la creación de matrices de cualquier tipo de datos.
Boolean (Objeto)
Crea un nuevo valor Boolean.
Date (Objeto)
Permite el almacenamiento básico y la recuperación de fechas y horas.
Enumerator (Objeto)
Habilita la enumeración de los elementos de una colección.
Error (Objeto)
Objeto que contiene información sobre errores que ocurren mientras se ejecuta el código de JScript.
Fuction (Objeto)
Crea una nueva función.
Global (Objeto)
Objeto intrínseco cuyo propósito es recopilar métodos globales en un objeto.
Math (Objeto)
Objeto intrínseco que proporciona la funcionalidad y las constantes matemáticas básicas.
Number (Objeto)
Representación de objeto del tipo de dato número y marcador para las constantes numéricas.
Object (Objeto)
Proporciona funcionalidad común a todos los objetos de JScript.
RegExp (Objeto)
Almacena información de búsquedas de modelos de expresiones regulares.
Regular Expression (Objeto)
Contiene un modelo de expresión regular.
String (Objeto)
Permite manipular y dar formato a cadenas de texto y determinar y ubicar subcadenas dentro de cadenas.
VBArray (Objeto)
Proporciona acceso a las matrices seguras de Visual Basic.
Secciones relacionadas
Referencia de JScript
Enumera los elementos que comprende la Referencia del lenguaje JScript e incluye vínculos a temas que explican con más
detalle el uso correcto de los elementos del lenguaje.
Métodos
Enumera por orden alfabético los métodos disponibles en JScript y proporciona vínculos a cada una de las categorías de los
métodos.
Propiedades
Proporciona una lista de las propiedades disponibles en JScript y vínculos a los temas que explican la sintaxis de uso correcta
de cada propiedad.
Objetos de JScript
Detalla el concepto de objeto en JScript, explica cómo los objetos están relacionados con las propiedades y los métodos, e
incluye vínculos a temas que proporcionan más detalles sobre los objetos que JScript admite.
JScript 8.0

ActiveXObject (Objeto)
Objeto que proporciona una interfaz para un objeto Automation.

function ActiveXObject(ProgID : String [, location : String])

Argumentos
ProgID
Necesario. Cadena con formato "nombreServidor.nombreTipo", donde nombreServidor es el nombre de la aplicación que
proporciona el objeto y nombreTipo es el nombre del tipo o clase del objeto que se va a crear.
location
Opcional. Nombre del servidor de red donde se va a crear el objeto.
Comentarios
Normalmente, los servidores de automatización proporcionan al menos un tipo de objeto. Por ejemplo, una aplicación de
procesamiento de texto puede proporcionar un objeto de aplicación, un objeto de documento y un objeto de barra de
herramientas. <Att L=Component>Scripting 5.5
El siguiente código inicia la aplicación (en este caso, una hoja de Microsoft Excel) llamando al constructor de objetos
ActiveXObject. ActiveXObject permite hacer referencia a la aplicación en el código. Utilizando el ejemplo siguiente, puede
tener acceso a las propiedades y métodos del nuevo objeto mediante la variable de objeto ExcelSheet y otros objetos de Excel,
que incluyen el objeto Application y la colección ActiveSheet.Cells.

// Declare the variables


var Excel, Book;

// Create the Excel application object.


Excel = new ActiveXObject("Excel.Application");

// Make Excel visible.


Excel.Visible = true;

// Create a new work book.


Book = Excel.Workbooks.Add()

// Place some text in the first cell of the sheet.


Book.ActiveSheet.Cells(1,1).Value = "This is column A, row 1";
// Save the sheet.
Book.SaveAs("C:\\TEST.XLS");

// Close Excel with the Quit method on the Application object.


Excel.Application.Quit();

Sólo se podrán crear objetos en un servidor remoto cuando esté desactivada la seguridad para Internet. Puede crearse un
objeto en un equipo remoto de red pasando el nombre del equipo al argumento nombreServidor de ActiveXObject. Ese
nombre es el mismo que la parte de nombre del equipo de un nombre de recurso compartido. Para un recurso de red
compartido denominado "\\MiServidor\public", el servidor es "MiServidor". <Att L=Component>Scripting 5.5 Además, puede
especificar nombreServidor utilizando el formato DNS o una dirección IP.
El siguiente código devuelve el número de versión de una instancia de Excel que se está ejecutando en un equipo de red
remoto denominado "MiServidor":

function GetAppVersion() {
var Excel = new ActiveXObject("Excel.Application", "MyServer");
return(Excel.Version);
}
Se producirá un error si el servidor remoto especificado no existe o no se puede encontrar.
Propiedades y métodos
Un objeto ActiveXObject no tiene propiedades ni métodos intrínsecos; permite tener acceso a las propiedades y métodos del
objeto Automation.
Requisitos
Versión 1
Vea también
Referencia
new (Operador)
GetObject (Función de JScript 8.0)
JScript 8.0

arguments (Objeto)
Objeto que representa la función en ejecución, sus argumentos y la función que la ha llamado. Este objeto no se puede
construir explícitamente.
Propiedades
arguments (Propiedades del objeto)
Métodos
El objeto arguments no tiene métodos.
Requisitos
Versión 1
Comentarios
Se crea una instancia de un objeto arguments para cada función cuando comienza su ejecución. El objeto arguments es
directamente accesible sólo en el ámbito de su función asociada.
Todos los parámetros pasados a una función y el número de parámetros se almacenan en el objeto arguments. Aunque el
objeto arguments no es una matriz, el acceso a los argumentos individuales se efectúa de la misma forma que el acceso a los
miembros de una matriz, es decir, mediante la notación [ ].
Puede utilizar el objeto arguments para crear funciones que puedan aceptar un número arbitrario de argumentos. Esta
funcionalidad se puede lograr también utilizando la construcción de matrices de parámetros cuando se define la función. Para
obtener más información, vea el tema sobre la instrucción function.
Nota
El objeto arguments no está disponible en la ejecución en modo rápido (el predeterminado en JScript). Para compilar un pr
ograma desde la línea de comandos que utilice el objeto arguments, debe desactivar la opción fast utilizando /fast-. Por pos
ibles problemas de subprocesamiento, no resulta seguro desactivar la opción fast en ASP.NET.

Ejemplo
El siguiente método muestra el uso del objeto arguments:

function argTest(a, b) : String {


var i : int;
var s : String = "The argTest function expected ";
var numargs : int = arguments.length; // Get number of arguments passed.
var expargs : int = argTest.length; // Get number of arguments expected.
if (expargs < 2)
s += expargs + " argument. ";
else
s += expargs + " arguments. ";
if (numargs < 2)
s += numargs + " was passed.";
else
s += numargs + " were passed.";
s += "\n"
for (i =0 ; i < numargs; i++){ // Get argument contents.
s += " Arg " + i + " = " + arguments[i] + "\n";
}
return(s); // Return list of arguments.
}

print(argTest(42));
print(argTest(new Date(1999,8,7),"Sam",Math.PI));

El resultado de este programa es:

The argTest function expected 2 arguments. 1 was passed.


Arg 0 = 42
The argTest function expected 2 arguments. 3 were passed.
Arg 0 = Tue Sep 7 00:00:00 PDT 1999
Arg 1 = Sam
Arg 2 = 3.141592653589793

Vea también
Referencia
new (Operador)
function (Instrucción)
/fast
JScript 8.0

arguments (Propiedades del objeto)


El objeto arguments representa los argumentos de la función que se está ejecutando y de las funciones que realizaron la
llamada.
Propiedades
Propiedades 0...n
arguments (Propiedad)
callee (Propiedad)
caller (Propiedad)
length (Propiedad, argumentos)
Vea también
Otros recursos
Propiedades (JScript)
Referencia de JScript
JScript 8.0

Array (Objeto)
Proporciona compatibilidad con matrices expando de cualquier tipo de datos. Existen tres formas del constructor Array:

function Array( [size : int] )


function Array( [... varargs : Object[]] )
function Array( [array : System.Array )

Argumentos
size
Opcional. Se refiere al tamaño de la matriz. Como las matrices tienen base cero, los elementos creados tendrán índices desde
cero hasta size -1.
varargs
Opcional. Matriz con tipo que contiene todos los parámetros pasados al constructor. Estos parámetros se utilizan como
primeros elementos de la matriz.
array
Opcional. Matriz que se copiará a la matriz que se va a construir.
Comentarios
Si sólo se pasa un argumento al constructor Array y, además, es un número, deberá ser un entero de 32 bits sin signo
(cualquier entero por debajo de cuatro mil millones, aproximadamente). El valor que se pase será el tamaño de la matriz. Si el
valor es un número menor que cero o no es un entero, se producirá un error en tiempo de ejecución.
Se puede pasar una variable de tipo de datos System.Array al constructor Array, con lo que se generará una matriz JScript
que será copia de la matriz de entrada. System.Array deberá tener una sola dimensión.
Si se pasa un único valor al constructor Array y no es un número ni una matriz, la propiedad length de la matriz se definirá
como 1 y el valor del primer elemento de la matriz (elemento 0) se convertirá en el único argumento pasado. Si se pasan
varios argumentos al constructor, la longitud de la matriz se establecerá en el número de argumentos y estos argumentos
serán los primeros elementos de la nueva matriz.
Tenga en cuenta que las matrices JScript son matrices dispersas, es decir, que aunque se pueda asignar una matriz con muchos
elementos, sólo existirán aquellos que realmente contengan datos. Esto reduce la cantidad de memoria utilizada por la matriz.
El objeto Array interactúa con el tipo de datos System.Array. Por tanto, un objeto Array puede llamar a los métodos y
propiedades del tipo de datos System.Array; asimismo, un tipo de datos System.Array puede llamar a los métodos y
propiedades del objeto Array. Más aún, los objetos Array son aceptados por funciones que toman tipos de datos
System.Array y viceversa. Para obtener más información, vea Miembros de matrices.
Cuando se pasa un objeto Array a una función que toma un método System.Array o cuando se llama a métodos
System.Array desde un objeto Array, se copia el contenido del objeto Array. Por tanto, el objeto Array no se puede modificar
con los métodos System.Array, ni tampoco pasándolo a una función que acepte un método System.Array. Desde
System.Array sólo se puede llamar a los métodos Array no destructivos.
Sugerencia
Los objetos Array son cómodos cuando se desea una pila genérica o una lista de elementos y el rendimiento no es una prior
idad. En los demás contextos, se deben utilizar los tipos de datos de matriz con tipo. Una matriz con tipo, cuya funcionalidad
es muy similar a la del objeto Array, ayuda también a proporcionar seguridad de tipos, mejoras en el rendimiento y una mej
or interacción con otros lenguajes.

Nota
El objeto Array interopera con el tipo de datos System.Array de .NET Framework en JScript. Sin embargo, otros lenguajes C
LS (Common Language Specification, Especificación común de lenguajes) no pueden utilizar el objeto Array porque sólo lo p
roporciona JScript; no deriva de un tipo de .NET Framework. Por consiguiente, al anotar los parámetros y los tipos de valor d
evueltos de los métodos compatibles con CLS, asegúrese de utilizar el tipo de datos System.Array en lugar del objeto Array.
Sin embargo, puede utilizar el objeto Array para anotar el tipo de identificadores que no sean parámetros ni tipos de valor d
evueltos. Para obtener más información, vea Escribir código compatible con CLS.

Ejemplo
Se puede tener acceso a elementos concretos de la matriz utilizando la notación [ ]. Por ejemplo:

var my_array = new Array();


for (var i = 0; i < 10; i++) {
my_array[i] = i;
}
var x = my_array[4];

Dado que las matrices en Microsoft JScript tienen base cero, la instrucción final del ejemplo anterior toma el quinto elemento
de la matriz. Ese elemento contiene el valor 4.
Propiedades y métodos
Array (Propiedades y métodos del objeto)
Requisitos
Versión 2
Vea también
Referencia
new (Operador)
Conceptos
Matrices con tipo
JScript 8.0

Array (Propiedades y métodos del objeto)


El objeto Array permite la creación de matrices de cualquier tipo de datos.
Propiedades
constructor (Propiedad)
length (Propiedad, objeto Array)
prototype (Propiedad)
Métodos
concat (Método, objeto Array)
join (Método)
pop (Método)
push (Método)
reverse (Método)
shift (Método)
slice (Método, objeto Array)
sort (Método)
splice (Método)
toLocaleString (Método)
toString (Método)
unshift (Método)
valueOf (Método)
Vea también
Otros recursos
Propiedades (JScript)
Métodos
Referencia de JScript
JScript 8.0

Boolean (Objeto)
El objeto Boolean hace referencia a un valor booleano.

function Boolean( [boolValue : boolean] )

Argumentos
boolValue
Opcional. El valor booleano inicial para el objeto nuevo. Si se omite boolValue o es False, 0, null, NaN o una cadena vacía, el
valor inicial del objeto Boolean será False. De lo contrario, el valor inicial será True.
Comentarios
El objeto Boolean es un contenedor de datos booleanos. El objetivo principal del objeto Boolean es coleccionar sus
propiedades en un solo objeto y permitir la conversión de valores booleanos en cadenas utilizando el método toString. El
objeto Boolean es similar al tipo de datos boolean. Sin embargo, tienen propiedades y métodos diferentes.
Nota
No es probable que tenga que construir un objeto Boolean explícitamente. El tipo de datos boolean se debe utilizar en la may
oría de las circunstancias. Puesto que el objeto Boolean interactúa con el tipo de datos Boolean, todos los métodos y propied
ades del objeto Boolean están disponibles para una variable de tipo Boolean. Para obtener más información, vea
boolean (Tipo de datos).

El tipo de datos de un objeto Boolean es Object, no boolean.


Propiedades y métodos
Boolean (Propiedades y métodos del objeto)
Requisitos
Versión 2
Vea también
Referencia
Object (Objeto)
Boolean Structure
new (Operador)
var (Instrucción)
JScript 8.0

Boolean (Propiedades y métodos del objeto)


El objeto Boolean crea un nuevo valor booleano.
Propiedades
constructor (Propiedad)
prototype (Propiedad)
Métodos
toString (Método)
valueOf (Método)
Vea también
Otros recursos
Propiedades (JScript)
Métodos
Referencia de JScript
JScript 8.0

Date (Objeto)
Objeto que permite el almacenamiento básico y la recuperación de fechas y horas. El constructor Date presenta dos formas.

function Date( [dateVal : { Number | String | System.DateTime } ] )


function Date( year : int, month : int, date : int[, hours : int [, minutes : int [, second
s : int [, ms : int]]]] )

Argumentos
dateVal
Opcional. Si es un valor numérico, dateVal representa el número de milisegundos en formato Horario universal coordinado
que hay entre la fecha especificada y la medianoche del 1 de enero de 1970. Si es una cadena, dateVal se analiza según las
reglas del método parse. dateVal puede ser también un valor de fecha .NET.
year
Necesario. El año completo, por ejemplo 1976 (no 76).
month
Necesario. Mes como un entero comprendido entre 0 y 11 (de enero a diciembre).
date
Necesario. Fecha como un valor entero comprendido entre 1 y 31.
hours
Opcional. Se debe proporcionar si se proporciona el argumento minutes. Entero comprendido entre 0 y 23 (desde
medianoche a las 11 p.m.) que especifica la hora.
minutes
Opcional. Se debe proporcionar si se proporciona el argumento seconds. Entero comprendido entre 0 y 59 que especifica los
minutos.
seconds
Opcional. Se debe proporcionar si se proporciona el argumento milliseconds. Entero comprendido entre 0 y 59 que
especifica los segundos.
ms
Opcional. Entero comprendido entre 0 y 999 que especifica los milisegundos.
Comentarios
Un objeto Date contiene un número que representa un instante de tiempo concreto en milisegundos. Si el valor de un
argumento es mayor que su intervalo o es un número negativo, los demás valores almacenados se modifican
consecuentemente. Por ejemplo, si se especifican 150 segundos, JScript vuelve a definir ese número como dos minutos y 30
segundos.
Si el número es NaN, el objeto no representará un momento específico de tiempo. Si no se pasan parámetros al constructor
Date, se inicializará con la hora actual (UTC). Se deberá inicializar una variable de tipo Date para poder utilizarlo.
El intervalo de fechas que se puede representar en un objeto Date abarca el período comprendido, aproximadamente, entre
los 285.616 años antes y después del 1 de enero de 1970.
El objeto Date tiene dos métodos estáticos, parse y UTC, que se llaman sin crear un objeto Date.
Si se llama al constructor Date sin el operador new, el objeto Date que se devuelva contendrá la fecha actual
independientemente de los argumentos pasados al constructor.
Nota
El objeto Date interopera con el tipo de datos System.DateTime de .NET Framework en JScript. Sin embargo, otros lenguaj
es CLS (Common Language Specification, Especificación común de lenguajes) no pueden utilizar el objeto Date porque sólo
lo proporciona JScript; no deriva de un tipo de .NET Framework. Por consiguiente, al anotar los parámetros y los tipos de val
or devueltos de los métodos compatibles con CLS, asegúrese de utilizar el tipo de datos System.DateTime en lugar del obje
to Date. Sin embargo, puede utilizar el objeto Date para anotar el tipo de identificadores que no sean parámetros ni tipos de
valor devueltos. Para obtener más información, vea Escribir código compatible con CLS.

Ejemplo
El siguiente ejemplo utiliza el objeto Date:

var s : String = "Today's date is: "; // Declare variables.


var d : Date = new Date(); // Create Date object with today's date.
s += (d.getMonth() + 1) + "/"; // Get month
s += d.getDate() + "/"; // Get day
s += d.getYear(); // Get year.
print(s); // Print date.

Si este programa se hubiese ejecutado el 26 de enero de 1992, el resultado habría sido:

Today's date is: 1/26/1992

Propiedades y métodos
Date (Propiedades y métodos del objeto)
Requisitos
Versión 1
Vea también
Referencia
new (Operador)
var (Instrucción)
JScript 8.0

Date (Propiedades y métodos del objeto)


El objeto Date permite el almacenamiento y la recuperación básicos de fechas y horas.
Propiedades
constructor (Propiedad)
prototype (Propiedad)
Métodos
getDate (Método)
getDay (Método)
getFullYear (Método)
getHours (Método)
getMilliseconds (Método)
getMinutes (Método)
getMonth (Método)
getSeconds (Método)
getTime (Método)
getTimezoneOffset (Método)
getUTCDate (Método)
getUTCDay (Método)
getUTCFullYear (Método)
getUTCHours (Método)
getUTCMilliseconds (Método)
getUTCMinutes (Método)
getUTCMonth (Método)
getUTCSeconds (Método)
getVarDate (Método)
getYear (Método)
parse (Método)
setDate (Método)
setFullYear (Método)
setHours (Método)
setMilliseconds (Método)
setMinutes (Método)
setMonth (Método)
setSeconds (Método)
setTime (Método)
setUTCDate (Método)
setUTCFullYear (Método)
setUTCHours (Método)
setUTCMilliseconds (Método)
setUTCMinutes (Método)
setUTCMonth (Método)
setUTCSeconds (Método)
setYear (Método)
toDateString (Método)
toGMTString (Método)
toLocaleDateString (Método)
toLocaleString (Método)
toLocaleTimeString (Método)
toString (Método)
toTimeString (Método)
toUTCString (Método)
UTC (Método)
valueOf (Método)
Vea también
Otros recursos
Propiedades (JScript)
Métodos
Referencia de JScript
JScript 8.0

Enumerator (Objeto)
Habilita la enumeración de los elementos de una colección.

varName = new Enumerator([collection])

Argumentos
varName
Necesario. Nombre de variable al que se asigna el enumerador.
collection
Opcional. Cualquier objeto que implemente la interfaz IEnumerable, como una matriz o una colección.
Comentarios
Todas las colecciones son enumerables automáticamente en JScript. Por tanto, no es necesario utilizar el objeto Enumerator
para tener acceso a los miembros de una colección. Puede tener acceso a cualquier miembro directamente, utilizando la
instrucción for...in. El objeto Enumerator se proporciona por compatibilidad con versiones anteriores.
Las colecciones se diferencian de las matrices en que a los miembros de una colección no se puede tener acceso directo. En
lugar de utilizar índices, como se haría con las matrices, sólo se puede mover el puntero del elemento actual al primer
elemento o al siguiente elemento de una colección.
El objeto Enumerator, que proporciona un modo de tener acceso a cualquier miembro de una colección, se comporta de
manera similar a la instrucción For...Each de VBScript.
Puede crear una colección en JScript definiendo una clase que implemente IEnumerable. Las colecciones se pueden crear
también utilizando otro lenguaje (como Visual Basic) o con un objeto ActiveXObject.
Ejemplo 1
El siguiente código utiliza el objeto Enumerator para imprimir las letras de las unidades disponibles y sus nombres (si están
disponibles):

// Declare variables.
var n, x;
var fso : ActiveXObject = new ActiveXObject("Scripting.FileSystemObject");
// Create Enumerator on Drives.
var e : Enumerator = new Enumerator(fso.Drives);
for (;!e.atEnd();e.moveNext()) { // Loop over the drives collection.
x = e.item();
if (x.DriveType == 3) // See if network drive.
n = x.ShareName; // Get share name
else if (x.IsReady) // See if drive is ready.
n = x.VolumeName; // Get volume name.
else
n = "[Drive not ready]";
print(x.DriveLetter + " - " + n);
}

Dependiendo del sistema, el resultado será como sigue:

A - [Drive not ready]


C - DRV1
D - BACKUP
E - [Drive not ready]

Ejemplo 2
El código del ejemplo 1 se puede escribir de nuevo para que funcione sin utilizar el objeto Enumerator. En este caso, se tiene
acceso a los miembros de una enumeración directamente:
// Declare variables.
var n, x;
var fso : ActiveXObject = new ActiveXObject("Scripting.FileSystemObject");
// The following three lines are not needed.
// var e : Enumerator = new Enumerator(fso.Drives);
// for (;!e.atEnd();e.moveNext()) {
// x = e.item();
// Access the members of the enumeration directly.
for (x in fso.Drives) { // Loop over the drives collection.
if (x.DriveType == 3) // See if network drive.
n = x.ShareName; // Get share name
else if (x.IsReady) // See if drive is ready.
n = x.VolumeName; // Get volume name.
else
n = "[Drive not ready]";
print(x.DriveLetter + " - " + n);
}

Propiedades
El objeto Enumerator no tiene propiedades.
Métodos
Enumerator (Métodos del objeto)
Requisitos
Versión 3
Vea también
Referencia
new (Operador)
for...in (Instrucción)
JScript 8.0

Enumerator (Métodos del objeto)


El objeto Enumerator habilita la enumeración de los elementos de una colección.
Métodos
atEnd (Método)
item (Método)
moveFirst (Método)
moveNext (Método)
Vea también
Otros recursos
Métodos
Referencia de JScript
JScript 8.0

Error (Objeto)
Contiene información acerca de los errores. El constructor Error presenta dos formas.

function Error([description : String ])


function Error([number : Number [, description : String ]])

Argumentos
number
Opcional. Valor numérico que, asignado al error, especifica el valor de la propiedad number. Si se omite, será cero.
description
Opcional. Cadena breve que describe el error y especifica el valor inicial de las propiedades description y message. Si se
omite, será una cadena vacía.
Comentarios
Los objetos Error se pueden crear explícitamente utilizando el constructor anterior. Pueden agregarse propiedades al objeto
Error para ampliar su capacidad. También se crea uno de estos objetos cada vez que se produce un error en tiempo de
ejecución; en dicho caso, el objeto creado sirve de descripción.
Normalmente, un objeto Error se produce con la instrucción throw para poder ser capturado con una instrucción try...catch.
Puede utilizarse una instrucción throw para pasar cualquier tipo de datos como error: la instrucción throw no creará un objeto
Error de manera implícita. Sin embargo, al lanzar un objeto Error, un bloque catch puede tratar errores en tiempo de
ejecución de JScript y errores definidos por el usuario de manera similar.
El objeto Error tiene cuatro propiedades intrínsecas: las referentes a la descripción del error (propiedades description y
message), al número de error (propiedad number) y al nombre del error (propiedad name). Las propiedades description y
message hacen referencia al mismo mensaje; la propiedad description proporciona compatibilidad con versiones anteriores,
mientras que la propiedad message cumple el estándar ECMA.
Un número de error es un valor de 32 bits. La palabra de 16 bits superior es el código de facilidad, mientras que la palabra
inferior es el código de error real. Para leer el código de error real, utilice el operador & (AND bit a bit) para combinar la
propiedad number con el número hexadecimal 0xFFFF.
Precaución
El intento de utilizar el objeto Error de JScript en una página ASP.NET puede ocasionar resultados inesperados. Esto es conse
cuencia de una posible ambigüedad entre el objeto Error de JScript y el evento Error de la página ASP.NET. Utilice la clase Sy
stem.Exception en lugar del objeto Error para el control de errores en las páginas ASP.NET.

Nota
Sólo JScript proporciona el objeto Error. Puesto que no deriva de un tipo de .NET Framework, no lo podrán utilizar otros leng
uajes CLS (Common Language Specification, Especificación común de lenguajes). Por consiguiente, al anotar los parámetros
y los tipos de valor devueltos de los métodos compatibles con CLS, asegúrese de utilizar el tipo de datos System.Exception
en lugar del objeto Error. Sin embargo, puede utilizar el objeto Error para anotar el tipo de identificadores que no sean pará
metros ni tipos de valor devueltos. Para obtener más información, vea Escribir código compatible con CLS.

Ejemplo
En el siguiente ejemplo se muestra un uso del objeto Error.

try {
// Throw an error.
throw new Error(42,"No question");
} catch(e) {
print(e)
// Extract the error code from the error number.
print(e.number & 0xFFFF)
print(e.description)
}

El resultado de este código es:

Error: No question
42
No question

Propiedades y métodos
Error (Propiedades y métodos del objeto)
Requisitos
Versión 5
Vea también
Referencia
new (Operador)
throw (Instrucción)
try...catch...finally (Instrucción)
var (Instrucción)
AllMembers.T:System.Web.UI.Page
JScript 8.0

Error (Propiedades y métodos del objeto)


El objeto Error contiene información sobre errores.
Propiedades
description (Propiedad)
message (Propiedad)
name (Propiedad)
number (Propiedad)
Métodos
toString (Método)
Vea también
Otros recursos
Propiedades (JScript)
Métodos
Referencia de JScript
JScript 8.0

Fuction (Objeto)
Crea una nueva función.

function Function( [[param1 : String, [..., paramN : String,]] body : String ])

Argumentos
param1, ..., paramN
Opcional. Parámetros de la función. Cada parámetro puede tener anotación de tipo. El último parámetro puede ser una
parameterarray, que se denota con tres puntos (...) seguidos de un nombre de matriz de parámetros y una anotación de tipo
de matriz con tipo.
body
Opcional. Cadena que contiene el bloque de código JScript que se ejecutará cuando se llame a la función.
Comentarios
El constructor Function permite que una secuencia de comandos cree funciones en tiempo de ejecución. Los parámetros
pasados al constructor Function (todos excepto el último parámetro) se utilizan como parámetros de la nueva función. El
último parámetro pasado al constructor se interpreta como el código del cuerpo de la función.
JScript compila el objeto creado por el constructor Function en el momento en que se llama al constructor. Si bien esto
proporciona gran flexibilidad a la secuencia de comandos para definir de nuevo funciones en tiempo de ejecución, ralentiza el
código. Utilice el constructor Function lo menos posible para evitar secuencias de comandos lentas.
Cuando llame a una función para evaluarla, incluya siempre paréntesis y los argumentos necesarios. Llamar a una función sin
paréntesis devuelve un objeto Function para esa función. El texto de una función se puede obtener utilizando el método
toString del objeto Function.
Nota
Sólo JScript proporciona el objeto Function. Ya que no deriva de un tipo de .NET Framework, no lo podrán utilizar otros leng
uajes CLS (Common Language Specification, Especificación común de lenguajes). Por consiguiente, al anotar los parámetros
y los tipos de valor devueltos de los métodos compatibles con CLS, asegúrese de utilizar el tipo de datos System.EventHan
dler en lugar del objeto Function. Sin embargo, puede utilizar el objeto Function para anotar el tipo de identificadores que
no sean ni parámetros ni tipos de valor devueltos. Para obtener más información, vea Escribir código compatible con CLS.

Ejemplo
En el siguiente ejemplo se muestra un uso del objeto Function.

var add : Function = new Function("x", "y", "return(x+y)");


print(add(2, 3));

El resultado de este código es:

Propiedades y métodos
Function (Propiedades y métodos del objeto)
Requisitos
Versión 2
Vea también
Referencia
function (Instrucción)
new (Operador)
var (Instrucción)
JScript 8.0

Function (Propiedades y métodos del objeto)


El objeto Function crea una función nueva.
Propiedades
Propiedades 0...n
arguments (Propiedad)
callee (Propiedad)
caller (Propiedad)
constructor (Propiedad)
length (Propiedad, Function)
prototype (Propiedad)
Métodos
apply (Método)
call (Método)
toString (Método)
valueOf (Método)
Vea también
Otros recursos
Propiedades (JScript)
Métodos
Referencia de JScript
JScript 8.0

Global (Objeto)
Objeto intrínseco cuyo propósito es recopilar métodos globales en un objeto.
El objeto Global no tiene sintaxis. Es posible llamar a sus métodos directamente.
Propiedades y métodos
Global (Propiedades y métodos del objeto)
Requisitos
Versión 5
Comentarios
El objeto Global nunca se utiliza directamente y no es posible crearlo con el operador new. Se crea cuando se inicializa el
motor de secuencias de comandos, de este modo se consigue que sus propiedades y métodos estén disponibles
inmediatamente.
Vea también
Referencia
Object (Objeto)
JScript 8.0

Global (Propiedades y métodos del objeto)


El objeto Global es un objeto intrínseco cuyo propósito es reunir los métodos globales en un objeto.
Propiedades
Infinity (Propiedad)
NaN (Propiedad, Global)
undefined (Propiedad)
Métodos
decodeURI (Método)
decodeURIComponent (Método)
encodeURI (Método)
encodeURIComponent (Método)
escape (Método)
eval (Método)
isFinite (Método)
isNaN (Método)
parseFloat (Método)
parseInt (Método)
unescape (Método)
Vea también
Otros recursos
Propiedades (JScript)
Métodos
Referencia de JScript
JScript 8.0

Math (Objeto)
Objeto intrínseco que proporciona la funcionalidad y las constantes matemáticas básicas. Este objeto no se puede construir
explícitamente.
Propiedades y métodos
Math (Propiedades y métodos del objeto)
Requisitos
Versión 1
Comentarios
El operador new no puede crear el objeto Math, por lo que devolverá un error si se intenta hacerlo. El motor de ejecución de
secuencias crea el objeto Math cuando se carga el motor. Todos sus métodos y propiedades están disponibles para una
secuencia de comandos en cualquier momento.
El siguiente ejemplo muestra un uso del objeto Math. Tenga en cuenta que, puesto que los números de punto flotante tienen
una precisión limitada, los cálculos en los que se utilicen pueden acumular pequeños errores de redondeo. Puede utilizar el
método toFixed del objeto Number para mostrar números sin errores de redondeo.
Ejemplo
var pi : double = Math.PI; // Should be about 3.14.
print(pi);
var cosPi : double = Math.cos(pi); // Should be minus one.
print(cosPi);
var sinPi : double = Math.sin(pi); // Should be zero.
print(sinPi.toFixed(10));

El resultado de este código es:

3.141592653589793
-1
0.0000000000

Vea también
Referencia
Number (Objeto)
JScript 8.0

Math (Propiedades y métodos del objeto)


El objeto Math es un objeto intrínseco que proporciona la funcionalidad y las constantes matemáticas básicas.
Propiedades
E (Propiedad)
LN10 (Propiedad)
LN2 (Propiedad)
LOG10E (Propiedad)
LOG2E (Propiedad)
PI (Propiedad)
SQRT1_2 (Propiedad)
SQRT2 (Propiedad)
Métodos
abs (Método)
acos (Método)
asin (Método)
atan (Método)
atan2 (Método)
ceil (Método)
cos (Método)
exp (Método)
floor (Método)
log (Método)
max (Método)
min (Método)
pow (Método)
random (Método)
round (Método)
sin (Método)
sqrt (Método)
tan (Método)
Vea también
Otros recursos
Propiedades (JScript)
Métodos
Referencia de JScript
JScript 8.0

Number (Objeto)
El objeto Number actúa como representación de objeto de los datos numéricos y como marcador de posición para las
constantes numéricas.

function Number( [value : Number] )

Argumentos
value
Requerido. Valor numérico del objeto Number que se va a crear.
Comentarios
El objeto Number es un contenedor de datos numéricos. El objetivo principal del objeto Number es coleccionar sus
propiedades en un solo objeto y permitir la conversión de números en cadenas mediante el método toString. El objeto
Number es similar al tipo de datos Number. Sin embargo, tienen propiedades y métodos diferentes.
Nota
No es probable que tenga que construir un objeto Number explícitamente. El tipo de datos Number se debe utilizar en la m
ayoría de las circunstancias. Puesto que el objeto Number interactúa con el tipo de datos Number, todos los métodos y pro
piedades del objeto Number están disponibles para una variable de tipo Number. Para obtener más información, vea
Number (Tipo de datos).

El objeto Number almacena datos numéricos como un número de 8 bytes de punto flotante y doble precisión. Representa un
valor IEEE 754 de 64 bits de doble precisión. El objeto Number puede representar números en el intervalo que va de menos
1,79769313486231570E+308 a más 1,79769313486231570E+308, ambos inclusive. El menor número que se puede
representar es 4,94065645841247E-324. El objeto Number puede representar también NaN (acrónimo de "Not A Number",
"no es un número"), infinito positivo y negativo, así como cero positivo y negativo.
El tipo de datos de un objeto Number es Object, no Number.
Propiedades y métodos
Number (Propiedades y métodos del objeto)
Requisitos
Versión 1
Vea también
Referencia
Object (Objeto)
Number (Tipo de datos)
Math (Objeto)
new (Operador)
JScript 8.0

Number (Propiedades y métodos del objeto)


El objeto Number es una representación de objeto del tipo de datos number y un marcador de posición para las constantes
numéricas.
Propiedades
constructor (Propiedad)
MAX_VALUE (Propiedad)
MIN_VALUE (Propiedad)
NaN (Propiedad)
NEGATIVE_INFINITY (Propiedad)
POSITIVE_INFINITY (Propiedad)
prototype (Propiedad)
Métodos
toExponential (Método)
toFixed (Método)
toLocaleString (Método)
toPrecision (Método)
toString (Método)
valueOf (Método)
Vea también
Otros recursos
Propiedades (JScript)
Métodos
Referencia de JScript
JScript 8.0

Object (Objeto)
Proporciona funcionalidad común a todos los objetos de JScript.

function Object([value : { ActiveXObject | Array | Boolean | Date | Enumerator | Error | Fu


nction | Number | Object | RegExp | String | VBArray ])

Argumentos
value
Opcional. Cualquiera de los tipos de datos primitivos de JScript. Si el valor es un objeto, se devolverá el objeto sin modificar.
Si value es null, undefined o no se proporciona, se creará un objeto sin contenido.
Comentarios
El objeto Object constituye la base de todos los objetos de JScript; todos sus métodos y propiedades están disponibles en
todos los demás objetos. Los métodos, que se pueden volver a definir en objetos definidos por el usuario, son llamados por
JScript cuando procede. El método toString es un ejemplo de método de Object frecuentemente redefinido.
Las variables definidas sin una anotación de tipo son implícitamente del tipo Object. Cada objeto de JScript tiene, además de
sus propias propiedades y métodos, todas las propiedades y métodos del objeto Object.
Propiedades y métodos
Object (Propiedades y métodos del objeto)
Requisitos
Versión 3
Vea también
Referencia
new (Operador)
Fuction (Objeto)
Global (Objeto)
JScript 8.0

Object (Propiedades y métodos del objeto)


El objeto Object proporciona la funcionalidad común de todos los objetos de JScript.
Propiedades
constructor (Propiedad)
prototype (Propiedad)
propertyIsEnumerable (Propiedad)
Métodos
isPrototypeOf (Método)
hasOwnProperty (Método)
toLocaleString (Método)
toString (Método)
valueOf (Método)
Vea también
Otros recursos
Propiedades (JScript)
Métodos
Referencia de JScript
JScript 8.0

RegExp (Objeto)
Objeto intrínseco global que almacena información sobre los resultados de las coincidencias del modelo de expresión regular.
Este objeto no se puede construir explícitamente.
Propiedades
RegExp (Propiedades del objeto)
Métodos
El objeto RegExp no tiene métodos.
Requisitos
Versión 3
Comentarios
El objeto RegExp no se puede crear directamente, pero siempre está disponible. Hasta que se complete correctamente una
búsqueda de expresión regular, los valores iniciales de varias propiedades del objeto RegExp serán como se indica a
continuación:
Propiedad Forma abreviada Valor inicial
index -1

Input $_ Cadena vacía

lastIndex -1

lastMatch $& Cadena vacía

lastParen $+ Cadena vacía

leftContext $` Cadena vacía

rightContext $' Cadena vacía

$1 - $9 Cadena vacía

El objeto global RegExp no debe confundirse con el objeto Regular Expression. Aunque parezcan iguales, son dos objetos
diferentes. Las propiedades del objeto global RegExp contienen continuamente información actualizada sobre cada
coincidencia que tiene lugar, mientras que las propiedades del objeto Regular Expression sólo contienen información sobre
las coincidencias que tienen lugar en una sola instancia de la expresión regular.
Nota
Las propiedades de RegExp no están disponibles al efectuar la ejecución en modo rápido, que es el predeterminado en JScri
pt. Para compilar, desde la línea de comandos, un programa que utilice estas propiedades, deberá desactivarse la opción fast
utilizando /fast-. Por posibles problemas de subprocesamiento, no resulta seguro desactivar la opción fast en ASP.NET.

El siguiente método muestra el uso del objeto global RegExp. Este ejemplo se debe compilar con la opción /fast-:
Ejemplo
var re : RegExp = new RegExp("d(b+)(d)","ig");
var arr : Array = re.exec("cdbBdbsbdbdz");
print("$1 contains: " + RegExp.$1);
print("$2 contains: " + RegExp.$2);
print("$3 contains: " + RegExp.$3);
El resultado de este código es:

$1 contains: bB
$2 contains: d
$3 contains:

Vea también
Referencia
Regular Expression (Objeto)
String (Objeto)
/fast
Conceptos
Sintaxis de expresiones regulares
JScript 8.0

RegExp (Propiedades del objeto)


El objeto RegExp es un objeto intrínseco global que almacena información sobre los resultados de las coincidencias del modelo
de expresión regular.
Propiedades
Propiedades $1...$9
index (Propiedad)
input ($_) (Propiedad)
lastIndex (Propiedad)
lastMatch ($&) (Propiedad)
lastParen ($+) (Propiedad)
leftContext ($`) (Propiedad)
rightContext ($') (Propiedad)
Vea también
Otros recursos
Propiedades (JScript)
Referencia de JScript
JScript 8.0

Regular Expression (Objeto)


Objeto que contiene un modelo de expresión regular junto con indicadores que muestran cómo aplicarlo.

// The explicit constructor for a Regular Expression object.


function RegExp(pattern : String [,flags : String])
function RegExp(regexObj : System.Text.RegularExpressions.Regex)

// The implicit constructor for a Regular Expression object.


/pattern/[flags]

Argumentos
pattern
Necesario. Modelo de expresión regular que se va a utilizar. Si utiliza la sintaxis 1, el modelo debe ser una cadena. Si utiliza la
sintaxis 2, delimite el modelo con caracteres "/".
flags
Opcional. Si utiliza la sintaxis 1, los indicadores deberán ser una cadena. Si utiliza la sintaxis 2, los caracteres de los
indicadores seguirán inmediatamente al último carácter "/". Los indicadores disponibles que se pueden combinar son:
g (búsqueda global para todas las repeticiones del argumento pattern)
i (pasar por alto mayúsculas y minúsculas)
m (búsqueda en varias líneas)
regexObj
Necesario. Objeto Regex que contiene el modelo de expresión regular que se debe utilizar.
Comentarios
El objeto Regular Expression no debe confundirse con el objeto global RegExp. Aunque suenen igual, pueden distinguirse
con facilidad. Las propiedades del objeto Regular Expression contienen sólo información sobre una instancia particular de
Regular Expression, mientras que las propiedades del objeto global RegExp contienen información continuamente actualizada
sobre cada coincidencia que tiene lugar.
Los objetos Regular Expression almacenan modelos utilizados al buscar cadenas para combinaciones de caracteres. Una vez
creado el objeto Regular Expression, se pasa a un método de cadena o se pasa a una cadena un método del objeto Regular
Expression. La información sobre la búsqueda realizada más recientemente se almacena en el objeto global RegExp.
Utilice la sintaxis 1 cuando la cadena de búsqueda cambie con frecuencia o no se conozca, como ocurre con las cadenas
derivadas de entradas de usuario. Utilice la sintaxis 2 cuando conozca la cadena de búsqueda con antelación.
En JScript, el argumento pattern se compila en un formato interno antes de ser utilizado. Para la sintaxis 1, el modelo se
compila antes de ser utilizado o en el momento de llamar al método compile. Para la sintaxis 2, el modelo se compila cuando
se carga la secuencia de comandos.
Nota
El objeto Regular Expression interopera con el tipo de datos System.Text.RegularExpressions.Regex de .NET Framework e
n JScript. Sin embargo, otros lenguajes CLS (Common Language Specification, Especificación común de lenguajes) no puede
n utilizar el objeto Regular Expression porque sólo lo proporciona JScript; no deriva de un tipo de .NET Framework. Por consi
guiente, al anotar los parámetros y los tipos de valor devueltos de los métodos compatibles con CLS, asegúrese de utilizar el
tipo de datos System.Text.RegularExpressions.Regex en lugar del objeto Regular Expression. Sin embargo, puede utilizar
el objeto Regular Expression para anotar el tipo de identificadores que no sean ni parámetros ni tipos de valor devueltos. Par
a obtener más información, vea Escribir código compatible con CLS.

Ejemplo
El siguiente ejemplo muestra el uso del objeto Regular Expression. Los objetos re1 y re2 se crean y contienen modelos de
expresión regular con los indicadores asociados. En este caso, los objetos Regular Expression resultantes son utilizados por el
método match:
var s : String = "The rain in Spain falls mainly in the plain";
// Create regular expression object using Syntax 1.
var re1 : RegExp = new RegExp("Spain","i");
// Create regular expression object using Syntax 2.
var re2 : RegExp = /IN/i;
// Find a match within string s.
print(s.match(re1));
print(s.match(re2));

El resultado de esta secuencia de comandos es:

Spain
in

Requisitos
Versión 3
Propiedades y métodos
Regular Expression (Propiedades y métodos del objeto)
Vea también
Referencia
new (Operador)
RegExp (Objeto)
String (Objeto)
Regex
Conceptos
Sintaxis de expresiones regulares
JScript 8.0

Regular Expression (Propiedades y métodos del objeto)


El objeto Regular Expression es un objeto que contiene un modelo de expresión regular así como indicadores que identifican
cómo aplicar dicho modelo.
Propiedades
global (Propiedad)
ignoreCase (Propiedad)
multiline (Propiedad)
source (Propiedad)
Métodos
compile (Método)
exec (Método)
test (Método)
Vea también
Otros recursos
Propiedades (JScript)
Métodos
Referencia de JScript
JScript 8.0

String (Objeto)
Permite manipular y dar formato a cadenas de texto, así como determinar y ubicar subcadenas dentro de cadenas.

function String([stringLiteral : String])

Argumentos
stringLiteral
Opcional. Cualquier grupo de caracteres Unicode.
Comentarios
Es posible crear String implícitamente mediante literales de cadena. Los objetos String creados de esta manera (denominados
cadenas "primitivas") se tratan de forma distinta a los objetos String creados mediante el operador new. Aunque es posible
leer propiedades y llamar a métodos en cadenas primitivas, no se pueden crear propiedades nuevas o agregarles métodos.
Se pueden utilizar secuencias de escape en literales de cadena para representar caracteres especiales que no se pueden utilizar
directamente en una cadena, como el carácter de nueva línea o los caracteres Unicode. En el momento en que se compila una
secuencia de comandos, cada secuencia de escape de un literal de cadena se convierte en los caracteres que representa. Para
obtener más información, vea Datos de cadena.
JScript define también un tipo de datos String, que proporciona propiedades y métodos diferentes del objeto String. No
puede crear propiedades ni agregar métodos a variables del tipo de datos String, pero sí puede hacerlo para las instancias del
objeto String.
El objeto String interactúa con el tipo de datos String (que es igual que el tipo de datos System.String). Esto significa que un
objeto String puede llamar a los métodos y propiedades del tipo de datos String, y un tipo de datos String puede llamar a los
métodos y propiedades del objeto String. Para obtener más información, vea AllMembers.T:System.String. Más aún, los
objetos String son aceptados por funciones que toman tipos de datos String y viceversa.
El tipo de datos de un objeto String es Object, no String.
Ejemplo 1
Esta secuencia de comandos muestra que, aunque pueda leerse la propiedad length y llamarse al método toUpperCase, la
propiedad personalizada myProperty no puede establecerse en la cadena primitiva:

var primStr : Object = "This is a string";


print(primStr.length); // Read the length property.
print(primStr.toUpperCase()); // Call a method.
primStr.myProperty = 42; // Set a new property.
print(primStr.myProperty); // Try to read it back.

El resultado de esta secuencia de comandos es:

16
THIS IS A STRING
undefined

Ejemplo 2
Para los objetos String creados con la instrucción new, se pueden definir propiedades personalizadas:

var newStr : Object = new String("This is also a string");


print(newStr.length); // Read the length property.
print(newStr.toUpperCase()); // Call a method.
newStr.myProperty = 42; // Set a new property.
print(newStr.myProperty); // Try to read it back.

El resultado de esta secuencia de comandos es:


21
THIS IS ALSO A STRING
42

Propiedades y métodos
String (Propiedades y métodos del objeto)
Requisitos
Versión 1
Vea también
Referencia
Object (Objeto)
String (Tipo de datos de JScript)
new (Operador)
Conceptos
Datos de cadena
JScript 8.0

String (Propiedades y métodos del objeto)


El objeto String permite manipular y dar formato a cadenas de texto, así como determinar y ubicar subcadenas dentro de
cadenas.
Propiedades
constructor (Propiedad)
length (Propiedad, String)
prototype (Propiedad)
Métodos
anchor (Método)
big (Método)
blink (Método)
bold (Método)
charAt (Método)
charCodeAt (Método)
concat (Método, String)
fixed (Método)
fontcolor (Método)
fontsize (Método)
fromCharCode (Método)
indexOf (Método)
italics (Método)
lastIndexOf (Método)
link (Método)
localeCompare (Método)
match (Método)
replace (Método)
search (Método)
slice (Método, String)
small (Método)
split (Método)
strike (Método)
sub (Método)
substr (Método)
substring (Método)
sup (Método)
toLocaleLowerCase (Método)
toLocaleUpperCase (Método)
toLowerCase (Método)
toString (Método)
toUpperCase (Método)
valueOf (Método)
Vea también
Otros recursos
Propiedades (JScript)
Métodos
Referencia de JScript
JScript 8.0

VBArray (Objeto)
Proporciona acceso a las matrices seguras de Visual Basic.

varName = new VBArray(safeArray)

Argumentos
varName
Necesario. Nombre de la variable al que se asigna VBArray.
safeArray
Necesario. Valor VBArray.
Comentarios
El argumento safeArray debe tener un valor VBArray antes de que se pase al constructor VBArray, lo que se consigue
recuperando el valor de un objeto ActiveX u otro objeto existente.
Nota
Las matrices creadas en JScript y las creadas en Visual Basic interoperan con matrices de .NET Framework. Por tanto, los ele
mentos de una matriz creada en Visual Basic son accesibles directamente en JScript. El objeto VBArray se proporciona sólo p
or compatibilidad con versiones anteriores. Para obtener más información sobre las matrices, vea Array (Objeto),
Dim (Instrucción) y AllMembers.T:System.Array.

Un objeto VBArray puede tener varias dimensiones. Los índices de cada dimensión pueden ser distintos. El método
dimensions recupera el número de dimensiones de la matriz; los métodos lbound y ubound recuperan el intervalo de
índices de cada dimensión.
Propiedades
El objeto VBArray no tiene propiedades.
Métodos
VBArray (Métodos del objeto)
Requisitos
Versión 3
Vea también
Referencia
new (Operador)
Array (Objeto)
Array
JScript 8.0

VBArray (Métodos del objeto)


El objeto VBArray proporciona acceso a las matrices seguras de Visual Basic.
Métodos
dimensions (Método)
getItem (Método)
lbound (Método)
toArray (Método)
ubound (Método)
Vea también
Otros recursos
Métodos
Referencia de JScript
JScript 8.0

Operadores de JScript
JScript incluye una serie de operaciones que se agrupan en las siguientes categorías: aritmética, lógica, bit a bit, asignación y
varios. Las secciones que se muestran a continuación proporcionan vínculos a información que explica cómo utilizar los
operadores.
En esta sección
Operador de asignación y suma (+=)
Suma dos números o concatena dos cadenas, y asigna el resultado al primer argumento.
Operador de suma (+)
Suma dos números o concatena dos cadenas.
Operador de asignación (=)
Asigna un valor a una variable.
Operador de asignación y AND bit a bit (&=)
Realiza una operación AND bit a bit en dos expresiones y asigna el resultado al primer argumento.
Operador AND bit a bit (&)
Realiza una operación AND bit a bit en dos expresiones.
Operador de desplazamiento a la izquierda bit a bit (<<)
Desplaza los bits de una expresión a la izquierda.
Operador NOT bit a bit (~)
Realiza una operación NOT (negación) bit a bit en una expresión.
Operador de asignación y OR bit a bit (|=)
Realiza una operación OR bit a bit en dos expresiones y asigna el resultado al primer argumento.
Operador bit a bit OR (|)
Realiza una operación OR bit a bit en dos expresiones.
Operador de desplazamiento a la derecha bit a bit (>>)
Desplaza los bits de una expresión a la derecha, conservando el signo.
Operador de asignación y XOR bit a bit (^=)
Realiza una operación OR bit a bit exclusiva en dos expresiones y asigna el resultado al primer argumento.
Operador XOR bit a bit (^)
Realiza una operación OR exclusiva bit a bit en dos expresiones.
Operador coma (,)
Hace que dos expresiones se ejecuten secuencialmente.
Operadores de comparación
Variedad de operadores (==, >, >=, ===, !=, <, <=, !==) que devuelven un valor de tipo Boolean que indica el resultado de
la comparación.
Operador condicional ternario (?:)
Elige una de dos instrucciones para ejecutarla dependiendo de una condición.
delete (Operador)
Elimina una propiedad de un objeto o quita un elemento de una matriz.
Operador de asignación y división (/=)
Divide dos números y devuelve un resultado numérico que asigna al primer argumento.
Operador de división (/)
Divide dos números y devuelve el resultado numérico.
in (Operador)
Comprueba la existencia de una propiedad en un objeto.
Operadores de incremento (++) y decremento (--)
El operador de incremento (++) incrementa una variable en uno; el operador de decremento (--) disminuye una variable en
uno.
instanceof (Operador)
Devuelve un valor booleano que indica si un objeto es instancia de una clase concreta.
Operador de asignación y desplazamiento a la izquierda (<<=)
Desplaza los bits de una expresión hacia la izquierda y asigna el resultado al primer argumento.
Operador lógico AND (&&)
Realiza una conjunción lógica en dos expresiones.
Operador lógico NOT (!)
Realiza una negación lógica en una expresión.
Operador lógico OR (||)
Realiza una disyunción lógica en dos expresiones.
Operador de asignación y módulo (%=)
Divide dos números y asigna el resto al primer argumento.
Operador de módulo (%)
Divide dos números y devuelve el resto.
Operador de asignación y multiplicación (*=)
Divide dos números y asigna el resultado al primer argumento.
Operador de multiplicación (*)
Multiplica dos números.
new (Operador)
Crea un nuevo objeto.
Operador de referencia (&)
Permite pasar referencias a variables a métodos con parámetros out o de referencia.
Operador de asignación y desplazamiento a la derecha (>>=)
Desplaza los bits de una expresión hacia la derecha manteniendo el signo y asigna el resultado al primer argumento.
Operador de asignación y sustracción (-=)
Resta un número a otro y asigna el resultado al primer argumento.
Operador de resta (-)
Indica el valor negativo de una expresión numérica o resta un número a otro.
typeof (Operador)
Devuelve una cadena que identifica el tipo de datos de una expresión.
Operador de asignación y desplazamiento a la derecha sin signo (>>>=)
Realiza un desplazamiento a la derecha sin signo de los bits de una expresión y asigna el resultado al primer argumento.
Operador de desplazamiento a la derecha sin signo (>>>)
Realiza un desplazamiento a la derecha sin signo de los bits de una expresión.
void (Operador)
Evita que una expresión devuelva un valor.
Secciones relacionadas
Referencia de JScript
Enumera los elementos que comprende la Referencia del lenguaje JScript e incluye vínculos a temas que explican con más
detalle el uso correcto de los elementos del lenguaje.
Operadores de JScript
Proporciona información general y conceptual sobre los operadores utilizados en JScript y ofrece vínculos a temas que
explican la sintaxis correcta de cada operador y la importancia de la prioridad de los operadores.
Precedencia de operadores
Proporciona una lista que contiene información sobre la prioridad de ejecución de los operadores de JScript.
Resumen de operadores
Enumera los operadores de JScript y ofrece vínculos a los temas que explican su correcto uso.
JScript 8.0

Operador de asignación y suma (+=)


Agrega el valor de una expresión al valor de una variable y asigna el resultado a la variable.

result += expression

Argumentos
result
Cualquier variable.
expression
Cualquier expresión.
Comentarios
Si se utiliza este operador, el resultado es prácticamente el mismo que si se especifica result = result + expression, con la
diferencia de que result se evalúa sólo una vez.
El tipo de las expresiones determina el comportamiento del operador +=.
Resultado expression Entonces
char char Error

char Numérico Sumar

char String Error

Numérico char Sumar

Numérico Numérico Sumar

Numérico String Concatenar

String char Concatenar

String Numérico Concatenar

String String Concatenar

Para la concatenación, los números se convierten en una representación de cadena del valor numérico y los caracteres se
consideran cadenas de longitud 1. Para la suma de un carácter y un número, el carácter se convierte en una valor numérico y
se suman los dos números. Algunas combinaciones de tipos dan errores debido a que el tipo resultante de la suma no se
puede convertir en el tipo de resultado necesario.
Ejemplo
En el ejemplo siguiente se muestra cómo el operador de asignación y suma procesa expresiones de distintos tipos.

var str : String = "42";


var n : int = 20;
var c : char = "A"; // The numeric value of "A" is 65.
var result;
c += n; // The result is the char "U".
n += c; // The result is the number 105.
n += n; // The result is the number 210.
n += str; // The result is the number 21042.
str += c; // The result is the string "42U".
str += n; // The result is the string "42U21042".
str += str; // The result is the string "42U2104242U21042".
c += c; // This returns a runtime error.
c += str; // This returns a runtime error.
n += "string"; // This returns a runtime error.

Requisitos
Versión 1
Vea también
Referencia
Operador de suma (+)
Operador de asignación (=)
Conceptos
Precedencia de operadores
Resumen de operadores
JScript 8.0

Operador de suma (+)


Suma el valor de una expresión numérica a otra o concatena dos cadenas.

expression1 + expression2

Argumentos
expression1
Cualquier expresión.
expression2
Cualquier expresión.
Comentarios
El tipo de las expresiones determina el comportamiento del operador +.
Si Entonces Tipo de resultado
Ambas expresiones son caracteres Concatenar String

Ambas expresiones son numéricas Sumar numérico

Ambas expresiones son cadenas Concatenar String

Una expresión es un carácter y la otra es numérica Sumar char

Una expresión es un carácter y la otra es una cadena Concatenar String

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

Para la concatenación, los números se convierten en una representación de cadena del valor numérico y los caracteres se
consideran cadenas de longitud 1. Para la suma de un carácter y un número, el carácter se convierte en un valor numérico y se
suman los dos números.
Nota
En los escenarios en los que no se utiliza la anotación de tipos, los datos numéricos se pueden almacenar como cadenas. Utili
ce la conversión de tipos explícita o variables con anotación de tipos para garantizar que el operador de suma no trata los nú
meros como cadenas o viceversa.

Ejemplo
En el ejemplo siguiente se muestra cómo el operador de suma procesa expresiones de distintos tipos.

var str : String = "42";


var n : double = 20;
var c : char = "A"; // the numeric value of "A" is 65
var result;
result = str + str; // result is the string "4242"
result = n + n; // result is the number 40
result = c + c; // result is the string "AA"
result = c + n; // result is the char "U"
result = c + str; // result is the string "A42"
result = n + str; // result is the string "2042"
// Use explicit type coversion to use numbers as strings, or vice versa.
result = int(str) + int(str); // result is the number 84
result = String(n) + String(n); // result is the string "2020"
result = c + int(str); // result is the char "k"
Requisitos
Versión 1
Vea también
Referencia
Operador de asignación y suma (+=)
Conceptos
Precedencia de operadores
Resumen de operadores
Conversión de tipos
JScript 8.0

Operador de asignación (=)


Asigna un valor a una variable.

result = expression

Argumentos
result
Cualquier variable.
expression
Cualquier expresión.
Comentarios
El operador = devuelve el valor del argumento expression y se lo asigna 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.

El tipo de datos de expresión se debe poder convertir en el tipo de datos de result.


Requisitos
Versión 1
Vea también
Conceptos
Precedencia de operadores
Resumen de operadores
JScript 8.0

Operador de asignación AND bit a bit (&=)


Realiza una operación AND bit a bit en el valor de una variable y el valor de una expresión, y asigna el resultado a la variable.

result &= expression

Argumentos
result
Cualquier variable numérica.
expression
Cualquier expresión numérica.
Comentarios
Si se utiliza este operador, el resultado es prácticamente el mismo que si se especifica result = result & expression, con la
diferencia de que result se evalúa sólo una vez.
El operador &= convierte los argumentos en tipos de datos coincidentes. Entonces, el operador &= obtiene la representación
binaria de los valores de los argumentos result y expression y realiza una operación AND bit a bit en ellos.
El resultado de esta operación se comporta de esta forma:

0101 (result)
1100 (expression)
----
0100 (output)

Cada vez que ambas expresiones tengan un 1 en un dígito, el resultado tendrá un 1 en ese dígito. En caso contrario, el
resultado tendrá un 0 en ese dígito.
Requisitos
Versión 1
Vea también
Referencia
Operador AND bit a bit (&)
Operador de asignación (=)
Conceptos
Precedencia de operadores
Resumen de operadores
Conversión realizada por operadores bit a bit
JScript 8.0

Operador AND bit a bit (&)


Realiza una operación AND bit a bit en dos expresiones.

expression1 & expression2

Argumentos
expression1
Cualquier expresión numérica.
expression2
Cualquier expresión numérica.
Comentarios
El operador & convierte los argumentos en tipos de datos coincidentes. Entonces, el operador & obtiene la representación
binaria de los valores de dos expresiones y realiza una operación AND bit a bit en ellas. Los tipos de datos de los argumentos
determinan el tipo de datos devuelto por este operador.
El resultado de esta operación se comporta de la siguiente manera:

0101 (expression1)
1100 (expression2)
----
0100 (result)

Cada vez que ambas expresiones tengan un 1 en un dígito, el resultado tendrá un 1 en ese dígito. En caso contrario, el
resultado tendrá un 0 en ese dígito.
Requisitos
Versión 1
Vea también
Referencia
Operador de asignación AND bit a bit (&=)
Conceptos
Precedencia de operadores
Resumen de operadores
Conversión realizada por operadores bit a bit
JScript 8.0

Operador de desplazamiento a la izquierda bit a bit (<<)


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

expression1 << expression2

Argumentos
expression1
Cualquier expresión numérica.
expression2
Cualquier expresión numérica.
Comentarios
El operador << desplaza los bits del argumento expression1 hacia la izquierda el número de bits especificado en el argumento
expression2. El tipo de datos de expression1 determina el tipo de datos devuelto por este operador.
El operador << enmascara el argumento expression2 para evitar que expression1 se desplace demasiado. Si no, en el caso de
que la cantidad de desplazamiento excediera el número de bits del tipo de datos de expression1, todos los bits originales se
alejarían lo suficiente como para dar un resultado trivial. Para garantizar que cada desplazamiento conserva al menos uno de
los bits originales, los operadores de desplazamiento utilizan la fórmula siguiente para calcular la cantidad de desplazamiento
actual: enmascarar expression2 (utilizando el operador AND bit a bit) con número de bits menos que el de expression1.
Ejemplo
Por ejemplo:

var temp
temp = 14 << 2

La variable temp tiene un valor igual a 56 porque 14 (00001110 en sistema binario) desplazado hacia la izquierda dos bits es
igual a 56 (00111000 en sistema binario).
Para mostrar el modo de funcionamiento del enmascaramiento, tenga en cuenta el ejemplo siguiente.

var x : byte = 15;


// A byte stores 8 bits.
// The bits stored in x are 00001111
var y : byte = x << 10;
// Actual shift is 10 & (8-1) = 2
// The bits stored in y are 00111100
// The value of y is 60
print(y); // Prints 60

Requisitos
Versión 1
Vea también
Referencia
Operador de asignación y desplazamiento a la izquierda (<<=)
Operador de desplazamiento a la derecha bit a bit (>>)
Operador de desplazamiento a la derecha sin signo (>>>)
Conceptos
Precedencia de operadores
Resumen de operadores
Conversión realizada por operadores bit a bit
JScript 8.0

Operador NOT bit a bit (~)


Realiza una operación NOT (negación) bit a bit en una expresión.

~ expression

Argumentos
expression
Cualquier expresión numérica.
Comentarios
El operador ~ obtiene la representación binaria de los valores de la expresión y realiza una operación de negación bit a bit en
ella. El resultado de esta operación se comporta de la siguiente manera:

0101 (expression)
----
1010 (result)

Cualquier dígito que sea un 1 en la expresión se convertirá en un 0 en el resultado. Cualquier dígito que sea un 0 en la
expresión se convertirá en un 1 en el resultado.
Cuando el operador ~ actúa en un operando de un tipo de datos integral, no realiza ninguna conversión y devuelve un valor
del mismo tipo de datos que los del operando. Cuando el operando es de un tipo de datos no entero, el valor se convierte en
un tipo int, antes de que se lleve a cabo la operación, y el valor devuelto del operador es de tipo int.
Requisitos
Versión 1
Vea también
Referencia
Operador lógico NOT (!)
Conceptos
Precedencia de operadores
Resumen de operadores
JScript 8.0

Operador de asignación y OR bit a bit (|=)


Realiza una operación OR bit a bit en el valor de una variable y el valor de una expresión, y asigna el resultado a la variable.

result |= expression

Argumentos
result
Cualquier variable numérica.
expression
Cualquier expresión numérica.
Comentarios
Si se utiliza este operador, el resultado es prácticamente el mismo que si se especifica result = result | expression, con la
diferencia de que result se evalúa sólo una vez.
El operador |= convierte los argumentos en tipos de datos coincidentes. Entonces, el operador |= obtiene la representación
binaria de los valores de los argumentos result y expression y realiza una operación OR bit a bit en ellos. El resultado de esta
operación se comporta de esta forma:

0101 (result)
1100 (expression)
----
1101 (output)

Cada vez que cualquiera de las dos expresiones tenga un 1 en un dígito, el resultado tendrá un 1 en ese dígito. En caso
contrario, el resultado tendrá un 0 en ese dígito.
Requisitos
Versión 1
Vea también
Referencia
Operador bit a bit OR (|)
Operador de asignación (=)
Conceptos
Precedencia de operadores
Resumen de operadores
Conversión realizada por operadores bit a bit
JScript 8.0

Operador bit a bit OR (|)


Realiza una operación OR bit a bit en dos expresiones.

expression1 | expression2

Argumentos
expression1
Cualquier expresión numérica.
expression2
Cualquier expresión numérica.
Comentarios
El operador | convierte los argumentos en tipos de datos coincidentes. Entonces, el operador | obtiene la representación
binaria de los valores de dos expresiones y realiza una operación OR bit a bit en ellas. Los tipos de datos de los argumentos
determinan el tipo de datos devuelto por este operador.
El resultado de esta operación se comporta de la siguiente manera:

0101 (expression1)
1100 (expression2)
----
1101 (result)

Cada vez que cualquiera de las dos expresiones tenga un 1 en un dígito, el resultado tendrá un 1 en ese dígito. En caso
contrario, el resultado tendrá un 0 en ese dígito.
Requisitos
Versión 1
Vea también
Referencia
Operador de asignación y OR bit a bit (|=)
Conceptos
Precedencia de operadores
Resumen de operadores
Conversión realizada por operadores bit a bit
JScript 8.0

Operador de desplazamiento a la derecha bit a bit (>>)


Desplaza los bits de una expresión hacia la derecha y mantiene el signo.

expression1 >> expression2

Argumentos
expression1
Cualquier expresión numérica.
expression2
Cualquier expresión numérica.
Comentarios
El operador >> desplaza los bits del argumento expression1 hacia la derecha el número de bits especificado en el argumento
expression2. El bit de signo del argumento expression1 se utiliza para rellenar los dígitos de la izquierda. Los dígitos
desplazados hacia la derecha se descartan. El tipo de datos de expression1 determina el tipo de datos devuelto por este
operador.
El operador >> enmascara el argumento expression2 para evitar que expression1 se desplace demasiado. Si no, en el caso de
que la cantidad de desplazamiento excediera el número de bits del tipo de datos de expression1, todos los bits originales se
alejarían lo suficiente como para dar un resultado trivial. Para garantizar que cada desplazamiento conserva al menos uno de
los bits originales, los operadores de desplazamiento utilizan la fórmula siguiente para calcular la cantidad de desplazamiento
actual: enmascarar expression2 (utilizando el operador AND bit a bit) con número de bits menos que el de expression1.
Ejemplo
Por ejemplo, después de evaluar el siguiente código, la variable temp tiene un valor igual a -4: -14 (11110010 en sistema
binario) desplazado hacia la derecha dos bits es igual a -4 (11111100 en sistema binario).

var temp
temp = -14 >> 2

Para mostrar el modo de funcionamiento del enmascaramiento, tenga en cuenta el ejemplo siguiente.

var x : byte = 15;


// A byte stores 8 bits.
// The bits stored in x are 00001111
var y : byte = x >> 10;
// Actual shift is 10 & (8-1) = 2
// The bits stored in y are 00000011
// The value of y is 3
print(y); // Prints 3

Requisitos
Versión 1
Vea también
Referencia
Operador de desplazamiento a la izquierda bit a bit (<<)
Operador de asignación y desplazamiento a la derecha (>>=)
Operador de desplazamiento a la derecha sin signo (>>>)
Conceptos
Precedencia de operadores
Resumen de operadores
Conversión realizada por operadores bit a bit
JScript 8.0

Operador de asignación y XOR bit a bit (^=)


Realiza una operación OR exclusiva bit a bit en el valor de una variable y en el de una expresión, y asigna el resultado a la
variable.

result ^= expression

Argumentos
result
Cualquier variable numérica.
expression
Cualquier expresión numérica.
Comentarios
Si se utiliza este operador, el resultado es prácticamente el mismo que si se especifica result = result ^ expression, con la
diferencia de que result se evalúa sólo una vez.
El operador ^= convierte los argumentos en tipos de datos coincidentes. Entonces, el operador ^= examina la representación
binaria de los valores de las dos expresiones y realiza una operación OR exclusiva bit a bit en ellos. El resultado de esta
operación se comporta de la siguiente manera:

0101 (result)
1100 (expression)
----
1001 (result)

Si una y sólo una de las expresiones tiene un 1 en un dígito, el resultado tendrá un 1 en ese dígito. En caso contrario, el
resultado tendrá un 0 en ese dígito.
Requisitos
Versión 1
Vea también
Referencia
Operador XOR bit a bit (^)
Operador de asignación (=)
Conceptos
Precedencia de operadores
Resumen de operadores
Conversión realizada por operadores bit a bit
JScript 8.0

Operador XOR bit a bit (^)


Realiza una operación OR exclusiva bit a bit en dos expresiones.

expression1 ^ expression2

Argumentos
expression1
Cualquier expresión numérica.
expression2
Cualquier expresión numérica.
Comentarios
El operador ^ convierte los argumentos en tipos de datos coincidentes. Entonces, el operador ^ examina la representación
binaria de los valores de las dos expresiones y realiza una operación OR exclusiva bit a bit en ellos. Los tipos de datos de los
argumentos determinan el tipo de datos devuelto por este operador.
El resultado de esta operación se comporta de la siguiente manera:

0101 (expression1)
1100 (expression2)
----
1001 (result)

Si una y sólo una de las expresiones tiene un 1 en un dígito, el resultado tendrá un 1 en ese dígito. En caso contrario, el
resultado tendrá un 0 en ese dígito.
Requisitos
Versión 1
Vea también
Referencia
Operador de asignación y XOR bit a bit (^=)
Conceptos
Precedencia de operadores
Resumen de operadores
Conversión realizada por operadores bit a bit
JScript 8.0

Operador coma (,)


Hace que dos expresiones se ejecuten secuencialmente.

expression1, expression2

Argumentos
expression1
Cualquier expresión.
expression2
Cualquier expresión.
Comentarios
El operador , hace que las expresiones situadas a ambos lados de él se ejecuten de izquierda a derecha, y obtiene el valor de la
expresión de la derecha. El uso más común del operador , es en la expresión de incremento de un bucle de tipo for. Por
ejemplo:

var i, j, k;
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 de un bucle. El operador , se utiliza
para permitir que varias expresiones se traten como una sola y, de esta forma, se evite la restricción.
Requisitos
Versión 1
Vea también
Referencia
for (Instrucción)
Conceptos
Precedencia de operadores
Resumen de operadores
JScript 8.0

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

expression1 comparisonoperator expression2

Argumentos
expression1
Cualquier expresión.
comparisonoperator
Cualquier operador de comparación (<, >, <=, >=, ==, !=, ===, !==).
expression2
Cualquier expresión.
Comentarios
Al comparar cadenas, JScript utiliza el valor de los caracteres Unicode de la expresión de cadena.
El siguiente ejemplo describe cómo se comportan los diversos grupos de operadores dependiendo de los tipos y valores de los
argumentos expression1 y expression2:
Relacional (<, >, <=, >=)
Intenta convertir los argumentos expression1 y expression2 en números.
Si ambas expresiones son cadenas, realiza una comparación lexicográfica de cadenas.
Si cualquiera de las dos expresiones es NaN, devuelve False.
Cero negativo es igual a cero positivo.
Infinito negativo es menor que cualquier valor, incluido él mismo.
Infinito positivo es mayor que cualquier valor, incluido él mismo.
De igualdad (==, !=)
Si los tipos de las dos expresiones son diferentes, intenta convertirlos en tipos de cadena, número o Boolean.
NaN no es igual a ningún valor, incluido él mismo.
Cero negativo es igual a cero positivo.
null equivale tanto a null como a undefined.
Los valores se consideran iguales si son cadenas idénticas, números equivalentes desde el punto de vista numérico, el
mismo objeto, valores de tipo Boolean idénticos, o (si los tipos son diferentes) si pueden convertirse en una de estas
situaciones.
Cualquier otra comparación se considera una desigualdad.
De 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 los tipos deben ser idénticos para que se consideren iguales.
Requisitos
Versión 1
Vea también
Conceptos
Precedencia de operadores
Resumen de operadores
JScript 8.0

Operador condicional ternario (?:)


Devuelve una de dos expresiones, dependiendo de una condición.

test ? expression1 : expression2

Argumentos
test
Cualquier expresión de tipo Boolean.
expression1
Expresión devuelta si el argumento test es true. Puede ser una expresión de coma.
expression2
Expresión devuelta si el argumento test es false. Puede ser una expresión de coma.
Comentarios
El operador ?: se puede utilizar como forma abreviada de una instrucción if...else. Se utiliza normalmente como parte de una
expresión mayor en la que una instrucción if...else no sería práctica. Por ejemplo:

var now = new Date();


var greeting = "Good" + ((now.getHours() > 17) ? " evening." : " day.");

El ejemplo crea una cadena que contiene "Good evening" si es más tarde de las 6 p.m. El código equivalente que utiliza una
instrucción if...else tendría el siguiente aspecto:

var now = new Date();


var greeting = "Good";
if (now.getHours() > 17)
greeting += " evening.";
else
greeting += " day.";

Requisitos
Versión 1
Vea también
Referencia
if...else (Instrucción)
Conceptos
Precedencia de operadores
Resumen de operadores
JScript 8.0

delete (Operador)
Elimina una propiedad de un objeto, quita un elemento de una matriz o quita una entrada de un objeto IDictionary.

delete expression

Argumentos
expression
Requerido. Cualquier expresión que resulte en una referencia a propiedad, elemento de matriz u objeto IDictionary.
Comentarios
Si el resultado de expression es un objeto, la propiedad especificada en expression existe y el objeto no permite su eliminación,
se devuelve False.
En los demás casos se devuelve True.
Ejemplo
En el ejemplo siguiente se muestra un uso del operador delete.

// Make an object with city names and an index letter.


var cities : Object = {"a" : "Athens" , "b" : "Belgrade", "c" : "Cairo"}

// List the elements in the object.


var key : String;
for (key in cities) {
print(key + " is in cities, with value " + cities[key]);
}

print("Deleting property b");


delete cities.b;

// List the remaining elements in the object.


for (key in cities) {
print(key + " is in cities, with value " + cities[key]);
}

El resultado de este código es:

a is in cities, with value Athens


b is in cities, with value Belgrade
c is in cities, with value Cairo
Deleting property b
a is in cities, with value Athens
c is in cities, with value Cairo

Requisitos
Versión 3
Vea también
Referencia
IDictionary Interface
Conceptos
Precedencia de operadores
Resumen de operadores
JScript 8.0

Operador de asignación y división (/=)


Divide el valor de una variable por el valor de una expresión y asigna el resultado a la variable.

result /= expression

Argumentos
result
Cualquier variable numérica.
expression
Cualquier expresión numérica.
Comentarios
Si se utiliza este operador, el resultado es prácticamente el mismo que si se especifica result = result / expression, con la
diferencia de que result se evalúa sólo una vez.
Requisitos
Versión 1
Vea también
Referencia
Operador de división (/)
Operador de asignación (=)
Conceptos
Precedencia de operadores
Resumen de operadores
JScript 8.0

Operador de división (/)


Divide el valor de dos expresiones.

number1 / number2

Argumentos
number1
Cualquier expresión numérica.
number2
Cualquier expresión numérica.
Comentarios
Si el argumento number1 es un número distinto de cero y finito y number2 es igual a cero, el resultado de la división es
Infinity si number1 es positivo y -Infinity si es negativo. Si tanto number1 como number2 son iguales a cero, el resultado es
NaN.
Requisitos
Versión 1
Vea también
Referencia
Operador de asignación y división (/=)
Conceptos
Precedencia de operadores
Resumen de operadores
JScript 8.0

in (Operador)
Comprueba la existencia de una propiedad en un objeto.

property in object

Argumentos
property
Necesario. Expresión que se evalúa como una cadena.
object
Necesario. Cualquier objeto.
Comentarios
El operador in comprueba si un objeto tiene una propiedad denominada property. También comprueba el prototipo del objeto
para ver si property forma parte de la cadena de prototipos. Si property se encuentra en la cadena de prototipos o en el objeto,
el operador in devuelve true; de lo contrario, devuelve false.
No debe confundirse el operador in con la instrucción for...in.
Nota
Para probar si el objeto tiene una propiedad y no hereda esa propiedad de la cadena de prototipos, utilice el método hasOw
nProperty del objeto.

Ejemplo
En el ejemplo siguiente se muestra un uso del operador in.

function cityName(key : String, cities : Object) : String {


// Returns a city name associated with an index letter.
var ret : String = "Key '" + key + "'";
if( key in cities )
return ret + " represents " + cities[key] + ".";
else // no city indexed by the key
return ret + " does not represent a city."
}
// Make an object with city names and an index letter.
var cities : Object = {"a" : "Athens" , "b" : "Belgrade", "c" : "Cairo"}

// Look up cities with an index letter.


print(cityName("a",cities));
print(cityName("z",cities));

El resultado de este código es:

Key 'a' represents Athens.


Key 'z' does not represent a city.

Requisitos
Versión 1
Vea también
Referencia
for...in (Instrucción)
hasOwnProperty (Método)
Conceptos
Precedencia de operadores
Resumen de operadores
JScript 8.0

Operadores de incremento (++) y decremento (--)


Incrementa o reduce en uno el valor de una variable.

//prefix syntax
++variable
--variable
//postfix syntax
variable++
variable--

Argumentos
variable
Cualquier variable numérica.
Comentarios
Los operadores de incremento y decremento se utilizan como una forma abreviada de modificar el valor almacenado en una
variable y tener acceso a éste. En la sintaxis de prefijos y postfijos se puede utilizar cualquier operador.
Si Acción equivalente Valor devuelto
++ variable variable += 1 valor de variable tras incrementar

variable ++ variable += 1 valor de variable antes de incrementar

-- variable variable -= 1 valor de variable tras disminuir

variable -- variable -= 1 valor de variable antes de disminuir


Ejemplo
En el ejemplo siguiente se ilustran las diferencias entre la sintaxis de los prefijos y de los postfijos en el operador ++.

// Example of prefix increment operator


var j1 : int = 2;
var k1 : int;
k1 = ++j1; // k1 is 3, the value of j1 after incrementing

// Example of postfix increment operator


var j2 : int = 2;
var k2 : int;
k2 = j2++; // k2 is 2, the value of j2 before incrementing

Requisitos
Versión 1
Vea también
Conceptos
Precedencia de operadores
Resumen de operadores
JScript 8.0

instanceof (Operador)
Devuelve un valor Boolean que indica si un objeto es una instancia de una clase concreta o una función construida.

object instanceof class

Argumentos
object
Necesario. Cualquier expresión de objeto.
class
Necesario. Cualquier clase de objeto o función construida.
Comentarios
El operador instanceof devuelve true si el argumento object es una instancia del argumento class o una función construida.
Devuelve false si el argumento object no es una instancia de la clase o función especificada, o si object es null.
El objeto Object de JScript es especial. Un objeto sólo se considera una instancia de Object si, y sólo si, se construyó con el
constructor de Object.
Ejemplo 1
El siguiente ejemplo muestra el uso del operador instanceof para comprobar el tipo de una variable.

// This program uses System.DateTime, which must be imported.


import System

function isDate(ob) : String {


if (ob instanceof Date)
return "It's a JScript Date"
if (ob instanceof DateTime)
return "It's a .NET Framework Date"
return "It's not a date"
}

var d1 : DateTime = DateTime.Now


var d2 : Date = new Date
print(isDate(d1))
print(isDate(d2))

El resultado de este código es:

It's a .NET Date


It's a JScript Date

Ejemplo 2
El siguiente ejemplo muestra el uso del operador instanceof para comprobar instancias de una función construida.

function square(x : int) : int {


return x*x
}

function bracket(s : String) : String{


return("[" + s + "]");
}

var f = new square


print(f instanceof square)
print(f instanceof bracket)
El resultado de este código es:

true
false

Ejemplo 3
El siguiente ejemplo muestra cómo el operador instanceof comprueba si los objetos son instancias de Object.

class CDerived extends Object {


var x : double;
}

var f : CDerived = new CDerived;


var ob : Object = f;
print(ob instanceof Object);

ob = new Object;
print(ob instanceof Object);

El resultado de este código es:

false
true

Requisitos
Versión 5
Vea también
Conceptos
Precedencia de operadores
Resumen de operadores
JScript 8.0

Operador de asignación y desplazamiento a la izquierda (<<=)


Desplaza hacia la izquierda el valor de una variable el número de bits especificado en el valor de una expresión y asigna el
resultado a la variable.

result <<= expression

Argumentos
result
Cualquier variable numérica.
expression
Cualquier expresión numérica.
Comentarios
Si se utiliza este operador, el resultado es prácticamente el mismo que si se especifica result = result << expression, con la
diferencia de que result se evalúa sólo una vez.
El operador <<= desplaza los bits del argumento result a la izquierda el número de bits especificado en el argumento
expression. El operador enmascara expression para evitar que result se desplace demasiado. Si no, en el caso de que la cantidad
de desplazamiento excediera el número de bits del tipo de datos de result, todos los bits originales se alejarían lo suficiente
como para dar un resultado trivial. Para garantizar que cada desplazamiento conserva al menos uno de los bits originales, los
operadores de desplazamiento utilizan la fórmula siguiente para calcular la cantidad de desplazamiento actual: enmascarar
expression (utilizando el operador AND bit a bit) con número de bits menos que el de result.
Ejemplo
Por ejemplo:

var temp
temp = 14
temp <<= 2

La variable temp tiene un valor igual a 56 porque 14 (00001110 en sistema binario) desplazado hacia la izquierda dos bits es
igual a 56 (00111000 en sistema binario). Los bits se rellenan con ceros al desplazarse.
Para mostrar el modo de funcionamiento del enmascaramiento, tenga en cuenta el ejemplo siguiente.

var x : byte = 15;


// A byte stores 8 bits.
// The bits stored in x are 00001111
x <<= 10;
// Actual shift is 10 & (8-1) = 2
// The bits stored in x are 00111100
// The value of x is 60
print(x); // Prints 60

Requisitos
Versión 1
Vea también
Referencia
Operador de desplazamiento a la izquierda bit a bit (<<)
Operador de desplazamiento a la derecha bit a bit (>>)
Operador de desplazamiento a la derecha sin signo (>>>)
Operador de asignación (=)
Conceptos
Precedencia de operadores
Resumen de operadores
JScript 8.0

Operador lógico AND (&&)


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

expression1 && expression2

Argumentos
expression1
Cualquier expresión.
expression2
Cualquier expresión.
Comentarios
Si, y sólo si, ambas expresiones se evalúan como true, el resultado es true. Si alguna de las expresiones se evalúa como false,
el resultado es false. En la siguiente tabla se indica cómo se determina el resultado:
Si expression1 se convierte en Y expression2 se convierte a El resultado será... El resultado se convierte a
true true expression2 true

true false expression2 false

false true expression1 false

false false expression1 false

JScript utiliza las siguientes reglas para convertir valores que no son de tipo Boolean en valores de tipo Boolean:
Todos los objetos se consideran true.
Las cadenas se consideran false si, y sólo si, están vacías.
undefined y null se consideran false.
Los números se consideran false si, y sólo si, son cero.
Requisitos
Versión 1
Vea también
Conceptos
Precedencia de operadores
Resumen de operadores
JScript 8.0

Operador lógico NOT (!)


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

!expression

Argumentos
expression
Cualquier expresión.
Comentarios
La siguiente tabla indica cómo se determina el resultado:
Si expression se convierte en result es

true false

false true

Todos los operadores unarios, como el operador !, evalúan las expresiones como se indica a continuación:
Si se aplica a expresiones con valores de tipo undefined 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. En caso contrario, se genera un error en tiempo de ejecución.
Los valores de tipo Boolean se tratan como números (0 si es false y 1 si es true).
El operador se aplica al número resultante.
Para el operador !, si el argumento expression es distinto de cero, el argumento result es igual a cero. Si el argumento
expression es igual a cero, el argumento result es igual a 1.
Requisitos
Versión 1
Vea también
Referencia
Operador NOT bit a bit (~)
Conceptos
Precedencia de operadores
Resumen de operadores
JScript 8.0

Operador lógico OR (||)


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

expression1 || expression2

Argumentos
expression1
Cualquier expresión.
expression2
Cualquier expresión.
Comentarios
Si una o ambas expresiones se evalúa como true, el resultado es true. La siguiente tabla indica cómo se determina el
resultado:
Si expression1 se convierte a Y expression2 se convierte a El resultado será... El resultado se convierte a
true true expression1 true

true false expression1 true

false true expression2 true

false false expression2 false

JScript utiliza las siguientes reglas para convertir valores que no son de tipo Boolean en valores de tipo Boolean:
Todos los objetos se consideran true.
Las cadenas se consideran false si, y sólo si, están vacías.
undefined y null se consideran false.
Los números se consideran false si, y sólo si, son cero.
Requisitos
Versión 1
Vea también
Conceptos
Precedencia de operadores
Resumen de operadores
JScript 8.0

Operador de asignación y módulo (%=)


Divide el valor de una variable por el valor de una expresión y asigna a la variable el resto.

result %= expression

Argumentos
result
Cualquier variable numérica.
expression
Cualquier expresión numérica.
Comentarios
Si se utiliza este operador, el resultado es prácticamente el mismo que si se especifica result = result % expression, con la
diferencia de que result se evalúa sólo una vez.
Requisitos
Versión 1
Vea también
Referencia
Operador de módulo (%)
Operador de asignación (=)
Conceptos
Precedencia de operadores
Resumen de operadores
JScript 8.0

Operador de módulo (%)


Divide el valor de una expresión por el valor de otra y devuelve el resto.

number1 % number2

Argumentos
number1
Cualquier expresión numérica.
number2
Cualquier expresión numérica.
Comentarios
El operador de módulo, o resto, divide number1 por number2 y devuelve solamente el resto. El signo del resultado es el
mismo que el del argumento number1. El valor del resultado está entre 0 y el valor absoluto de number2.
Los argumentos del operador de módulo pueden ser números de punto flotante, por lo que 5.6 % 0.5 devuelve 0.1.

Ejemplo
En el ejemplo siguiente se muestra un uso del operador de módulo.

var myMoney : int = 128;


var cookiePrice : int = 33;
// Calculate the change if the maximum number of cookies are bought.
var change : int = myMoney % cookiePrice;
// Calculate number of cookies bought.
var numCookies : int = Math.round((myMoney-change)/cookiePrice);

Requisitos
Versión 1
Vea también
Referencia
Operador de asignación y módulo (%=)
Conceptos
Precedencia de operadores
Resumen de operadores
JScript 8.0

Operador de asignación y multiplicación (*=)


Multiplica el valor de una variable por el valor de una expresión y asigna el resultado a la variable.

result *= expression

Argumentos
result
Cualquier variable numérica.
expression
Cualquier expresión numérica.
Comentarios
Si se utiliza este operador, el resultado es prácticamente el mismo que si se especifica result = result * expression, con la
diferencia de que result se evalúa sólo una vez.
Requisitos
Versión 1
Vea también
Referencia
Operador de multiplicación (*)
Operador de asignación (=)
Conceptos
Precedencia de operadores
Resumen de operadores
JScript 8.0

Operador de multiplicación (*)


Multiplica el valor de dos expresiones.

number1 * number2

Argumentos
number1
Cualquier expresión numérica.
number2
Cualquier expresión numérica.
Comentarios
El operador de multiplicación multiplica number1 por number2 y devuelve el resultado. Si cualquiera de los argumentos
number es NaN, el resultado es NaN. Al multiplicar Infinity por cero da como resultado NaN, mientras que si se multiplica
Infinity por un número que no sea cero (incluido Infinity) da como resultado Infinity.
Requisitos
Versión 1
Vea también
Referencia
Operador de asignación y multiplicación (*=)
Conceptos
Precedencia de operadores
Resumen de operadores
JScript 8.0

new (Operador)
Crea un nuevo objeto.

new constructor[( [arguments] )]

Argumentos
constructor
Necesario. Construcción del objeto. Se pueden omitir los paréntesis si el constructor no toma argumentos.
arguments
Opcional. Cualquier argumento que se pase al constructor del nuevo objeto.
Comentarios
El operador new realiza las siguientes tareas:
Crea un objeto sin miembros.
Llama al constructor de ese objeto, pasando una referencia al objeto recién creado como el puntero this.
El constructor inicializa después el objeto de acuerdo con los argumentos pasados al constructor.
Ejemplo
Los siguientes ejemplos muestran algunos de los usos del operador new.

var myObject : Object = new Object;


var myArray : Array = new Array();
var myDate : Date = new Date("Jan 5 1996");

Requisitos
Versión 1
Vea también
Referencia
function (Instrucción)
JScript 8.0

Operador de referencia (&)


El operador & se utiliza para pasar referencias a variables a los métodos mediante parámetros de referencia u out. Los
cambios en el parámetro del método se reflejarán en la variable que se pasó por referencia cuando el control vuelva al método
que hizo la llamada.

&expression

Parámetros
expression
Variable pasada al método.
Comentarios
JScript puede llamar a métodos mediante parámetros de referencia y out, pero no puede definirlos.
Ejemplo
En el ejemplo siguiente se muestra un uso del operador Referencia (&).

// Define Compute method in C# code.


public class C
{
public static void Compute(ref int sum, out int product, int a, int b)
{
sum = a + b;
product = a * b;
}
}

// Call Compute method from your JScript code.


var a : int, b: int;
C.Compute(&a, &b, 2, 3)
print(a);
print(b);

Vea también
Referencia
ref (Referencia de C#)
out (Referencia de C#)
JScript 8.0

Operador de asignación y desplazamiento a la derecha (>>=)


Desplaza hacia la derecha el valor de una variable el número de bits especificado en el valor de una expresión, mantiene el
signo y asigna el resultado a la variable.

result >>= expression

Argumentos
result
Cualquier variable numérica.
expression
Cualquier expresión numérica.
Comentarios
Si se utiliza este operador, el resultado es prácticamente el mismo que si se especifica result = result >> expression, con la
diferencia de que result se evalúa sólo una vez.
El operador >>= desplaza los bits del argumento result hacia la derecha el número de bits especificado en el argumento
expression. El bit de signo del argumento result se utiliza para rellenar los dígitos de la izquierda. Los dígitos desplazados hacia
la derecha se descartan. El operador enmascara expression para evitar que result se desplace demasiado. Si no, en el caso de
que la cantidad de desplazamiento excediera el número de bits del tipo de datos de result, todos los bits originales se alejarían
lo suficiente como para dar un resultado trivial. Para garantizar que cada desplazamiento conserva al menos uno de los bits
originales, los operadores de desplazamiento utilizan la fórmula siguiente para calcular la cantidad de desplazamiento actual:
enmascarar expression (utilizando el operador AND bit a bit) con número de bits menos que el de result.
Ejemplo
Por ejemplo, después de evaluar el siguiente código, la variable temp tiene un valor igual a -4: 14 (11110010 en sistema
binario) desplazado hacia la derecha dos bits es igual a -4 (11111100 en sistema binario).

var temp
temp = -14
temp >>= 2

Para mostrar el modo de funcionamiento del enmascaramiento, tenga en cuenta el ejemplo siguiente.

var x : byte = 15;


// A byte stores 8 bits.
// The bits stored in x are 00001111
x >>= 10;
// Actual shift is 10 & (8-1) = 2
// The bits stored in x are 00000011
// The value of x is 3
print(x); // Prints 3

Requisitos
Versión 1
Vea también
Referencia
Operador de desplazamiento a la izquierda bit a bit (<<)
Operador de desplazamiento a la derecha bit a bit (>>)
Operador de desplazamiento a la derecha sin signo (>>>)
Operador de asignación (=)
Conceptos
Precedencia de operadores
Resumen de operadores
Conversión realizada por operadores bit a bit
JScript 8.0

Operador de asignación y sustracción (-=)


Sustrae el valor de una expresión del valor de una variable y asigna el resultado a la variable.

result -= expression

Argumentos
result
Cualquier variable numérica.
expression
Cualquier expresión numérica.
Comentarios
Si se utiliza este operador, el resultado es prácticamente el mismo que si se especifica result = result - expression, con la
diferencia de que result se evalúa sólo una vez.
Requisitos
Versión 1
Vea también
Referencia
Operador de resta (-)
Operador de asignación (=)
Conceptos
Precedencia de operadores
Resumen de operadores
JScript 8.0

Operador de resta (-)


Resta el valor de una expresión de otra o proporciona el valor unario de negación de una única expresión.

number1 - number2

-number

Argumentos
number1
Cualquier expresión numérica.
number2
Cualquier expresión numérica.
number
Cualquier expresión numérica.
Comentarios
En la sintaxis 1, el operador - es el operador aritmético de resta 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 la sintaxis 2, como para todos los operadores unarios, las expresiones se evalúan del modo siguiente:
Si se aplica a expresiones con valores de tipo undefined 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. En caso contrario, se genera un error en tiempo de ejecución.
Los valores de tipo Boolean se tratan como números (0 si es False y 1 si es True).
El operador se aplica al número resultante. En la sintaxis 2, si el número resultante es distinto de cero, el argumento result tiene
un valor igual al número resultante con el signo contrario. Si el número resultante es cero, el argumento result tiene un valor
igual a cero.
Requisitos
Versión 1
Vea también
Referencia
Operador de asignación y sustracción (-=)
Conceptos
Precedencia de operadores
Resumen de operadores
JScript 8.0

typeof (Operador)
Devuelve una cadena que identifica el tipo de datos de una expresión.

typeof[(]expression[)] ;

Argumentos
expression
Requerido. Cualquier expresión.
Comentarios
El operador typeof devuelve información acerca del tipo en forma de cadena. El operador typeof devuelve uno de estos ocho
valores posibles: "number", "string", "boolean", "object", "function", "date", "undefined" y "unknown".
Los paréntesis son opcionales en la sintaxis de typeof.
Nota
: Todas las expresiones de JScript tienen un método GetType. Este método devuelve el tipo de datos (no una cadena que rep
resente el tipo de datos) de la expresión. El método GetType proporciona más información que el operador typeof.

Ejemplo
El ejemplo siguiente muestra el uso del operador typeof:

var x : double = Math.PI;


var y : String = "Hello";
var z : int[] = new int[10];

print("The type of x (a double) is " + typeof(x) );


print("The type of y (a String) is " + typeof(y) );
print("The type of z (an int[]) is " + typeof(z) );

El resultado de este código es:


The type of x (a double) is number
The type of y (a String) is string
The type of z (an int[]) is object

Requisitos
Versión 1
Vea también
Referencia
GetType
Conceptos
Precedencia de operadores
Resumen de operadores
JScript 8.0

Operador de asignación y desplazamiento a la derecha sin


signo (>>>=)
Desplaza hacia la derecha el valor de una variable el número de bits especificado en el valor de una expresión, sin mantener el
signo, y asigna el resultado a la variable.

result >>>= expression

Argumentos
result
Cualquier variable numérica.
expression
Cualquier expresión numérica.
Comentarios
Si se utiliza este operador, el resultado es prácticamente el mismo que si se especifica result = result >>> expression, con
la diferencia de que result se evalúa sólo una vez.
El operador >>>= desplaza los bits del argumento result hacia la derecha el número de bits especificado en el argumento
expression. Se rellena con ceros desde la izquierda. Los dígitos desplazados hacia la derecha se descartan. El operador
enmascara expression para evitar que result se desplace demasiado. Si no, en el caso de que la cantidad de desplazamiento
excediera el número de bits del tipo de datos de result, todos los bits originales se alejarían lo suficiente como para dar un
resultado trivial. Para garantizar que cada desplazamiento conserva al menos uno de los bits originales, los operadores de
desplazamiento utilizan la fórmula siguiente para calcular la cantidad de desplazamiento actual: enmascarar expression
(utilizando el operador AND bit a bit) con número de bits menos que el de result.
Ejemplo
Por ejemplo:

var temp
temp = -14
temp >>>= 2

La variable temp tiene un valor igual a 1073741820 porque -14 (11111111 11111111 11111111 11110010 en sistema
binario) desplazado hacia la derecha dos bits es igual a 1073741820 (00111111 11111111 11111111 11111100 en sistema
binario).
Para mostrar el modo de funcionamiento del enmascaramiento, tenga en cuenta el ejemplo siguiente.

var x : byte = 15;


// A byte stores 8 bits.
// The bits stored in x are 00001111
x >>>= 10;
// Actual shift is 10 & (8-1) = 2
// The bits stored in x are 00000011
// The value of x is 3
print(x); // Prints 3

Requisitos
Versión 1
Vea también
Referencia
Operador de desplazamiento a la derecha sin signo (>>>)
Operador de desplazamiento a la izquierda bit a bit (<<)
Operador de desplazamiento a la derecha bit a bit (>>)
Operador de asignación (=)
Conceptos
Precedencia de operadores
Resumen de operadores
Conversión realizada por operadores bit a bit
JScript 8.0

Operador de desplazamiento a la derecha sin signo (>>>)


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

expression1 >>> expression2

Argumentos
expression1
Cualquier expresión numérica.
expression2
Cualquier expresión numérica.
Comentarios
El operador >>> desplaza los bits del argumento expression1 hacia la derecha el número de bits especificado en el argumento
expression2. Se rellena con ceros desde la izquierda. Los dígitos desplazados hacia la derecha se descartan. El tipo de datos de
expression1 determina el tipo de datos devuelto por este operador.
El operador >>> enmascara el argumento expression2 para evitar que expression1 se desplace demasiado. Si no, en el caso de
que la cantidad de desplazamiento excediera el número de bits del tipo de datos de expression1, todos los bits originales se
alejarían lo suficiente como para dar un resultado trivial. Para garantizar que cada desplazamiento conserva al menos uno de
los bits originales, los operadores de desplazamiento utilizan la fórmula siguiente para calcular la cantidad de desplazamiento
actual: enmascarar expression2 (utilizando el operador AND bit a bit) con número de bits menos que el de expression1.
Ejemplo
Por ejemplo:

var temp
temp = -14 >>> 2

La variable temp tiene un valor igual a 1073741820 porque -14 (11111111 11111111 11111111 11110010 en sistema
binario) desplazado hacia la derecha dos bits es igual a 1073741820 (00111111 11111111 11111111 11111100 en sistema
binario).
Para mostrar el modo de funcionamiento del enmascaramiento, tenga en cuenta el ejemplo siguiente.

var x : byte = 15;


// A byte stores 8 bits.
// The bits stored in x are 00001111
var y : byte = x >>> 10;
// Actual shift is 10 & (8-1) = 2
// The bits stored in y are 00000011
// The value of y is 3
print(y); // Prints 3

Requisitos
Versión 1
Vea también
Referencia
Operador de asignación y desplazamiento a la derecha sin signo (>>>=)
Operador de desplazamiento a la izquierda bit a bit (<<)
Operador de desplazamiento a la derecha bit a bit (>>)
Conceptos
Precedencia de operadores
Resumen de operadores
Conversión realizada por operadores bit a bit
JScript 8.0

void (Operador)
Evita que una expresión devuelva un valor.

void expression

Argumentos
expression
Necesario. Cualquier expresión.
Comentarios
El operador void evalúa su expresión y devuelve undefined. Este operador es de gran utilidad cuando se desea evaluar una
expresión, pero no se desea que los resultados sean visibles para el resto de la secuencia de comandos.
Requisitos
Versión 2
Vea también
Conceptos
Precedencia de operadores
Resumen de operadores
JScript 8.0

Propiedades (JScript)
Una propiedad es un valor o un conjunto de valores (en forma de matriz u objeto) que es miembro de un objeto. Las secciones
que se muestran a continuación proporcionan vínculos a información que explica cómo utilizar las propiedades en JScript.
En esta sección
Propiedades 0...n
Devuelve el valor real de argumentos individuales de un objeto arguments devuelto por la propiedad arguments de una
función en ejecución.
Propiedades $1...$9
Devuelve las nueve partes memorizadas más recientemente que se encontraron durante la comparación de modelos.
arguments (Propiedad)
Devuelve el objeto arguments para la propiedad object.caller del objeto Function que se está ejecutando actualmente.
callee (Propiedad)
Devuelve el objeto Function que se está ejecutando, que es el texto del cuerpo del objeto Function especificado.
caller (Propiedad)
Devuelve una referencia a la función invocada por la función actual.
constructor (Propiedad)
Especifica la función que crea un objeto.
description (Propiedad)
Devuelve o establece la cadena descriptiva asociada a un error específico.
E (Propiedad)
Devuelve la constante matemática e, base de los logaritmos naturales.
global (Propiedad)
Devuelve un valor Boolean que indica el estado del indicador global (g) utilizado con una expresión regular.
ignoreCase (Propiedad)
Devuelve un valor Boolean que indica el estado del indicador ignoreCase (i) que se utiliza con una expresión regular.
index (Propiedad)
Devuelve la posición del carácter donde comienza la primera coincidencia correcta en una cadena de búsqueda.
Infinity (Propiedad)
Devuelve el valor inicial de Number.POSITIVE_INFINITY.
input ($_) (Propiedad)
Devuelve la cadena con la que se realizó la búsqueda de una expresión regular.
lastIndex (Propiedad)
Devuelve la posición del carácter donde comienza la siguiente coincidencia en una cadena de búsqueda.
lastMatch ($&) (Propiedad)
Devuelve los últimos caracteres coincidentes de cualquier búsqueda de expresiones regulares.
lastParen ($+) (Propiedad)
Devuelve la última subcoincidencia entre paréntesis, si la hubiera, de una búsqueda de expresiones regulares.
leftContext ($`) (Propiedad)
Devuelve los caracteres entre el principio de una cadena de búsqueda y la posición anterior al principio de la última
coincidencia.
length (Propiedad, argumentos)
Devuelve el número real de argumentos pasados a una función por el llamador.
length (Propiedad, Array)
Devuelve un valor entero que supera en uno al elemento mayor definido en una matriz.
length (Propiedad, Function)
Devuelve el número de argumentos definidos para una función.
length (Propiedad, String)
Devuelve la longitud de un objeto String.
LN10 (Propiedad)
Devuelve el logaritmo natural de 10.
LN2 (Propiedad)
Devuelve el logaritmo natural de 2.
LOG10E (Propiedad)
Devuelve el logaritmo en base 10 de e, base de los logaritmos naturales.
LOG2E (Propiedad)
Devuelve el logaritmo en base 2 de e, base de los logaritmos naturales.
MAX_VALUE (Propiedad)
Devuelve el mayor número que se puede representar en JScript. Es igual a aproximadamente 1,79E+308.
message (Propiedad)
Devuelve una cadena con un mensaje de error.
MIN_VALUE (Propiedad)
Devuelve el número más próximo a cero que se puede representar en JScript. Es igual a aproximadamente 5,00E-324.
multiline (Propiedad)
Devuelve un valor Boolean que indica el estado del indicador multilínea (m) que se utiliza con una expresión regular.
name (Propiedad)
Devuelve el nombre de un error.
NaN (Propiedad)
Valor especial que indica que una expresión aritmética ha devuelto un valor que no es un número.
NaN (Propiedad, Global)
Devuelve el valor especial NaN que indica que una expresión no es un número.
NEGATIVE_INFINITY (Propiedad)
Devuelve un valor negativo superior al mayor número negativo (-Number.MAX_VALUE) que se puede representar en
JScript.
number (Propiedad)
Devuelve un valor negativo superior al mayor número negativo (-Number.MAX_VALUE) que se puede representar en
JScript.
PI (Propiedad)
Devuelve la relación entre la longitud de una circunferencia y su diámetro, que es aproximadamente 3,141592653589793.
POSITIVE_INFINITY (Propiedad)
Devuelve un valor superior al mayor número (Number.MAX_VALUE) que se puede representar en JScript.
propertyIsEnumerable (Propiedad)
Devuelve un valor Boolean que indica si una propiedad especificada forma parte de un objeto y si se puede enumerar.
prototype (Propiedad)
Devuelve una referencia al prototipo correspondiente a una clase de objetos.
rightContext ($') (Propiedad)
Devuelve los caracteres entre la posición siguiente a la última coincidencia y el final de la cadena de búsqueda.
source (Propiedad)
Devuelve una copia del texto del modelo de una expresión regular.
SQRT1_2 (Propiedad)
Devuelve la raíz cuadrada de 0,5 o uno dividido por la raíz cuadrada de 2.
SQRT2 (Propiedad)
Devuelve la raíz cuadrada de 2.
undefined (Propiedad)
Devuelve el valor inicial de undefined.
Secciones relacionadas
Referencia de JScript
Enumera los elementos que comprende la Referencia del lenguaje JScript e incluye vínculos a temas que explican con más
detalle el uso correcto de los elementos del lenguaje.
Referencia de .NET Framework
Muestra vínculos a temas que explican la sintaxis y estructura de la biblioteca de clases de .NET Framework y otros
elementos esenciales.
JScript 8.0

Propiedades 0...n
Devuelve el valor de argumentos individuales de un objeto arguments devuelto por la propiedad arguments de una función
en ejecución.

[function.]arguments[[n]]

Argumentos
function
Opcional. Nombre del objeto Function que se ejecuta actualmente.
n
Necesario. Entero no negativo en el intervalo de 0 a arguments.length-1 donde 0 representa el primer argumento y
arguments.length-1 representa el último.
Comentarios
Los valores devueltos por las propiedades 0...n son los valores que se pasan a la función en ejecución. Aunque el objeto
arguments no es una matriz, se tiene acceso a los argumentos individuales que componen el objeto arguments de la misma
forma que a los elementos de la matriz.
Nota
El objeto arguments no está disponible en la ejecución en modo rápido (el predeterminado en JScript). Para compilar un pr
ograma desde la línea de comandos que utilice el objeto arguments, debe desactivar la opción fast utilizando /fast-. Por pos
ibles problemas de subprocesamiento, no resulta seguro desactivar la opción fast en ASP.NET. Para obtener más información
, vea arguments (Objeto).

Ejemplo
El ejemplo siguiente muestra el uso de las propiedades 0...n del objeto arguments.

function argTest(){
var s = "";
s += "The individual arguments are:\n"
for (var n=0; n< arguments.length; n++){
s += "argument " + n;
s += " is " + argTest.arguments[n] + "\n";
}
return(s);
}
print(argTest(1, 2, "hello", new Date()));

Tras compilar este programa con la opción /fast-, el resultado del programa será:

The individual arguments are:


argument 0 is 1
argument 1 is 2
argument 2 is hello
argument 3 is Sat Jan 1 00:00:00 PST 2000

Requisitos
Versión 5,5
Se aplica a:
arguments (Objeto)| Fuction (Objeto)
Vea también
Otros recursos
Propiedades (JScript)
JScript 8.0

Propiedades $1...$9
Devuelve las nueve partes memorizadas más recientemente que se encontraron durante la comparación de modelos. Sólo
lectura.

RegExp.$n

Argumentos
RegExp
Necesario. El objeto RegExp global.
n
Necesario. Entero entre 1 y 9.
Comentarios
El valor de las propiedades $1...$9 se modifica cada vez que se obtiene una coincidencia correcta entre paréntesis. Se puede
especificar cualquier número de subcadenas entre paréntesis en un modelo de expresión regular, pero sólo se pueden
almacenar las nueve más recientes.
Nota
Las propiedades del objeto RegExp no están disponibles al efectuar la ejecución en modo rápido, que es el predeterminado
en JScript. Para compilar, desde la línea de comandos, un programa que utilice estas propiedades, deberá desactivarse la opc
ión fast utilizando /fast-. Por posibles problemas de subprocesamiento, no resulta seguro desactivar la opción fast en ASP.N
ET.

Ejemplo
El siguiente ejemplo muestra el uso de las propiedades $1...$9:

var s : String;
var re : RegExp = new RegExp("d(b+)(d)","ig");
var str : String = "cdbBdbsbdbdz";
var arr : Array = re.exec(str);
s = "$1 contains: " + RegExp.$1 + "\n";
s += "$2 contains: " + RegExp.$2 + "\n";
s += "$3 contains: " + RegExp.$3;
print(s);

Tras compilar con la opción /fast-, el resultado del programa será:

$1 contains: bB
$2 contains: d
$3 contains:

Requisitos
Versión 1
Se aplica a:
RegExp (Objeto)
Vea también
Conceptos
Sintaxis de expresiones regulares
JScript 8.0

arguments (Propiedad)
Devuelve el objeto arguments para el objeto Function que se está ejecutando actualmente.

[function.]arguments

Argumentos
function
Opcional. Nombre del objeto Function que se ejecuta actualmente.
Comentarios
La propiedad arguments permite a una función controlar un número variable de argumentos. La propiedad length del objeto
arguments contiene el número de argumentos pasados a la función. Se puede tener acceso a los argumentos individuales
contenidos en el objeto arguments de la misma forma que a los elementos de una matriz.
Nota
El objeto arguments no está disponible en la ejecución en modo rápido (el predeterminado en JScript). Para compilar un pr
ograma desde la línea de comandos que utilice el objeto arguments, debe desactivar la opción fast utilizando /fast-. Por pos
ibles problemas de subprocesamiento, no resulta seguro desactivar la opción fast en ASP.NET. Para obtener más información
, vea arguments (Objeto).

Ejemplo
En el ejemplo siguiente se muestra el uso de la propiedad arguments.

function argTest(){
var s = "";
s += "The individual arguments are:\n"
for (var n=0; n< arguments.length; n++){
s += "argument " + n;
s += " is " + argTest.arguments[n] + "\n";
}
return(s);
}
print(argTest(1, 2, "hello", new Date()));

Tras compilar este programa con la opción /fast-, el resultado del programa será:

The individual arguments are:


argument 0 is 1
argument 1 is 2
argument 2 is hello
argument 3 is Sat Jan 1 00:00:00 PST 2000

Requisitos
Versión 2
Se aplica a:
Fuction (Objeto)
Vea también
Referencia
arguments (Objeto)
function (Instrucción)
JScript 8.0

callee (Propiedad)
Devuelve el objeto Function que se está ejecutando; es decir, el texto del cuerpo del objeto Function especificado.

[function.]arguments.callee

Argumentos
function
Opcional. Nombre del objeto Function que se ejecuta actualmente.
Comentarios
La propiedad callee es un miembro del objeto arguments que sólo está disponible durante la ejecución de la función
asociada.
El valor inicial de la propiedad callee es el objeto Function que se está ejecutando. Esto permite que las funciones anónimas
sean recursivas.
Nota
El objeto arguments no está disponible en la ejecución en modo rápido (el predeterminado en JScript). Para compilar un pr
ograma desde la línea de comandos que utilice el objeto arguments, debe desactivar la opción fast utilizando /fast-. Por pos
ibles problemas de subprocesamiento, no resulta seguro desactivar la opción fast en ASP.NET. Para obtener más información
, vea arguments (Objeto).

Ejemplo
En el ejemplo siguiente se muestra el uso de la propiedad callee.

function factorial(n) {
if (n <= 0)
return 1;
else
return n * arguments.callee(n - 1)
}
print(factorial(3));

Tras compilar este programa con la opción /fast-, el resultado del programa será:

Requisitos
Versión 5,5
Se aplica a:
arguments (Objeto)| Fuction (Objeto)
Vea también
Referencia
function (Instrucción)
JScript 8.0

caller (Propiedad)
Devuelve una referencia a la función invocada por la función actual.

function.caller

Argumentos
function
Necesario. Nombre del objeto Function que se ejecuta actualmente.
Comentarios
La propiedad caller sólo está definida para una función mientras esta función se está ejecutando. Si se llama a la función
desde el nivel superior de un programa JScript, caller contiene null.
Si la propiedad caller se utiliza en un contexto de cadena, el resultado es el mismo que functionName.toString; es decir, se
muestra el texto descompilado de la función.
Nota
La propiedad caller no está disponible en la ejecución en modo rápido (el predeterminado en JScript). Para compilar desde l
a línea de comandos un programa que utilice la propiedad caller, deberá desactivarse la opción fast mediante /fast-. Por po
sibles problemas de subprocesamiento, no resulta seguro desactivar la opción fast en ASP.NET.

Ejemplo
En el ejemplo siguiente se muestra el uso de la propiedad caller.

function callLevel(){
if (callLevel.caller == null)
print("callLevel was called from the top level.");
else {
print("callLevel was called by:");
print(callLevel.caller);
}
}
function testCall() {
callLevel()
}
// Call callLevel directly.
callLevel();
// Call callLevel indirectly.
testCall();

Tras compilar este programa con la opción /fast-, el resultado del programa será:

callLevel was called from the top level.


callLevel was called by:
function testCall() {
callLevel()
}

Requisitos
Versión 2
Se aplica a:
arguments (Objeto)| Fuction (Objeto)
Vea también
Referencia
function (Instrucción)
JScript 8.0

constructor (Propiedad)
Especifica la función que crea un objeto.

object.constructor

Argumentos
object
Necesario. Nombre de un objeto o una función.
Comentarios
La propiedad constructor es un miembro del prototipo de todo objeto que tiene un prototipo. Esto incluye todos los objetos
intrínsecos de JScript excepto los objetos Arguments, Enumerator, Error, Global, Math, RegExp, Regular Expression y
VBArray. La propiedad constructor contiene una referencia a la función que crea instancias de ese objeto concreto.
Los objetos basados en clases no tienen ninguna propiedad constructor.
Ejemplo
En el ejemplo siguiente se muestra el uso de la propiedad constructor.

function testObject(ob) {
if (ob.constructor == String)
print("Object is a String.");
else if (ob.constructor == MyFunc)
print("Object is constructed from MyFunc.");
else
print("Object is neither a String or constructed from MyFunc.");
}
// A constructor function.
function MyFunc() {
// Body of function.
}

var x = new String("Hi");


testObject(x)
var y = new MyFunc;
testObject(y);

El resultado de este programa es:

Object is a String.
Object is constructed from MyFunc.

Requisitos
Versión 2
Se aplica a:
Array (Objeto)| Boolean (Objeto)| Date (Objeto)| Fuction (Objeto)| Number (Objeto)| Object (Objeto)| String (Objeto)
Vea también
Referencia
prototype (Propiedad)
JScript 8.0

description (Propiedad)
Devuelve o establece la cadena descriptiva asociada a un error específico.

object.description

Argumentos
object
Necesario. Una instancia de un objeto Error.
Comentarios
La propiedad description es una cadena que contiene el mensaje de error asociado a un error específico. Utilice el valor
contenido en esta propiedad para avisar a un usuario de un error que no puede controlar la secuencia de comandos.
Las propiedades description y message hacen referencia al mismo mensaje; la propiedad description proporciona
compatibilidad con versiones anteriores, mientras que la propiedad message cumple el estándar ECMA.
Ejemplo
En el siguiente ejemplo se produce una excepción y se muestra la descripción del error.

function getAge(age) {
if(age < 0)
throw new Error("An age cannot be negative.")
print("Age is "+age+".");
}

// Pass the getAge an invalid argument.


try {
getAge(-5);
} catch(e) {
print(e.description);
}

El resultado de este código es:

An age cannot be negative.

Requisitos
Versión 5
Se aplica a:
Error (Objeto)
Vea también
Referencia
number (Propiedad)
message (Propiedad de JScript)
name (Propiedad)
JScript 8.0

E (Propiedad)
Devuelve la constante matemática e, base de los logaritmos naturales.

Math.E

Argumentos
Math
Requerido. El objeto Math global.
Comentarios
La propiedad E es aproximadamente igual a 2,718.
Requisitos
Versión 1
Se aplica a:
Math (Objeto)
Vea también
Referencia
exp (Método)
JScript 8.0

global (Propiedad)
Devuelve un valor Boolean que indica el estado del indicador global (g) utilizado con una expresión regular.

rgExp.global

Argumentos
rgExp
Necesario. Instancia de un objeto Regular Expression.
Comentarios
La propiedad global es de sólo lectura y devuelve true si el indicador global se establece para una expresión regular y False
en caso contrario. El valor predeterminado es false.
Cuando se utiliza, el indicador global indica que, en una búsqueda, se deben buscar todas las repeticiones del modelo existente
en la cadena de búsqueda y no sólo la primera. También se conoce como coincidencia global.
Ejemplo
En el ejemplo siguiente se muestra el uso de la propiedad global.

function RegExpPropDemo(re : RegExp) {


print("Regular expression: " + re);
print("global: " + re.global);
print("ignoreCase: " + re.ignoreCase);
print("multiline: " + re.multiline);
print();
};

// Some regular expression to test the function.


var re1 : RegExp = new RegExp("the","i"); // Use the constructor.
var re2 = /\w+/gm; // Use a literal.
RegExpPropDemo(re1);
RegExpPropDemo(re2);
RegExpPropDemo(/^\s*$/im);

El resultado de este programa es:

Regular expression: /the/i


global: false
ignoreCase: true
multiline: false
Regular expression: /\w+/gm
global: true
ignoreCase: false
multiline: true

Regular expression: /^\s*$/im


global: false
ignoreCase: true
multiline: true

Requisitos
Versión 5,5
Se aplica a:
Regular Expression (Objeto)
Vea también
Referencia
ignoreCase (Propiedad)
multiline (Propiedad)
Conceptos
Sintaxis de expresiones regulares
JScript 8.0

ignoreCase (Propiedad)
Devuelve un valor Boolean que indica el estado del indicador ignoreCase (i) que se utiliza con una expresión regular.

rgExp.ignoreCase

Argumentos
rgExp
Requerido. Instancia de un objeto Regular Expression.
Comentarios
La propiedad ignoreCase es de sólo lectura y devuelve true si el indicador ignoreCase se establece para una expresión regular
y False en caso contrario. El valor predeterminado es false.
Cuando se utiliza, el indicador ignoreCase indica que la búsqueda debe pasar por alto la distinción entre mayúsculas y
minúsculas al buscar el modelo incluido en la cadena de búsqueda.
Ejemplo
El ejemplo siguiente muestra el uso de la propiedad ignoreCase.

function RegExpPropDemo(re : RegExp) {


print("Regular expression: " + re);
print("global: " + re.global);
print("ignoreCase: " + re.ignoreCase);
print("multiline: " + re.multiline);
print();
};

// Some regular expression to test the function.


var re1 : RegExp = new RegExp("the","i"); // Use the constructor.
var re2 = /\w+/gm; // Use a literal.
RegExpPropDemo(re1);
RegExpPropDemo(re2);
RegExpPropDemo(/^\s*$/im);

El resultado de este programa es:

Regular expression: /the/i


global: false
ignoreCase: true
multiline: false
Regular expression: /\w+/gm
global: true
ignoreCase: false
multiline: true

Regular expression: /^\s*$/im


global: false
ignoreCase: true
multiline: true

Requisitos
Versión 5,5
Se aplica a:
Regular Expression (Objeto)
Vea también
Referencia
global (Propiedad)
multiline (Propiedad)
Conceptos
Sintaxis de expresiones regulares
JScript 8.0

index (Propiedad)
Devuelve la posición del carácter donde comienza la primera coincidencia correcta en una cadena de búsqueda.

{RegExp | reArray}.index

Argumentos
RegExp
Necesario. El objeto RegExpglobal.
reArray
Necesario. Matriz devuelta por el método exec de un objeto Regular Expression.
Comentarios
La propiedad index está basada en cero.
El valor inicial de la propiedad RegExp.index es -1. Su valor es de sólo lectura y cambia siempre que se produce una
coincidencia correcta.
Nota
Las propiedades del objeto RegExp no están disponibles al efectuar la ejecución en modo rápido, que es el predeterminado
en JScript. Para compilar, desde la línea de comandos, un programa que utilice estas propiedades, deberá desactivarse la opc
ión fast utilizando /fast-. Por posibles problemas de subprocesamiento, no resulta seguro desactivar la opción fast en ASP.N
ET.

Ejemplo
El ejemplo siguiente muestra el uso de la propiedad index. Esta función recorre en iteración una cadena de búsqueda e
imprime los valores de index y lastIndex para cada palabra de la cadena.

var src : String = "The rain in Spain falls mainly in the plain.";
var re : RegExp = /\w+/g;
var arr : Array;
while ((arr = re.exec(src)) != null)
print(arr.index + "-" + arr.lastIndex + "\t" + arr);

El resultado de este programa es:

0-3 The
4-8 rain
9-11 in
12-17 Spain
18-23 falls
24-30 mainly
31-33 in
34-37 the
38-43 plain

Requisitos
Versión 3
Se aplica a:
RegExp (Objeto)
Vea también
Referencia
exec (Método)
Conceptos
Sintaxis de expresiones regulares
JScript 8.0

Infinity (Propiedad)
Devuelve el valor inicial de Number.POSITIVE_INFINITY.

Infinity

Comentarios
La propiedad Infinity es un miembro del objeto Global y está disponible cuando el motor de secuencias de comandos se
inicializa.
Requisitos
Versión 3
Se aplica a:
Global (Objeto)
Vea también
Referencia
POSITIVE_INFINITY (Propiedad)
NEGATIVE_INFINITY (Propiedad)
JScript 8.0

input ($_) (Propiedad)


Devuelve la cadena con la que se realizó la búsqueda de una expresión regular.

//Syntax 1
{RegExp | reArray}.input

//Syntax 2
RegExp.$_
//The $_ property may be used as shorthand for the input property
//for the RegExp object.

Argumentos
RegExp
Necesario. El objeto RegExpglobal.
reArray
Necesario. Matriz devuelta por el método exec de un objeto Regular Expression.
Comentarios
El valor input de la propiedad es la cadena con la que se realizó la búsqueda de una expresión regular.
El valor inicial de la propiedad RegExp.input es una cadena vacía, "". Su valor es de sólo lectura y se modifica cada vez que se
obtiene una coincidencia correcta.
Nota
Las propiedades del objeto RegExp no están disponibles al efectuar la ejecución en modo rápido, que es el predeterminado
en JScript. Para compilar, desde la línea de comandos, un programa que utilice estas propiedades, deberá desactivarse la opc
ión fast utilizando /fast-. Por posibles problemas de subprocesamiento, no resulta seguro desactivar la opción fast en ASP.N
ET.

Ejemplo
El siguiente ejemplo muestra el uso de la propiedad input:

var str : String = "A test string.";


var re : RegExp = new RegExp("\\w+","ig");
var arr : Array = re.exec(str);
print("The string used for the match was: " + arr.input);

El resultado de este programa es:

The string used for the match was: A test string.

Requisitos
Versión 3
Se aplica a:
RegExp (Objeto)
Vea también
Referencia
exec (Método)
Conceptos
Sintaxis de expresiones regulares
JScript 8.0

lastIndex (Propiedad)
Devuelve la posición del carácter donde comienza la siguiente coincidencia en una cadena de búsqueda.

{RegExp | reArray}.lastIndex

Argumentos
RegExp
Necesario. El objeto RegExp global.
reArray
Necesario. Matriz devuelta por el método exec de un objeto Regular Expression.
Comentarios
La propiedad lastIndex está basada en cero; es decir, el índice del primer carácter es cero. Su valor inicial es -1. Se modifica su
valor siempre que se produce una coincidencia correcta.
La propiedad lastIndex del RegExp objeto es modificada por los métodos exec y test del objeto RegExp y los métodos
match, replace y split del objeto String.
Las siguientes reglas se aplican a los valores de lastIndex:
Si no hay ninguna coincidencia, lastIndex se establece en -1.
Si lastIndex es mayor que la longitud de la cadena, los métodos test y exec dan un error y lastIndex se establece en -1.
Si lastIndex es igual a la longitud de la cadena, la expresión regular coincide si el modelo coincide con la cadena vacía.
De lo contrario, la coincidencia produce un error y lastIndex se restablece en -1.
De lo contrario, lastIndex se establece en la siguiente posición a continuación de la coincidencia más reciente.
El valor inicial de la propiedad RegExp.lastIndex es –1. Su valor es de sólo lectura y cambia siempre que se produce una
coincidencia correcta.
Nota
Las propiedades del objeto RegExp no están disponibles al efectuar la ejecución en modo rápido, que es el predeterminado
en JScript. Para compilar, desde la línea de comandos, un programa que utilice estas propiedades, deberá desactivarse la opc
ión fast utilizando /fast-. Por posibles problemas de subprocesamiento, no resulta seguro desactivar la opción fast en ASP.N
ET.

Ejemplo
En el ejemplo siguiente se muestra el uso de la propiedad lastIndex. Esta función recorre en iteración una cadena de
búsqueda e imprime los valores de index y lastIndex para cada palabra de la cadena.

var src : String = "The rain in Spain falls mainly in the plain.";
var re : RegExp = /\w+/g;
var arr : Array;
while ((arr = re.exec(src)) != null)
print(arr.index + "-" + arr.lastIndex + "\t" + arr);

El resultado de este programa es:

0-3 The
4-8 rain
9-11 in
12-17 Spain
18-23 falls
24-30 mainly
31-33 in
34-37 the
38-43 plain

Requisitos
Versión 3
Se aplica a:
RegExp (Objeto)
Vea también
Referencia
exec (Método)
Conceptos
Sintaxis de expresiones regulares
JScript 8.0

lastMatch ($&) (Propiedad)


Devuelve los últimos caracteres coincidentes de cualquier búsqueda de expresiones regulares. Sólo lectura.

RegExp.lastMatch

Argumentos
RegExp
Necesario. El objeto RegExp global.
Comentarios
El valor inicial de la propiedad lastMatch es una cadena vacía. El valor de la propiedad lastMatch cambia cada vez que se
obtiene una coincidencia correcta.
Nota
Las propiedades del objeto RegExp no están disponibles al efectuar la ejecución en modo rápido, que es el predeterminado
en JScript. Para compilar, desde la línea de comandos, un programa que utilice estas propiedades, deberá desactivarse la opc
ión fast utilizando /fast-. Por posibles problemas de subprocesamiento, no resulta seguro desactivar la opción fast en ASP.N
ET.

La forma abreviada para la propiedad lastMatch es $&. Las expresiones RegExp["$&"] y RegExp.lastMatch pueden
utilizarse indistintamente.
Ejemplo
En el ejemplo siguiente se muestra el uso de la propiedad lastMatch:

var s; //Declare variable.


var re = new RegExp("d(b+)(d)","ig"); //Regular expression pattern.
var str = "cdbBdbsbdbdz"; //String to be searched.
var arr = re.exec(str); //Perform the search.
s = "$1 returns: " + RegExp.$1 + "\n";
s += "$2 returns: " + RegExp.$2 + "\n";
s += "$3 returns: " + RegExp.$3 + "\n";
s += "input returns : " + RegExp.input + "\n";
s += "lastMatch returns: " + RegExp.lastMatch + "\n";
s += "leftContext returns: " + RegExp.leftContext + "\n";
s += "rightContext returns: " + RegExp.rightContext + "\n";
s += "lastParen returns: " + RegExp.lastParen + "\n";
print(s); //Return results.

Tras compilar este programa con la opción /fast-, el resultado del programa será:

$1 returns: bB
$2 returns: d
$3 returns:
input returns : cdbBdbsbdbdz
lastMatch returns: dbBd
leftContext returns: c
rightContext returns: bsbdbdz
lastParen returns: d

Requisitos
Versión 5,5
Se aplica a:
RegExp (Objeto)
Vea también
Referencia
Propiedades $1...$9
index (Propiedad)
input ($_) (Propiedad)
lastIndex (Propiedad)
lastParen ($+) (Propiedad)
leftContext ($`) (Propiedad)
rightContext ($') (Propiedad)
JScript 8.0

lastParen ($+) (Propiedad)


Devuelve la última subcoincidencia entre paréntesis de una búsqueda de expresiones regulares, si la hubiera. Sólo lectura.

RegExp.lastParen

Argumentos
RegExp
Necesario. El objeto RegExp global.
Comentarios
El valor inicial de la propiedad lastParen es una cadena vacía. El valor de la propiedad lastParen cambia cada vez que se
obtiene una coincidencia correcta.
Nota
Las propiedades del objeto RegExp no están disponibles al efectuar la ejecución en modo rápido, que es el predeterminado
en JScript. Para compilar, desde la línea de comandos, un programa que utilice estas propiedades, deberá desactivarse la opc
ión fast utilizando /fast-. Por posibles problemas de subprocesamiento, no resulta seguro desactivar la opción fast en ASP.N
ET.

La forma abreviada para la propiedad lastParen es $+. Las expresiones RegExp["$+"] y RegExp.lastParen pueden utilizarse
indistintamente.
Ejemplo
El ejemplo siguiente muestra el uso de la propiedad lastParen:

var s; //Declare variable.


var re = new RegExp("d(b+)(d)","ig"); //Regular expression pattern.
var str = "cdbBdbsbdbdz"; //String to be searched.
var arr = re.exec(str); //Perform the search.
s = "$1 returns: " + RegExp.$1 + "\n";
s += "$2 returns: " + RegExp.$2 + "\n";
s += "$3 returns: " + RegExp.$3 + "\n";
s += "input returns : " + RegExp.input + "\n";
s += "lastMatch returns: " + RegExp.lastMatch + "\n";
s += "leftContext returns: " + RegExp.leftContext + "\n";
s += "rightContext returns: " + RegExp.rightContext + "\n";
s += "lastParen returns: " + RegExp.lastParen + "\n";
print(s); //Return results.

Tras compilar este programa con la opción /fast-, el resultado del programa será:

$1 returns: bB
$2 returns: d
$3 returns:
input returns : cdbBdbsbdbdz
lastMatch returns: dbBd
leftContext returns: c
rightContext returns: bsbdbdz
lastParen returns: d

Requisitos
Versión 5,5
Se aplica a:
RegExp (Objeto)
Vea también
Referencia
Propiedades $1...$9
index (Propiedad)
input ($_) (Propiedad)
lastIndex (Propiedad)
lastMatch ($&) (Propiedad)
leftContext ($`) (Propiedad)
rightContext ($') (Propiedad)
JScript 8.0

leftContext ($`) (Propiedad)


Devuelve los caracteres entre el principio de una cadena de búsqueda y la posición anterior al principio de la última
coincidencia. Sólo lectura.

RegExp.leftContext

Argumentos
RegExp
Necesario. El objeto RegExp global.
Comentarios
El valor inicial de la propiedad leftContext es una cadena vacía. El valor de la propiedad leftContext cambia cada vez que se
obtiene una coincidencia correcta.
Nota
Las propiedades del objeto RegExp no están disponibles al efectuar la ejecución en modo rápido, que es el predeterminado
en JScript. Para compilar, desde la línea de comandos, un programa que utilice estas propiedades, deberá desactivarse la opc
ión fast utilizando /fast-. Por posibles problemas de subprocesamiento, no resulta seguro desactivar la opción fast en ASP.N
ET.

La forma abreviada para la propiedad leftContext es $`. Las expresiones RegExp["$`"] y RegExp.leftContext pueden
utilizarse indistintamente.
Ejemplo
En el ejemplo siguiente se muestra el uso de la propiedad leftContext:

var s; //Declare variable.


var re = new RegExp("d(b+)(d)","ig"); //Regular expression pattern.
var str = "cdbBdbsbdbdz"; //String to be searched.
var arr = re.exec(str); //Perform the search.
s = "$1 returns: " + RegExp.$1 + "\n";
s += "$2 returns: " + RegExp.$2 + "\n";
s += "$3 returns: " + RegExp.$3 + "\n";
s += "input returns : " + RegExp.input + "\n";
s += "lastMatch returns: " + RegExp.lastMatch + "\n";
s += "leftContext returns: " + RegExp.leftContext + "\n";
s += "rightContext returns: " + RegExp.rightContext + "\n";
s += "lastParen returns: " + RegExp.lastParen + "\n";
print(s); //Return results.

Tras compilar este programa con la opción /fast-, el resultado del programa será:

$1 returns: bB
$2 returns: d
$3 returns:
input returns : cdbBdbsbdbdz
lastMatch returns: dbBd
leftContext returns: c
rightContext returns: bsbdbdz
lastParen returns: d

Requisitos
Versión 5,5
Se aplica a:
RegExp (Objeto)
Vea también
Referencia
Propiedades $1...$9
index (Propiedad)
input ($_) (Propiedad)
lastIndex (Propiedad)
lastMatch ($&) (Propiedad)
lastParen ($+) (Propiedad)
rightContext ($') (Propiedad)
JScript 8.0

length (Propiedad, argumentos)


Devuelve el número real de argumentos pasados a una función por el llamador.

[function.]arguments.length

Argumentos
function
Opcional. Nombre del objeto Function que se ejecuta actualmente.
Comentarios
El motor de secuencias de comandos inicializa la propiedad length del objeto arguments con el número real de argumentos
pasados a un objeto Function cuando comienza la ejecución de esa función.
Ejemplo
El ejemplo siguiente muestra el uso de la propiedad length del objeto arguments.

function argTest(a, b) : String {


var i : int;
var s : String = "The argTest function expected ";
var numargs : int = arguments.length; // Get number of arguments passed.
var expargs : int = argTest.length; // Get number of arguments expected.
if (expargs < 2)
s += expargs + " argument. ";
else
s += expargs + " arguments. ";
if (numargs < 2)
s += numargs + " was passed.";
else
s += numargs + " were passed.";
s += "\n"
for (i =0 ; i < numargs; i++){ // Get argument contents.
s += " Arg " + i + " = " + arguments[i] + "\n";
}
return(s); // Return list of arguments.
}

print(argTest(42));
print(argTest(new Date(1999,8,7),"Sam",Math.PI));

Tras compilar con la opción /fast-, el resultado del programa será:

The argTest function expected 2 arguments. 1 was passed.


Arg 0 = 42
The argTest function expected 2 arguments. 3 were passed.
Arg 0 = Tue Sep 7 00:00:00 PDT 1999
Arg 1 = Sam
Arg 2 = 3.141592653589793

Requisitos
Versión 5,5
Se aplica a:
arguments (Objeto)
Vea también
Referencia
arguments (Propiedad)
length (Propiedad, Array)
length (Propiedad, String)
JScript 8.0

length (Propiedad, Array)


Devuelve un valor entero que supera en uno al elemento mayor definido en una matriz.

arrayObj.length

Argumentos
arrayObj
Necesario. Cualquier objeto Array.
Comentarios
Como no es preciso que los elementos de una matriz de JScript sean contiguos, la propiedad length no es necesariamente el
número de elementos de la matriz.
Si se asigna a la propiedad length un valor menor que su valor anterior, la matriz se trunca y los elementos con índices de
matriz iguales o superiores al nuevo valor de la propiedad length se pierden.
Si se asigna a la propiedad length un valor mayor que su valor anterior, la matriz se expande formalmente, pero no se crea
ningún elemento nuevo.
Ejemplo
El siguiente ejemplo muestra el uso de la propiedad length. Se declara una matriz y se le agregan dos elementos. Dado que el
índice más grande de la matriz es 6, la longitud es 7.

var my_array : Array = new Array();


my_array[2] = "Test";
my_array[6] = "Another Test";
print(my_array.length); // Prints 7.

Requisitos
Versión 2
Se aplica a:
Array (Objeto)
Vea también
Referencia
length (Propiedad, Function)
length (Propiedad, String)
JScript 8.0

length (Propiedad, Function)


Devuelve el número de argumentos definidos para una función.

function.length

Argumentos
function
Requerido. Nombre del objeto Function que se ejecuta actualmente.
Comentarios
El motor de secuencias de comandos inicializa la propiedad length de una función con el número de argumentos establecido
en su definición cuando se crea una instancia de la misma.
El resultado de llamar a una función con un número de argumentos distinto del valor de su propiedad length depende de la
función.
Ejemplo
El siguiente ejemplo muestra el uso de la propiedad length:

function argTest(a, b) : String {


var s : String = "The argTest function expected " ;
var expargs : int = argTest.length;
s += expargs;
if (expargs < 2)
s += " argument.";
else
s += " arguments.";
return(s);
}
// Display the function output.
print(argTest(42,"Hello"));

El resultado de este programa es:

The argTest function expected 2 arguments.

Requisitos
Versión 2
Se aplica a:
Fuction (Objeto)
Vea también
Referencia
arguments (Propiedad)
length (Propiedad, Array)
length (Propiedad, String)
JScript 8.0

length (Propiedad, String)


Devuelve la longitud de una cadena.

str.length

Argumentos
str
Necesario. Literal de cadena o nombre de un objeto String.
Comentarios
La propiedad length contiene un entero que indica el número de caracteres del objeto String. El último carácter del objeto
String tiene un índice de length - 1.
Requisitos
Versión 1
Se aplica a:
String (Objeto)
Vea también
Referencia
length (Propiedad, Array)
length (Propiedad, Function)
JScript 8.0

LN10 (Propiedad)
Devuelve el logaritmo natural de 10.

Math.LN10

Argumentos
Math
Necesario. El objeto Math global.
Comentarios
La propiedad LN10 es aproximadamente igual a 2,302.
Requisitos
Versión 1
Se aplica a:
Math (Objeto)
Vea también
Referencia
length (Propiedad, Array)
length (Propiedad, Function)
JScript 8.0

LN2 (Propiedad)
Devuelve el logaritmo natural de 2.

Math.LN2

Argumentos
Math
Necesario. El objeto Math global.
Comentarios
La propiedad LN2 es aproximadamente igual a 0,693.
Requisitos
Versión 1
Se aplica a:
Math (Objeto)
Vea también
Referencia
length (Propiedad, Array)
length (Propiedad, Function)
JScript 8.0

LOG10E (Propiedad)
Devuelve el logaritmo en base 10 de e, base de los logaritmos naturales.

Math.LOG10E

Argumentos
Math
Necesario. El objeto Math global.
Comentarios
La propiedad LOG10E es una constante aproximadamente igual a 0,434.
Requisitos
Versión 1
Se aplica a:
Math (Objeto)
Vea también
Referencia
length (Propiedad, Array)
length (Propiedad, Function)
JScript 8.0

LOG2E (Propiedad)
Devuelve el logaritmo en base 2 de e, base de los logaritmos naturales.

Math.LOG2E

Argumentos
Math
Necesario. El objeto Math global.
Comentarios
La propiedad LOG2E es una constante aproximadamente igual a 1,442.
Requisitos
Versión 1
Se aplica a:
Math (Objeto)
Vea también
Referencia
length (Propiedad, Array)
length (Propiedad, Function)
JScript 8.0

MAX_VALUE (Propiedad)
Devuelve el mayor número que se puede representar en JScript. Es igual a aproximadamente 1,79E+308.

Number.MAX_VALUE

Argumentos
Number
Necesario. El objeto Number global.
Comentarios
No es necesario crear el objeto Number antes de tener acceso a la propiedad MAX_VALUE.
Requisitos
Versión 2
Se aplica a:
Number (Objeto)
Vea también
Referencia
MIN_VALUE (Propiedad)
NaN (Propiedad)
NEGATIVE_INFINITY (Propiedad)
POSITIVE_INFINITY (Propiedad)
toString (Método)
JScript 8.0

message (Propiedad de JScript)


Devuelve una cadena con un mensaje de error.

errorObj.message

Argumentos
errorObj
Necesario. Instancia del objeto Error.
Comentarios
La propiedad message es una cadena que contiene un mensaje de error asociado a un error específico. Utilice el valor
contenido en esta propiedad para avisar a un usuario de un error que no se puede o no se desea controlar.
Las propiedades description y message hacen referencia al mismo mensaje; la propiedad description proporciona
compatibilidad con versiones anteriores, mientras que la propiedad message cumple el estándar ECMA.
Ejemplo
En el siguiente ejemplo se produce una excepción y se muestra el mensaje de error.

function getAge(age) {
if(age < 0)
throw new Error("An age cannot be negative.")
print("Age is "+age+".");
}

// Pass the getAge an invalid argument.


try {
getAge(-5);
} catch(e) {
print(e.message);
}

El resultado de este código es:

An age cannot be negative.

Requisitos
Versión 5,5
Se aplica a:
Error (Objeto)
Vea también
Referencia
description (Propiedad)
name (Propiedad)
JScript 8.0

MIN_VALUE (Propiedad)
Devuelve el número más próximo a cero que se puede representar en JScript. Es igual a aproximadamente 5,00E-324.

Number.MIN_VALUE

Argumentos
Number
Necesario. El objeto Number global.
Comentarios
No es necesario crear el objeto Number antes de tener acceso a la propiedad MIN_VALUE.
Requisitos
Versión 2
Se aplica a:
Number (Objeto)
Vea también
Referencia
MAX_VALUE (Propiedad)
NaN (Propiedad)
NEGATIVE_INFINITY (Propiedad)
POSITIVE_INFINITY (Propiedad)
toString (Método)
JScript 8.0

multiline (Propiedad)
Devuelve un valor Boolean que indica el estado del indicador multilínea (m) que se utiliza con una expresión regular.

rgExp.multiline

Argumentos
rgExp
Necesario. Instancia de un objeto Regular Expression.
Comentarios
La propiedad multiline es de sólo lectura y devuelve true si el indicador multiline se establece para una expresión regular y
False en caso contrario. El valor de la propiedad multiline es True si el objeto de expresión regular se creó con el indicador m.
El valor predeterminado es false.
Si el valor de multiline es False, "^" coincide con la posición del principio de una cadena y "$" coincide con la posición del
final de una cadena. Si el valor de multiline es True, "^" coincide con la posición del principio de una cadena así como con la
posición siguiente a "\n" o "\r", y "$" coincide con la posición del final de la cadena así como con la posición anterior a "\n" o
"\r".
Ejemplo
El siguiente ejemplo muestra el uso de la propiedad multiline.

function RegExpPropDemo(re : RegExp) {


print("Regular expression: " + re);
print("global: " + re.global);
print("ignoreCase: " + re.ignoreCase);
print("multiline: " + re.multiline);
print();
};

// Some regular expression to test the function.


var re1 : RegExp = new RegExp("the","i"); // Use the constructor.
var re2 = /\w+/gm; // Use a literal.
RegExpPropDemo(re1);
RegExpPropDemo(re2);
RegExpPropDemo(/^\s*$/im);

El resultado de este programa es:

Regular expression: /the/i


global: false
ignoreCase: true
multiline: false

Regular expression: /\w+/gm


global: true
ignoreCase: false
multiline: true

Regular expression: /^\s*$/im


global: false
ignoreCase: true
multiline: true

Requisitos
Versión 5,5
Se aplica a:
Regular Expression (Objeto)
Vea también
Referencia
global (Propiedad)
ignoreCase (Propiedad)
Conceptos
Sintaxis de expresiones regulares
JScript 8.0

name (Propiedad)
Devuelve el nombre de un error.

errorObj.name

Argumentos
errorObj
Necesario. Instancia del objeto Error.
Comentarios
La propiedad name devuelve el nombre o el tipo de excepción de un error. Cuando se produce un error en tiempo de
ejecución, esta propiedad se establece en uno de los siguientes tipos de excepción nativos:
Tipo Significado
de ex
cepci
ón
Error Este error es un error definido por el usuario, creado utilizando el constructor del objeto Error.

Conv Este error se produce cuando se intenta convertir un objeto en algo en lo que no se puede convertir.
ersio
nErro
r

Rang Este error se produce cuando se proporciona una función con un argumento que ha superado su intervalo permitido. P
eErro or ejemplo, este error se produce si se intenta crear un objeto Array con una longitud que no sea un entero positivo váli
r do.

Refer Este error se produce cuando se ha detectado una referencia no válida. Por ejemplo, este error se producirá si una refer
enceE encia que se espera es null.
rror

RegE Este error se produce cuando tiene lugar un error de compilación con una expresión regular. Sin embargo, una vez com
xpErr pilada la expresión regular, este error no se puede producir. Por ejemplo, este error se producirá si una expresión regula
or r se declara con un modelo cuya sintaxis no sea válida, o si los indicadores son distintos de i, g o m, o si contiene el mis
mo indicador más de una vez.

Synta Este error se produce cuando se analiza el texto de origen y su sintaxis no es correcta. Por ejemplo, este error se produci
xErro rá si se llama a la función eval con un argumento que no sea un texto de programa válido.
r

TypeE Este error se produce cuando el tipo real de un operando no coincide con el tipo que se espera. Un ejemplo de este erro
rror r consiste en una llamada a una función realizada sobre algo que no es un objeto o que no admite la llamada.

URIEr Este error se produce cuando se detecta un indicador de recursos uniforme (URI, Uniform Resource Indicator) que no es
ror válido. Por ejemplo, este error se producirá si se encuentra un carácter no válido en una cadena que se va a codificar o d
escodificar.
Ejemplo
En el siguiente ejemplo se produce una excepción y se muestra el error y su descripción.

function getAge(age) {
if(age < 0)
throw new Error("An age cannot be negative.")
print("Age is "+age+".");
}

// Pass the getAge an invalid argument.


try {
getAge(-5);
} catch(e) {
print(e.name);
print(e.description);
}

El resultado de este código es:

Error
An age cannot be negative.

Requisitos
Versión 5,5
Se aplica a:
Error (Objeto)
Vea también
Referencia
description (Propiedad)
message (Propiedad de JScript)
number (Propiedad)
JScript 8.0

NaN (Propiedad)
Valor especial que indica que una expresión aritmética ha devuelto un valor que no es un número.

Number.NaN

Argumentos
Number
Necesario. El objeto Number global.
Comentarios
No es necesario crear el objeto Number antes de tener acceso a la propiedad NaN.
Esta propiedad no se compara como igual a ningún valor, incluso a sí mismo. Para comprobar si un valor es equivalente a
NaN, utilice el método isNaN del objeto Global.
Requisitos
Versión 2
Se aplica a:
Number (Objeto)
Vea también
Referencia
isNaN (Método)
MAX_VALUE (Propiedad)
MIN_VALUE (Propiedad)
NEGATIVE_INFINITY (Propiedad)
POSITIVE_INFINITY (Propiedad)
toString (Método)
JScript 8.0

NaN (Propiedad, Global)


Devuelve el valor especial NaN que indica que una expresión no es un número.

NaN

Comentarios
La propiedad NaN (que no es un número) es un miembro del objeto Global y está disponible cuando el motor de secuencias
de comandos se inicializa.
Esta propiedad no se compara como igual a ningún valor, incluso a sí mismo. Para comprobar si un valor es equivalente a
NaN, utilice el método isNaN del objeto Global.
Requisitos
Versión 3
Se aplica a:
Global (Objeto)
Vea también
Referencia
isNaN (Método)
JScript 8.0

NEGATIVE_INFINITY (Propiedad)
Devuelve un valor negativo superior al mayor número negativo (-Number.MAX_VALUE) que se puede representar en JScript.

Number.NEGATIVE_INFINITY

Argumentos
Number
Necesario. El objeto Number global.
Comentarios
No es necesario crear el objeto Number antes de tener acceso a la propiedad NEGATIVE_INFINITY.
JScript muestra los valores de NEGATIVE_INFINITY como -infinito. Este valor se comporta matemáticamente como infinito.
Requisitos
Versión 2
Se aplica a:
Number (Objeto)
Vea también
Referencia
MAX_VALUE (Propiedad)
MIN_VALUE (Propiedad)
NaN (Propiedad)
POSITIVE_INFINITY (Propiedad)
toString (Método)
JScript 8.0

number (Propiedad)
Devuelve o establece el valor numérico asociado a un error específico.

object.number

Argumentos
object
Cualquier instancia del objeto Error.
Comentarios
Un número de error es un valor de 32 bits. La palabra de 16 bits superior es el código de facilidad, mientras que la palabra
inferior es el código de error real. Para leer el código de error real, utilice el operador & (AND bit a bit) para combinar la
propiedad number con el número hexadecimal 0xFFFF.
Ejemplo
En el siguiente ejemplo se produce una excepción y se muestra el número del error.

function getAge(age) {
if(age < 0)
throw new Error(100)
print("Age is "+age+".");
}

// Pass the getAge an invalid argument.


try {
getAge(-5);
} catch(e) {
// Extract the error code from the error number.
print(e.number & 0xFFFF)
}

El resultado de este código es:

100

Requisitos
Versión 5
Se aplica a:
Error (Objeto)
Vea también
Referencia
description (Propiedad)
message (Propiedad de JScript)
name (Propiedad)
JScript 8.0

PI (Propiedad)
Devuelve el valor de la constante matemática pi.

Math.PI

Argumentos
Math
Necesario. El objeto Math global.
Comentarios
La propiedad PI es una constante aproximadamente igual a 3,14159. Representa la relación entre la longitud de una
circunferencia y su diámetro.
Requisitos
Versión 1
Se aplica a:
Math (Objeto)
Vea también
Otros recursos
Propiedades (JScript)
JScript 8.0

POSITIVE_INFINITY (Propiedad)
Devuelve un valor superior al mayor número (Number.MAX_VALUE) que se puede representar en JScript.

Number.POSITIVE_INFINITY

Argumentos
Number
Necesario. El objeto Number global.
Comentarios
No es necesario crear el objeto Number antes de tener acceso a la propiedad POSITIVE_INFINITY.
JScript muestra los valores de POSITIVE_INFINITY como infinito. Este valor se comporta matemáticamente como infinito.
Requisitos
Versión 2
Se aplica a:
Number (Objeto)
Vea también
Referencia
MAX_VALUE (Propiedad)
MIN_VALUE (Propiedad)
NaN (Propiedad)
NEGATIVE_INFINITY (Propiedad)
toString (Método)
JScript 8.0

propertyIsEnumerable (Propiedad)
Devuelve un valor Boolean que indica si una propiedad especificada forma parte de un objeto y si se puede enumerar.

object.propertyIsEnumerable(propName)

Argumentos
object
Necesario. Instancia de un objeto.
propName
Necesario. Valor de cadena de un nombre de propiedad.
Comentarios
La propiedad propertyIsEnumerable devuelve True si propName existe en object y se puede enumerar con un bucle For...In.
La propiedad propertyIsEnumerable devuelve False si object no tiene una propiedad con el nombre especificado o si la
propiedad especificada no se puede enumerar. Normalmente, las propiedades predefinidas no se pueden enumerar mientras
que las propiedades definidas por el usuario se pueden enumerar siempre.
La propiedad propertyIsEnumerable no tiene en cuenta los objetos de la cadena de prototipos.
Ejemplo
En el ejemplo siguiente se muestra el uso de la propiedad propertyIsEnumerable.

var a : Array = new Array("apple", "banana", "cactus");


print(a.propertyIsEnumerable(1));

El resultado de este programa es:

true

Requisitos
Versión 5,5
Se aplica a:
Object (Objeto)
Vea también
Otros recursos
Propiedades (JScript)
JScript 8.0

prototype (Propiedad)
Devuelve una referencia al prototipo correspondiente a una clase de objetos.

object.prototype

Argumentos
object
Necesario. Nombre del objeto.
Comentarios
Utilice la propiedad prototype para proporcionar un conjunto base de funcionalidad a una clase de objetos. Las nuevas
instancias de un objeto "heredan" el comportamiento del prototipo asignado a ese objeto.
Todos los objetos intrínsecos de JScript tienen una propiedad prototype que es de sólo lectura. Se puede agregar
funcionalidad al prototipo, como en el ejemplo, pero no se puede asignar un prototipo diferente al objeto. No obstante, se
puede asignar un nuevo prototipo a los objetos definidos por el usuario.
Las listas de métodos y propiedades de cada objeto intrínseco en esta referencia del lenguaje indican cuáles son parte del
prototipo del objeto y cuáles no.
Nota
La propiedad prototype de un objeto integrado no se puede modificar al efectuar la ejecución en modo rápido, que es el pre
determinado en JScript. Para compilar desde la línea de comandos un programa que utilice la propiedad prototype, deberá
desactivarse la opción fast mediante /fast-. Por posibles problemas de subprocesamiento, no resulta seguro desactivar la op
ción fast en ASP.NET.

Ejemplo
Supongamos que se desee agregar un método al objeto Array que devuelva el valor del elemento mayor de la matriz. Para
ello, declare la función, agréguela a Array.prototype y, después, utilícela.

function array_max() {
var i, max = this[0];
for (i = 1; i < this.length; i++) {
if (max < this[i])
max = this[i];
}
return max;
}
Array.prototype.max = array_max;
var x = new Array(1, 2, 3, 4, 5, 6);
print(x.max());

Tras compilar con la opción /fast-, el resultado del programa será:

Requisitos
Versión 2
Se aplica a:
Array (Objeto)| Boolean (Objeto)| Date (Objeto)| Fuction (Objeto)| Number (Objeto)| Object (Objeto)| String (Objeto)
Vea también
Referencia
constructor (Propiedad)
JScript 8.0

rightContext ($') (Propiedad)


Devuelve los caracteres entre la posición siguiente a la última coincidencia y el final de la cadena de búsqueda. Sólo lectura.

RegExp.rightContext

Argumentos
RegExp
Necesario. El objeto RegExp global.
Comentarios
El valor inicial de la propiedad rightContext es una cadena vacía. El valor de la propiedad rightContext cambia cada vez que
se obtiene una coincidencia correcta.
Nota
Las propiedades del objeto RegExp no están disponibles al efectuar la ejecución en modo rápido, que es el predeterminado
en JScript. Para compilar, desde la línea de comandos, un programa que utilice estas propiedades, deberá desactivarse la opc
ión fast utilizando /fast-. No resulta seguro desactivar la opción fast en ASP.NET, debido a que puede haber problemas de su
bprocesamiento.

La forma abreviada para la propiedad rightContext es $'. Las expresiones RegExp["$'"] y RegExp.rightContext pueden
utilizarse indistintamente.
Ejemplo
El ejemplo siguiente muestra el uso de la propiedad rightContext:

var s; //Declare variable.


var re = new RegExp("d(b+)(d)","ig"); //Regular expression pattern.
var str = "cdbBdbsbdbdz"; //String to be searched.
var arr = re.exec(str); //Perform the search.
s = "$1 returns: " + RegExp.$1 + "\n";
s += "$2 returns: " + RegExp.$2 + "\n";
s += "$3 returns: " + RegExp.$3 + "\n";
s += "input returns : " + RegExp.input + "\n";
s += "lastMatch returns: " + RegExp.lastMatch + "\n";
s += "leftContext returns: " + RegExp.leftContext + "\n";
s += "rightContext returns: " + RegExp.rightContext + "\n";
s += "lastParen returns: " + RegExp.lastParen + "\n";
print(s); //Return results.

Tras compilar este programa con la opción /fast-, el resultado del programa será:

$1 returns: bB
$2 returns: d
$3 returns:
input returns : cdbBdbsbdbdz
lastMatch returns: dbBd
leftContext returns: c
rightContext returns: bsbdbdz
lastParen returns: d

Requisitos
Versión 5,5
Se aplica a:
RegExp (Objeto)
Vea también
Referencia
Propiedades $1...$9
index (Propiedad)
input ($_) (Propiedad)
lastIndex (Propiedad)
lastMatch ($&) (Propiedad)
lastParen ($+) (Propiedad)
leftContext ($`) (Propiedad)
JScript 8.0

source (Propiedad)
Devuelve una copia del texto del modelo de una expresión regular. Sólo lectura.

rgExp.source

Argumentos
rgExp
Requerido. Un objeto Regular Expression.
Comentarios
El argumento rgExp puede ser una variable que almacena un objeto Regular Expression o puede ser un literal de expresión
regular.
Ejemplo
El siguiente ejemplo muestra el uso de la propiedad source:

var src : String = "Spain";


var re : RegExp = /in/g;
var s1;
// Test string for existence of regular expression.
if (re.test(src))
s1 = " contains ";
else
s1 = " does not contain ";
// Get the text of the regular expression itself.
print("The string " + src + s1 + re.source + ".");

El resultado de este programa es:

The string Spain contains in.

Requisitos
Versión 3
Se aplica a:
Regular Expression (Objeto)
Vea también
Referencia
Regular Expression (Objeto)
Conceptos
Sintaxis de expresiones regulares
JScript 8.0

SQRT1_2 (Propiedad)
Devuelve la raíz cuadrada de 0,5, o uno dividido por la raíz cuadrada de 2.

Math.SQRT1_2

Argumentos
Math
Necesario. El objeto Math global.
Comentarios
La propiedad SQRT1_2 es una constante aproximadamente igual a 0,707.
Requisitos
Versión 1
Se aplica a:
Math (Objeto)
Vea también
Referencia
sqrt (Método)
SQRT2 (Propiedad)
JScript 8.0

SQRT2 (Propiedad)
Devuelve la raíz cuadrada de 2.

Math.SQRT2

Argumentos
Math
Necesario. El objeto Math global.
Comentarios
La propiedad SQRT2 es una constante aproximadamente igual a 1,414.
Requisitos
Versión 1
Se aplica a:
Math (Objeto)
Vea también
Referencia
sqrt (Método)
SQRT1_2 (Propiedad)
JScript 8.0

undefined (Propiedad)
Devuelve el valor de undefined.

undefined

Comentarios
La propiedad undefined es un miembro del objeto Global y está disponible cuando el motor de secuencias de comandos se
inicializa. Cuando se ha declarado una variable pero no se ha inicializado, su valor es undefined.
Si no se ha declarado una variable, no se puede comparar con undefined, pero se puede comparar su tipo con la cadena
"undefined". Las variables no declaradas no se pueden utilizar en modo rápido.
La propiedad undefined es útil para probar o establecer explícitamente una variable como no definida.
Ejemplo
El siguiente ejemplo muestra el uso de la propiedad undefined:

var declared; //Declare variable.


if (declared == undefined) //Test variable.
print("The variable declared has not been given a value.");

El resultado de este código es:

The variable declared has not been given a value.

Requisitos
Versión 5,5
Se aplica a:
Global (Objeto)
Vea también
Conceptos
Valores no definidos
JScript 8.0

Instrucciones
Una instrucción es un fragmento de código de JScript que realiza una acción. Algunas instrucciones declaran elementos
definidos por el usuario, como variables, funciones, clases y enumeraciones, mientras que otras instrucciones controlan el flujo
del programa. Las secciones que se muestran a continuación proporcionan vínculos a información que explica cómo utilizar las
instrucciones en JScript.
En esta sección
break (Instrucción)
Finaliza el bucle actual o, si se usa junto con una etiqueta, finaliza la instrucción asociada.
class (Instrucción)
Define una clase y sus miembros.
@cc_on (Instrucción)
Activa la compatibilidad con la compilación condicional.
Comment (Instrucciones)
Hace que el analizador de JScript pase por alto los comentarios, ya sean de una única línea (//) o multilínea (/* */).
const (Instrucción)
Define un identificador de constante y su valor.
continue (Instrucción)
Detiene la iteración actual de un bucle e inicia una nueva iteración.
debugger (Instrucción)
Inicia el depurador instalado.
do...while (Instrucción)
Ejecuta un bloque de instrucciones una vez y, a continuación, repite la ejecución del bucle hasta que la evaluación de una
expresión de condición devuelva False.
enum (Instrucción)
Declara una enumeración y sus valores.
for (Instrucción)
Ejecuta un bloque de instrucciones mientras la condición especificada sea igual a True.
for...in (Instrucción)
Ejecuta una o varias instrucciones para cada elemento de un objeto o una matriz.
function (Instrucción)
Declara una nueva función.
function get (Instrucción)
Declara el establecedor de una propiedad.
function set (Instrucción)
Declara el captador de una propiedad.
@if...@elif...@else...@end (Instrucción)
Ejecuta de forma condicional un grupo de instrucciones, dependiendo del valor de una expresión.
if...else (Instrucción)
Ejecuta de forma condicional un grupo de instrucciones, dependiendo del valor de una expresión.
import (Instrucción)
Habilita el acceso a una biblioteca externa.
interface (Instrucción)
Declara una interfaz y sus miembros.
Instrucción con etiqueta
Proporciona un identificador para una instrucción.
package (Instrucción)
Proporciona un modo de empaquetar clases e interfaces en componentes con nombre.
print (Instrucción)
Proporciona una forma de mostrar información de un programa ejecutado desde la línea de comandos.
return (Instrucción)
Sale de la función actual y devuelve un valor desde esa función.
@set (Instrucción)
Crea variables utilizadas con instrucciones de compilación condicional.
static (Instrucción)
Declara un bloque de código que inicializa una clase.
super (Instrucción)
Hace referencia a la clase base del objeto actual.
switch (Instrucción)
Permite la ejecución de una o más instrucciones cuando el valor de una expresión especificada coincide con una etiqueta.
this (Instrucción)
Hace referencia al objeto actual.
throw (Instrucción)
Genera una condición de error que se puede controlar con una instrucción try...catch.
try...catch...finally (Instrucción)
Implementa el control de errores para JScript.
var (Instrucción)
Declara una variable.
while (Instrucción)
Ejecuta una instrucción hasta que la condición especificada sea igual a False.
with (Instrucción)
Establece el objeto predeterminado para una instrucción.
Secciones relacionadas
Referencia de JScript
Enumera los elementos que comprende la Referencia del lenguaje JScript e incluye vínculos a temas que explican con más
detalle el uso correcto de los elementos del lenguaje.
Referencia de .NET Framework
Muestra vínculos a temas que explican la sintaxis y estructura de la biblioteca de clases de .NET Framework y otros
elementos esenciales.
JScript 8.0

break (Instrucción)
Finaliza el bucle actual o, si se usa junto con una etiqueta, finaliza la instrucción asociada.

break [label];

Argumentos
label
Opcional. Especifica la etiqueta de la instrucción que se desea interrumpir.
Comentarios
Normalmente, la instrucción break se utiliza en instrucciones switch y en bucles while, for, for...in o do...while. Por lo
general, el argumento label se utiliza en instrucciones switch, pero se puede utilizar en cualquier instrucción tanto simple
como compuesta.
La ejecución de la instrucción break provoca que el flujo del programa salga del bucle o instrucción actual. El flujo del
programa se reanuda con la instrucción que sigue inmediatamente al bucle o instrucción actual.
Ejemplo 1
El siguiente ejemplo muestra el uso de la instrucción break.

function breakTest(breakpoint){
var i = 0;
while (i < 100) {
if (i == breakpoint)
break;
i++;
}
return(i);
}

Ejemplo 2
El siguiente ejemplo muestra el uso de la instrucción con etiqueta break.

function nameInDoubleArray(name, doubleArray) {


var i, j, inArray;
inArray = false;
mainloop:
for(i=0; i<doubleArray.length; i++)
for(j=0; j<doubleArray[i].length; j++)
if(doubleArray[i][j] == name) {
inArray = true;
break mainloop;
}
return inArray;
}

Requisitos
Versión 1
Vea también
Referencia
continue (Instrucción)
do...while (Instrucción)
for (Instrucción)
for...in (Instrucción)
Instrucción con etiqueta
while (Instrucción)
JScript 8.0

class (Instrucción)
Declara el nombre de una clase, así como una definición de las variables, propiedades y métodos que la componen.

[modifiers] class classname [extends baseclass] [implements interfaces]{


[classmembers]
}

Argumentos
modifiers
Opcional. Modificadores que controlan la visibilidad y el comportamiento de la clase.
classname
Necesario. Nombre de la clase. Sigue las convenciones de nomenclatura estándar de las variables.
extends
Opcional. Palabra clave que indica que el nombre de clase (classname) amplía la clase base (baseclass). Si no se utiliza esta
palabra clave, se crea una clase base estándar de JScript que amplía System.Object.
baseclass
Opcional. Nombre de la clase que se amplía.
implements
Opcional. Palabra clave que indica que el nombre de clase implementa una o más interfaces.
interfaces
Opcional. Lista de nombres de interfaz separados con comas.
classmembers
Opcional. Los classmembers pueden ser declaraciones de método o de constructor (definidas con la instrucción function),
declaraciones de propiedad (definidas con las instrucciones function get y function set), declaraciones de campo
(definidas con las instrucciones var o const), declaraciones de inicializador (definidas con la instrucción static),
declaraciones de enumeración (definidas con la instrucción enum) o declaraciones de clase anidada.
Comentarios
Se pueden utilizar clases para crear instancias o servir como base para otras clases, dependiendo de los modificadores de la
clase. Una clase marcada con el modificador abstract puede servir como clase base para la ampliación de otras clases; no
obstante, no se pueden crear instancias de una clase abstract. Si la clase está marcada con el modificador final, sí se podrán
crear instancias de ella con el operador new, pero no podrá servir como base.
Los métodos y constructores se pueden sobrecargar en una clase. Por tanto, varios métodos (o constructores) pueden tener los
mismos nombres. Los miembros de clase sobrecargados se distinguen por sus firmas únicas, que se componen del nombre
del miembro y del tipo de datos de cada uno de sus parámetros formales. Las cargas permiten a una clase agrupar métodos
con funcionalidad similar.
Una clase puede heredar la funcionalidad de una clase base existente utilizando la palabra clave extends. Los métodos de la
clase base se pueden reemplazar declarando un método nuevo con la misma firma que el método de la clase nueva. Los
métodos de la clase nueva pueden tener acceso a miembros reemplazados de la clase base utilizando la instrucción super.
Se puede crear un modelo de una clase en una o más interfaces utilizando la palabra clave implements. Una clase no puede
heredar comportamientos de una interfaz, pues las interfaces no proporcionan implementación para ningún miembro. Una
interfaz proporcionará la clase con una "firma" que se podrá utilizar en su interacción con otras clases. A menos que la clase
que implementa una interfaz sea abstract, se deberá proporcionar una implementación para cada método definido en la
interfaz.
Se pueden utilizar modificadores para conseguir que el comportamiento de una instancia de clase se parezca más a un objeto
de JScript. Para permitir que una instancia de clase controle dinámicamente propiedades agregadas, utilice el modificador
expando, que crea de manera automática una propiedad indizada predeterminada para la clase. Sólo las propiedades
expando son accesibles mediante la notación de corchetes del objeto Object de JScript.
Ejemplo 1
El siguiente ejemplo crea una clase CPerson con varios campos y métodos, cuyos detalles se han omitido. La clase CPerson
sirve como clase base para la clase CCustomer del segundo ejemplo:

// All members of CPerson are public by default.


class CPerson{
var name : String;
var address : String;
// CPerson constuctor
function CPerson(name : String){
this.name = name;
};
// printMailingLabel is an instance method, as it uses the
// name and address information of the instance.
function printMailingLabel(){
print(name);
print(address);
};

// printBlankLabel is static as it does not require


// any person-specific information.
static function printBlankLabel(){
print("-blank-");
};
}

// Print a blank mailing label.


// Note that no CPerson object exists at this time.
CPerson.printBlankLabel();
// Create a CPerson object and add some data.
var John : CPerson = new CPerson("John Doe");
John.address = "15 Broad Street, Atlanta, GA 30315";
// Print a mailing label with John's name and address.
John.printMailingLabel();

El resultado de este código es:

-blank-
John Doe
15 Broad Street, Atlanta, GA 30315

Ejemplo 2
De CPerson se deriva una clase CCustomer con campos y métodos adicionales no aplicables a un miembro genérico de la clase
CPerson:

// Create an extension to CPerson.


class CCustomer extends CPerson{
var billingAddress : String;
var lastOrder : String;
// Constructor for this class.
function CCustomer(name : String, creditLimit : double){
super(name); // Call superclass constructor.
this.creditLimit = creditLimit;
};

// Customer's credit limit. This is a private field


// so that only member functions can change it.
private var creditLimit : double;
// A public property is needed to read the credit limit.
function get CreditLimit() : double{
return creditLimit;
}
}

// Create a new CCustomer.


var Jane : CCustomer = new CCustomer("Jane Doe",500.);
// Do something with it.
Jane.billingAddress = Jane.address = "12 Oak Street, Buffalo, NY 14201";
Jane.lastOrder = "Windows 2000 Server";
// Print the credit limit.
print(Jane.name + "'s credit limit is " + Jane.CreditLimit);
// Call a method defined in the base class.
Jane.printMailingLabel();

El resultado de esta parte del código es:

Jane Doe's credit limit is 500


Jane Doe
12 Oak Street, Buffalo, NY 14201

Requisitos
Versión .NET
Vea también
Referencia
interface (Instrucción)
function (Instrucción)
function get (Instrucción)
function set (Instrucción)
var (Instrucción)
const (Instrucción)
static (Instrucción)
new (Operador)
this (Instrucción)
super (Instrucción)
Otros recursos
Modificadores
JScript 8.0

@cc_on (Instrucción)
Activa la compatibilidad con la compilación condicional.

@cc_on

Comentarios
La instrucción @cc_on activa la compilación condicional en el motor de secuencias de comandos.
Se recomienda usar la instrucción @cc_on en un comentario, para que los exploradores que no sean compatibles con la
compilación condicional acepten la sintaxis de la secuencia de comandos:

/*@cc_on*/
// The remainder of the script.

De forma alternativa, una instrucción @if o @set fuera de un comentario también activa la compilación condicional.
Requisitos
Versión 3
Vea también
Referencia
@if...@elif...@else...@end (Instrucción)
@set (Instrucción)
Conceptos
Variables de compilación condicional
Otros recursos
Compilación condicional
JScript 8.0

Comment (Instrucciones)
Hace que el analizador de JScript pase por alto los comentarios.

//single-line comment
// comment

//multiline comment
/*
comment
*/

//single-line conditional comment


//@CondStatement

//multiline conditional comment


/*@
condStatement
@*/

Comentarios
El argumento condStatement es código de compilación condicional que se utiliza si se activa la compilación condicional. Si se
utiliza la sintaxis 3, no puede haber espacios entre los caracteres "//" y "@".
Utilice los comentarios para evitar que el analizador de JScript lea partes de la secuencia de comandos. Se pueden utilizar
comentarios para incluir observaciones explicativas en un programa.
Si se utiliza la sintaxis 1, el analizador pasa por alto cualquier texto comprendido entre el marcador de comentario y el final de
la línea. Si utiliza la sintaxis 2, pasa por alto cualquier texto comprendido entre los marcadores de principio y fin.
Las sintaxis 3 y 4 se utilizan para la compatibilidad con la compilación condicional conservando al mismo tiempo la
compatibilidad con exploradores que no admitan esta función. Estos exploradores tratan estos comentarios como las sintaxis 1
y 2 respectivamente.
Ejemplo
El siguiente ejemplo muestra los usos más comunes de la instrucción comment.

function myfunction(arg1, arg2){


/* This is a multiline comment that
can span as many lines as necessary. */
var r = 0;
// This is a single line comment.
r = arg1 + arg2; // Sum the two arguments.
return(r);
}

Requisitos
Versión 1
Vea también
Referencia
@cc_on (Instrucción)
@set (Instrucción)
Conceptos
Variables de compilación condicional
Otros recursos
Compilación condicional
JScript 8.0

const (Instrucción)
Declara una constante.

//Syntax for declaring a constant of global scope or function scope.


const name1 [: type1] = value1 [, ... [, nameN [: typeN] = valueN]]
//Syntax for declaring a constant field in a class.
[modifiers] const name1 [: type1] = value1 [, ... [, nameN [: typeN] = valueN]]

Argumentos
modifiers
Opcional. Modificadores que controlan la visibilidad y el comportamiento del campo.
name1, ..., nameN
Requerido. Nombres de las constantes que se declaran.
type1, ..., typeN
Opcional. Tipos de las constantes que se declaran.
value1, ..., valueN
Valores asignados a las constantes.
Comentarios
Utilice la instrucción const para declarar constantes. Una constante puede estar enlazada a un tipo de datos específico para
ayudar a garantizar la seguridad del tipo. Se deben asignar valores a estas constantes cuando se declaren y estos valores no se
pueden cambiar más adelante en la secuencia de comandos.
Un campo constante en una clase es similar a una constante global o de función, con la excepción de que su ámbito es la clase
y puede tener varios modificadores para controlar su visibilidad y uso.
Nota
Cuando una constante está enlazada a un tipo de datos de referencia (como Object, Array, una instancia de clase o una matr
iz con tipo), los datos a los que hace referencia la constante pueden cambiar. Esto se permite porque la instrucción const sól
o crea la constante de tipo de referencia; los datos a los que hace referencia no son una constante.

Ejemplo
En el siguiente ejemplo se muestra el uso de la instrucción const.

class CSimple {
// A static public constant field. It will always be 42.
static public const constantValue : int = 42;
}
const index = 5;
const name : String = "Thomas Jefferson";
const answer : int = 42, oneThird : float = 1./3.;
const things : Object[] = new Object[50];
things[1] = "thing1";
// Changing data referenced by the constant is allowed.

Requisitos
Versión .NET
Vea también
Referencia
var (Instrucción)
function (Instrucción)
class (Instrucción)
Conceptos
Ámbito de variables y constantes
Anotaciones de tipo
Otros recursos
Modificadores
JScript 8.0

continue (Instrucción)
Detiene la iteración actual de un bucle e inicia una nueva iteración.

continue [label];

Argumentos
label
Opcional. Especifica la instrucción a la que se aplica continue.
Comentarios
Sólo puede utilizarse la instrucción continue dentro de bucles do...while, for o for...in. Al ejecutar la instrucción continue se
detiene la iteración actual del bucle y continúa el flujo del programa al principio del bucle. Esta acción tiene los siguientes
efectos en los distintos tipos de bucle:
Los bucles while y do...while comprueban su condición y, si es igual a True, vuelven a ejecutar el bucle.
Los bucles for ejecutan su expresión de incremento y, si la expresión de comprobación es igual a True, vuelven a ejecutar
el bucle.
Los bucles for...in continúan con el siguiente campo de la variable especificada y vuelven a ejecutar el bucle.
Ejemplo
El siguiente ejemplo muestra el uso de la instrucción continue.

function skip5(){
var s = "", i=0;
while (i < 10) {
i++;
// Skip 5
if (i==5) {
continue;
}
s += i;
}
return(s);
}

Requisitos
Versión 1
Vea también
Referencia
break (Instrucción)
do...while (Instrucción)
for (Instrucción)
for...in (Instrucción)
Instrucción con etiqueta
while (Instrucción)
JScript 8.0

debugger (Instrucción)
Inicia el depurador.

debugger

Comentarios
La instrucción debugger inicia la instalación del depurador. El efecto es similar al que produce la definición de un punto de
interrupción en el programa donde se utiliza la instrucción debugger.
Si no está instalado el depurador, la instrucción debugger no tiene ningún efecto.
Requisitos
Versión 3
Vea también
Otros recursos
Instrucciones
Escribir, compilar y depurar código JScript
JScript 8.0

do...while (Instrucción)
Ejecuta un bloque de instrucciones una vez y, a continuación, repite la ejecución del bucle hasta que la evaluación de una
expresión de condición devuelva False.

do
statement
while (expression)

Argumentos
statement
Necesario. Instrucción que se va a ejecutar si el argumento expression es True. Puede ser una instrucción compuesta.
expression
Necesario. Expresión que puede convertirse en valores booleanos True o False. Si al evaluar expression devuelve True, el
bucle se vuelve a ejecutar. Si al evaluar expression devuelve False, el bucle termina.
Comentarios
El valor de expression no se comprueba hasta que tiene lugar la primera iteración del bucle, con lo que se garantiza la
ejecución del mismo al menos una vez. A partir de entonces, se comprueba después de cada iteración correcta del bucle.
Ejemplo
El ejemplo siguiente muestra el uso de la instrucción do...while para recorrer en iteración los miembros de la colección Drives

function GetDriveList(){
var fso, s, n, e, x;
fso = new ActiveXObject("Scripting.FileSystemObject");
e = new Enumerator(fso.Drives);
s = "";
do {
x = e.item();
s = s + x.DriveLetter;
s += " - ";
if (x.DriveType == 3)
n = x.ShareName;
else if (x.IsReady)
n = x.VolumeName;
else
n = "[Drive not ready]";
s += n + "\n";
e.moveNext();
}
while (!e.atEnd());
return(s);
}

Requisitos
Versión 3
Vea también
Referencia
break (Instrucción)
continue (Instrucción)
for (Instrucción)
for...in (Instrucción)
while (Instrucción)
Instrucción con etiqueta
JScript 8.0

enum (Instrucción)
Declara el nombre de un tipo de datos enumerado y los nombres de los miembros de la enumeración.

[modifiers] enum enumName [ : typeAnnotation]{


enumValue1 [ = initializer1]
[,enumValue2 [ = initializer2]
[, ... [,enumValueN [ = initializerN ] ]]]
}

Argumentos
modifiers
Opcional. Modificadores que controlan la visibilidad y el comportamiento de la enumeración.
enumName
Requerido. Nombre del tipo enumerado.
typeAnnotation
Opcional. Tipo de datos subyacente de la enumeración. Debe ser un tipo de datos integral. El valor predeterminado es int.
enumValue1, enumValue2, ..., enumValueN
Opcional. Un miembro de tipo enumerado
initializer1, initializer2, ..., initializerN
Opcional. Expresión constante que reemplaza el valor numérico predeterminado de un miembro de enumeración.
Comentarios
Una declaración enum inserta un tipo de datos enumerado nuevo en el programa. Puede aparecer únicamente en contextos
donde pueda aparecer una declaración de clase, es decir, en un ámbito global, en un ámbito de paquete o en un ámbito de
clase, pero no dentro de una función o método.
Puede declararse el tipo subyacente de una enumeración para que sea cualquier tipo de datos integral (int, short, long, byte,
uint, ushort, ulong o sbyte). Los miembros de la enumeración se convierten implícitamente en el tipo de datos subyacente y
viceversa, con lo que posibilita la realización de asignaciones directas de datos numéricos a variables de tipo enum. De
manera predeterminada, el tipo de datos subyacente de una enumeración es int.
Cada miembro de tipo enumerado tiene un nombre y un inicializador opcional. Un inicializador debe ser una expresión
constante en tiempo de compilación del mismo tipo que la enumeración especificada, o convertible a ese tipo. El valor del
primer miembro de tipo enumerado es cero o el valor del inicializador, si se ha proporcionado. El valor de cada uno de los
siguientes miembros de tipo enumerado será uno más que el miembro anterior o el valor del inicializador, si se ha
proporcionado.
A un valor enum se tiene acceso de un modo similar a como se obtiene acceso a un miembro de clase estática. El nombre del
miembro deberá completarse con el nombre de la enumeración (por ejemplo, Color.Red). Cuando se asigna un valor a una
variable de un tipo enum, se puede utilizar un nombre completo (como Color.Red), una representación de cadena del nombre
(como "Red") o un valor numérico.
Si se asigna una cadena a un tipo enum que se conoce en tiempo de compilación, el compilador realizará la conversión
necesaria. Por ejemplo, "Red" se reemplazaría por Color.Red. Si no se conoce la cadena en tiempo de compilación, se realizará
una conversión en tiempo de ejecución. Esa conversión puede dar error si la cadena no es un miembro válido del tipo
enumerado. Puesto que la conversión conlleva tiempo y se pueden generar errores de tiempo de compilación, deberá evitarse
la asignación de un valor enum a una cadena variable.
Una variable de un tipo enumerado puede albergar valores fuera del intervalo de valores declarados. Un uso de esta
característica consiste en permitir combinaciones de miembros utilizados como indicadores de bits, como en el ejemplo
siguiente. La conversión de una variable enum en una cadena tiene como resultado la representación de cadena del nombre
del miembro.
Ejemplo 1
El siguiente ejemplo muestra el comportamiento de las enumeraciones. Declara una enumeración sencilla, denominada
CarType, con los miembros Honda, Toyota y Nissan.

enum CarType {
Honda, // Value of zero, since it is first.
Toyota, // Value of 1, the successor of zero.
Nissan // Value of 2.
}

// Declare a variable of type CarType, and give it the value Honda.


var myCar : CarType = CarType.Honda;
print(int(myCar) + ": " + myCar);

myCar = "Nissan"; // Change the value to "Nissan".


print(int(myCar) + ": " + myCar);
myCar = 1; // 1 is the value of the Toyota member.
print(int(myCar) + ": " + myCar);

El resultado de este código es:

0: Honda
2: Nissan
1: Toyota

Ejemplo 2
El siguiente ejemplo muestra cómo utilizar una enumeración para albergar indicadores de bits y en qué medida una variable
enum ha de ser capaz de albergar valores en la lista de miembros de forma no explícita. Define una enumeración FormatFlags
que se utiliza para modificar el comportamiento de una función Format.

// Explicitly set the type to byte, as there are only a few flags.
enum FormatFlags : byte {
// Can't use the default values, since we need explicit bits
ToUpperCase = 1, // Should not combine ToUpper and ToLower.
ToLowerCase = 2,
TrimLeft = 4, // Trim leading spaces.
TrimRight = 8, // Trim trailing spaces.
UriEncode = 16 // Encode string as a URI.
}

function Format(s : String, flags : FormatFlags) : String {


var ret : String = s;
if(flags & FormatFlags.ToUpperCase) ret = ret.toUpperCase();
if(flags & FormatFlags.ToLowerCase) ret = ret.toLowerCase();
if(flags & FormatFlags.TrimLeft) ret = ret.replace(/^\s+/g, "");
if(flags & FormatFlags.TrimRight) ret = ret.replace(/\s+$/g, "");
if(flags & FormatFlags.UriEncode) ret = encodeURI(ret);
return ret;
}
// Combine two enumeration values and store in a FormatFlags variable.
var trim : FormatFlags = FormatFlags.TrimLeft | FormatFlags.TrimRight;
// Combine two enumeration values and store in a byte variable.
var lowerURI : byte = FormatFlags.UriEncode | FormatFlags.ToLowerCase;

var str : String = " hello, WORLD ";

print(trim + ": " + Format(str, trim));


print(FormatFlags.ToUpperCase + ": " + Format(str, FormatFlags.ToUpperCase));
print(lowerURI + ": " + Format(str, lowerURI));

El resultado de este código es:


12: hello, WORLD
ToUpperCase: HELLO, WORLD
18: %20%20hello,%20world%20%20

Requisitos
Versión .NET
Vea también
Conceptos
Conversión de tipos
Anotaciones de tipo
Otros recursos
Modificadores
JScript 8.0

for (Instrucción)
Ejecuta un bloque de instrucciones mientras la condición especificada sea igual a true.

for (initialization; test; increment)


...statement

Argumentos
initialization
Necesario. Expresión. Esta expresión se ejecuta sólo una vez, antes de que se ejecute el bucle.
test
Necesario. Expresión booleana. Si al evaluar test devuelve True, se ejecuta statement. Si al evaluar test devuelve False, el
bucle termina.
increment
Necesario. Expresión. La expresión de incremento se ejecuta al final de cada ciclo de un bucle.
statement
Opcional. Instrucción que se va a ejecutar si el argumento test es True. Puede ser una instrucción compuesta.
Comentarios
Normalmente, el bucle for se utiliza para ejecutar un bucle un número determinado de veces.
Ejemplo
El siguiente ejemplo muestra el uso del bucle for.

/* i is set to 0 at start, and is incremented by 1 at the end


of each iteration. Loop terminates when i is not less
than 10 before a loop iteration. */
var myarray = new Array();
for (var i = 0; i < 10; i++) {
myarray[i] = i;
}

Requisitos
Versión 1
Vea también
Referencia
for...in (Instrucción)
while (Instrucción)
JScript 8.0

for...in (Instrucción)
Ejecuta una o más instrucciones para cada propiedad de un objeto o cada elemento de una matriz o colección.

for ( [var] variable in {object | array | collection})


statement

Argumentos
variable
Necesario. Variable que puede ser cualquier nombre de propiedad de object, cualquier índice de array o cualquier elemento
de collection.
object
Objeto de JScript que se va a recorrer en iteración.
array
Matriz que se va a recorrer en iteración. Puede ser un objeto Array de JScript o una matriz de .NET Framework.
collection
Colección que se va a recorrer en iteración. Puede ser cualquier clase que implemente las interfaces IEnumerable o
IEnumerator desde .NET Framework.
statement
Opcional. Instrucciones que se van a ejecutar para cada propiedad de object o cada elemento de array o collection. Puede ser
una instrucción compuesta.
Comentarios
Antes de cada iteración del bucle, se asigna el argumento variable al siguiente nombre de propiedad de object, al siguiente
índice de array o al siguiente elemento de collection. Se puede utilizar variable en cualquiera de las instrucciones del bucle
para hacer referencia a la propiedad de object o al elemento de array.
Cuando se recorre en iteración un objeto, no se puede determinar o controlar el orden en que los nombres de miembros del
objeto se asignan al argumento variable. La instrucción for...in no puede recorrer los miembros de objetos que no sean de
JScript, como los objetos de .NET Framework.
Las matrices se recorren en iteración en el orden de los elementos, comenzando por el índice menor y terminando por el
mayor. Dado que los objetos Array de JScript pueden ser dispersos, la instrucción for...in obtiene acceso sólo a los elementos
definidos de la matriz. Los objetos Array de JScript también pueden tener propiedades expando, en cuyo caso a variable se le
asignan índices de matriz como nombres de propiedad. Si la matriz es una matriz multidimensional de .NET Framework, sólo
se enumerará la primera dimensión.
Para recorrer en iteración una colección, los elementos se asignan a variable en el orden en que aparecen en la colección.
Ejemplo 1
El ejemplo siguiente muestra el uso de la instrucción for ... in con un objeto que se utiliza como una matriz asociativa.

function ForInDemo1() {
var ret = "";

// Initialize the object with properties and values.


var obj : Object = {"a" : "Athens" ,
"b" : "Belgrade",
"c" : "Cairo"};
// Iterate over the properties.
for (var key in obj)
// Loop and assign 'a', 'b', and 'c' to key.
ret += key + ":\t" + obj[key] + "\n";
return(ret);
} // ForInDemo1

Esta función devuelve la cadena que contiene.

a: Athens
b: Belgrade
c: Cairo

Ejemplo 2
En este ejemplo se muestra el uso de la instrucción for ... in con un objeto Array de JScript que tiene propiedades expando.

function ForInDemo2() {
var ret = "";

// Initialize the array.


var arr : Array = new Array("zero","one","two");
// Add a few expando properties to the array.
arr["orange"] = "fruit";
arr["carrot"] = "vegetable";

// Iterate over the properties and elements.


for (var key in arr)
// Loop and assign 0, 1, 2, 'orange', and 'carrot' to key.
ret += key + ":\t" + arr[key] + "\n";
return(ret);
} // ForInDemo2

Esta función devuelve la cadena que contiene.

0: zero
1: one
2: two
orange: fruit
carrot: vegetable

Ejemplo 3
En el siguiente ejemplo se muestra el uso de la instrucción for ... in con una colección. Aquí, el método GetEnumerator del
objeto System.String proporciona una colección de los caracteres de la cadena.

function ForInDemo3() {
var ret = "";

// Initialize collection.
var str : System.String = "Test.";
var chars : System.CharEnumerator = str.GetEnumerator();
// Iterate over the collection elements.
var i : int = 0;
for (var elem in chars) {
// Loop and assign 'T', 'e', 's', 't', and '.' to elem.
ret += i + ":\t" + elem + "\n";
i++;
}
return(ret);
} // ForInDemo3

Esta función devuelve la cadena que contiene.

0: T
1: e
2: s
3: t
4: .

Requisitos
Versión 5
Nota
Para recorrer colecciones es necesaria la versión .NET.

Vea también
Referencia
for (Instrucción)
while (Instrucción)
String.GetEnumerator Method
Otros recursos
Matrices de JScript
JScript 8.0

function (Instrucción)
Declara una nueva función. Se puede utilizar en diferentes contextos:

// in the global scope


function functionname([parmlist]) [: type] {
[body]
}

// declares a method in a class


[attributes] [modifiers] function functionname([parmlist]) [: type] {
[body]
}

// declares a method in an interface


[attributes] [modifiers] function functionname([parmlist]) [: type]

Argumentos
attributes
Opcional. Atributos que controlan la visibilidad y el comportamiento del método.
modifiers
Opcional. Modificadores que controlan la visibilidad y el comportamiento del método.
functionname
Necesario. Nombre de la función o método.
paramlist
Opcional. Lista de parámetros delimitados por comas para la función o método. Cada parámetro puede incluir una
especificación de tipo. El último parámetro puede ser una parameterarray, que se denota con tres puntos (...) seguidos de un
nombre de matriz de parámetros, seguido de una anotación de tipo de matriz con tipo.
type
Opcional. Tipo de valor devuelto del método.
body
Opcional. Una o más instrucciones que definen cómo funciona la función o método.
Comentarios
Utilice la instrucción function para declarar una función para uso posterior. El código contenido en body no se ejecuta hasta
que se llama a la función desde cualquier otro punto de la secuencia de comandos. La instrucción return se utiliza para
devolver un valor de la función. No es necesario utilizar ninguna instrucción return, el programa regresará cuando llegue al
final de la función.
Los métodos son similares a las funciones globales, pero difieren de ellas en que éstos pertenecen al ámbito de class o
interface en el que están definidos y en que pueden tener varios modificadores que controlen su visibilidad y
comportamiento. Un método de interface no puede tener cuerpo, mientras que un método de class debe tenerlo. Esta regla
tiene una excepción; si un método de class es abstract o la propia class es abstract, el método no podrá tener cuerpo.
Se podrá utilizar la anotación de tipo para declarar el tipo de datos que devolverá la función o el método. Si se especifica void
como tipo de valor devuelto, ninguna de las instrucciones return de la función devolverá ningún valor. Si se especifica un tipo
de valor devuelto diferente de void, todas las instrucciones return de la función deberán devolver un valor que se pueda
convertir en el tipo de valor devuelto especificado. El valor undefined es devuelto si se especifica un tipo de valor devuelto,
pero aparece una instrucción return sin ningún valor, o si se alcanza el final de la función sin una instrucción return. Las
funciones constructoras no pueden especificar un tipo de valor devuelto, debido a que el operador new devuelve
automáticamente el objeto que se está creando.
Si no se especifica ningún tipo de valor devuelto para la función, éste se establece como Object o void. El tipo de valor
devuelto void se selecciona sólo cuando no hay instrucciones return o cuando las instrucciones return no tienen ningún valor
en el cuerpo de la función.
Una matriz de parámetros se puede utilizar como el último parámetro de una función. Cualquier argumento adicional pasado
a la función (en caso de que hubiera alguno) tras los parámetros necesarios se incluirá en la matriz de parámetros. La
anotación de tipo del parámetro no es opcional; debe ser una matriz con tipo. Para aceptar parámetros de tipos arbitrarios,
utilice Object[] como matriz con tipo. Al llamar a una función que puede aceptar un número variable de argumentos, se
deberá utilizar una matriz explícita del tipo esperado en lugar de proporcionar una lista de parámetros.
Cuando se llama a una función, hay que asegurarse de incluir siempre los paréntesis y los argumentos necesarios. La acción de
llamar a una función sin paréntesis hace que se devuelva el texto de la función en lugar de los resultados de la misma.
Ejemplo 1
El ejemplo siguiente muestra el uso de la instrucción function de la primera sintaxis:

interface IForm {
// This is using function in Syntax 3.
function blank() : String;
}

class CForm implements IForm {


// This is using function in Syntax 2.
function blank() : String {
return("This is blank.");
}
}

// This is using function in Syntax 1.


function addSquares(x : double, y : double) : double {
return(x*x + y*y);
}

// Now call the function.


var z : double = addSquares(3.,4.);
print(z);
// Call the method.
var derivedForm : CForm = new CForm;
print(derivedForm.blank());

// Call the inherited method.


var baseForm : IForm = derivedForm;
print(baseForm.blank());

El resultado de este programa es:

25
This is blank.
This is blank.

Ejemplo 2
En este ejemplo, una función printFacts toma como entrada String y una matriz de parámetros utilizada, para aceptar un
número variable de Objects.

function printFacts(name : String, ... info : Object[]) {


print("Name: " + name);
print("Number of extra information: " + info.length);
for (var factNum in info) {
print(factNum + ": " + info[factNum]);
}
}

// Pass several arguments to the function.


printFacts("HAL 9000", "Urbana, Illinois", new Date(1997,0,12));
// Here the array is intrepeted as containing arguments for the function.
printFacts("monolith", [1, 4, 9]);
// Here the array is just one of the arguments.
printFacts("monolith", [1, 4, 9], "dimensions");
printFacts("monolith", "dimensions are", [1, 4, 9]);

Este programa muestra el siguiente resultado cuando se ejecuta:

Name: HAL 9000


Number of extra information: 2
0: Urbana, Illinois
1: Sun Jan 12 00:00:00 PST 1997
Name: monolith
Number of extra information: 3
0: 1
1: 4
2: 9
Name: monolith
Number of extra information: 2
0: 1,4,9
1: dimensions
Name: monolith
Number of extra information: 2
0: dimensions are
1: 1,4,9

Requisitos
Versión 1 (para la sintaxis 1)
Versión .NET (para las sintaxis 2 y 3)
Vea también
Referencia
new (Operador)
class (Instrucción)
interface (Instrucción)
return (Instrucción)
Conceptos
Ámbito de variables y constantes
Anotaciones de tipo
Matrices con tipo
Otros recursos
Modificadores
JScript 8.0

function get (Instrucción)


Declara los descriptores de acceso de una propiedad nueva en una clase o interfaz. A menudo, function get aparecerá junto
con function set para permitir el acceso de lectura y escritura a una propiedad.

// Syntax for the get accessor for a property in a class.


[modifiers] function get propertyname() [: type] {
[body]
}

// Syntax for the get accessor for a property in an interface.


[modifiers] function get propertyname() [: type]

Argumentos
modifiers
Opcional. Modificadores que controlan la visibilidad y el comportamiento de la propiedad.
propertyname
Necesario. Nombre de la propiedad que se está creando. Deberá ser único dentro de la clase salvo que se pueda utilizar un
mismo nombre de propiedad con los descriptores de acceso (get y set) para identificar una propiedad que se pueda leer y
escribir.
type
Opcional. Tipo de valor devuelto del descriptor de acceso get. Deberá coincidir con el tipo de parámetro del descriptor de
acceso set, si es que está definido.
body
Opcional. Una o más instrucciones que definen cómo funciona un descriptor de acceso get.
Comentarios
Se tiene acceso a las propiedades de un objeto de un modo muy similar al que se tiene acceso a un campo, con la salvedad de
que las propiedades permiten más control sobre los valores que se almacenan y devuelven en el objeto. Las propiedades
pueden ser de sólo lectura, de sólo escritura o de lectura y escritura dependiendo de la combinación de los descriptores de
acceso de propiedad get y set definidos en la clase. Las propiedades se utilizan a menudo para ayudar a garantizar que sólo se
almacenan valores correctos en un campo private o protected. No es posible asignar un valor a una propiedad de sólo
lectura ni leer un valor de una propiedad de sólo escritura.
Un descriptor de acceso get, que debe especificar un tipo de valor devuelto, no tiene argumentos. Un descriptor get puede
formar un par con un descriptor de acceso set, que tiene un argumento y no tiene un tipo de valor devuelto. Si se utilizan
ambos descriptores de acceso para una propiedad, el tipo de valor devuelto del descriptor de acceso get deberá coincidir con
el tipo de argumento del descriptor de acceso set.
Una propiedad puede tener un descriptor de acceso get, un descriptor de acceso set o ambos. Sólo el descriptor de acceso get
(o set si no hay get) de una propiedad puede tener atributos personalizados que se apliquen a la propiedad como un todo.
Ambos descriptores de acceso, get y set, pueden recibir modificadores y atributos personalizados aplicables al descriptor de
acceso concreto. Los descriptores de acceso de propiedad no se pueden sobrecargar, pero se pueden ocultar o reemplazar.
Las propiedades se pueden especificar en la definición de una interfaz, pero no se puede dar una implementación en la
interfaz.
Ejemplo
El siguiente ejemplo muestra varias declaraciones de propiedad. En él, una propiedad Age queda definida como de lectura y
escritura. También se define una propiedad FavoriteColor de sólo lectura.

class CPerson {
// These variables are not accessible from outside the class.
private var privateAge : int;
private var privateFavoriteColor : String;
// Set the initial favorite color with the constructor.
function CPerson(inputFavoriteColor : String) {
privateAge = 0;
privateFavoriteColor = inputFavoriteColor;
}
// Define an accessor to get the age.
function get Age() : int {
return privateAge;
}
// Define an accessor to set the age, since ages change.
function set Age(inputAge : int) {
privateAge = inputAge;
}

// Define an accessor to get the favorite color.


function get FavoriteColor() : String {
return privateFavoriteColor;
}
// No accessor to set the favorite color, making it read only.
// This assumes that favorite colors never change.
}

var chris: CPerson = new CPerson("red");

// Set Chris age.


chris.Age = 27;
// Read chris age.
print("Chris is " + chris.Age + " years old.");

// FavoriteColor can be read from, but not written to.


print("Favorite color is " + chris.FavoriteColor + ".");

Cuando se ejecuta este programa, muestra lo siguiente:

Chrisis 27 years old.


Favorite color is red.

Requisitos
Versión .NET
Vea también
Referencia
class (Instrucción)
interface (Instrucción)
function (Instrucción)
function set (Instrucción)
Conceptos
Anotaciones de tipo
Otros recursos
Modificadores
JScript 8.0

function set (Instrucción)


Declara los descriptores de acceso de una propiedad nueva en una clase o interfaz. A menudo, function set aparecerá junto
con function get para permitir el acceso de lectura y escritura a una propiedad.

// Syntax for the set accessor of a property in a class.


[modifiers] function set propertyname(parameter [: type]) {
[body]
}

// Syntax for the set accessor of a property in an interface.


[modifiers] function set propertyname(parameter [: type])

Argumentos
modifiers
Opcional. Modificadores que controlan la visibilidad y el comportamiento de la propiedad.
propertyname
Requerido. Nombre de la propiedad que se está creando. Deberá ser único dentro de la clase salvo que se pueda utilizar un
mismo nombre de propiedad con los descriptores de acceso (get y set) para identificar una propiedad que se pueda leer y
escribir.
parameter
Requerido. Parámetro formal aceptado por el descriptor de acceso set.
type
Opcional. Tipo de parámetro del descriptor de acceso set. Debe coincidir con el tipo de valor devuelto del descriptor de
acceso get, si está definido.
body
Opcional. Una o más instrucciones que definen cómo funciona un descriptor de acceso set.
Comentarios
Se tiene acceso a las propiedades de un objeto de un modo muy similar al que se tiene acceso a un campo, con la salvedad de
que las propiedades permiten más control sobre los valores que se almacenan y devuelven en el objeto. Las propiedades
pueden ser de sólo lectura, de sólo escritura o de lectura y escritura dependiendo de la combinación de los descriptores de
acceso de propiedad get y set definidos en la clase. Las propiedades se utilizan a menudo para ayudar a garantizar que sólo se
almacenan valores correctos en un campo private o protected. No es posible asignar un valor a una propiedad de sólo
lectura ni leer un valor de una propiedad de sólo escritura.
Un descriptor de acceso set debe tener exactamente un argumento y no puede especificar un tipo de valor devuelto. El
descriptor de acceso set puede formar un par con un descriptor de acceso get, que no tiene argumentos y debe especificar un
tipo de valor devuelto. Si se utilizan ambos descriptores de acceso para una propiedad, el tipo de valor devuelto del descriptor
de acceso get deberá coincidir con el tipo de argumento del descriptor de acceso set.
Una propiedad puede tener un descriptor de acceso get, un descriptor de acceso set o ambos. Sólo el descriptor de acceso get
(o set si no hay get) de una propiedad puede tener atributos personalizados que se apliquen a la propiedad como un todo.
Ambos descriptores de acceso, get y set, pueden recibir modificadores y atributos personalizados aplicables al descriptor de
acceso concreto. Los descriptores de acceso de propiedad no se pueden sobrecargar, pero se pueden ocultar o reemplazar.
Las propiedades se pueden especificar en la definición de una interfaz, pero no se puede dar una implementación en la
interfaz.
Ejemplo
El siguiente ejemplo muestra varias declaraciones de propiedad. En él, una propiedad Age queda definida como de lectura y
escritura. También se define una propiedad FavoriteColor de sólo lectura.

class CPerson {
// These variables are not accessible from outside the class.
private var privateAge : int;
private var privateFavoriteColor : String;

// Set the initial favorite color with the constructor.


function CPerson(inputFavoriteColor : String) {
privateAge = 0;
privateFavoriteColor = inputFavoriteColor;
}
// Define an accessor to get the age.
function get Age() : int {
return privateAge;
}
// Define an accessor to set the age, since ages change.
function set Age(inputAge : int) {
privateAge = inputAge;
}
// Define an accessor to get the favorite color.
function get FavoriteColor() : String {
return privateFavoriteColor;
}
// No accessor to set the favorite color, making it read only.
// This assumes that favorite colors never change.
}

var chris : CPerson = new CPerson("red");


// Set Chris's age.
chris.Age = 27;
// Read Chris's age.
print("Chris is " + chris.Age + " years old.");

// FavoriteColor can be read from, but not written to.


print("Favorite color is " + chris.FavoriteColor + ".");

Cuando se ejecuta este programa, muestra lo siguiente:

Chris is 27 years old.


Favorite color is red.

Requisitos
Versión .NET
Vea también
Referencia
class (Instrucción)
interface (Instrucción)
function (Instrucción)
function get (Instrucción)
Conceptos
Anotaciones de tipo
Otros recursos
Modificadores
JScript 8.0

@if...@elif...@else...@end (Instrucción)
Ejecuta de forma condicional un grupo de instrucciones, dependiendo del valor de una expresión.

@if (
condition1
)
text1
[@elif (
condition2
)
text2]
[@else
text3]
@end

Argumentos
condition1, condition2
Requerido. Expresión que puede convertirse en una expresión booleana.
text1
Opcional. Texto que se va a analizar si condition1 es True.
text2
Opcional. Texto que se va a analizar si condition1 es False y condition2 es True.
text3
Opcional. Texto que se va a analizar si condition1 y condition2 son False.
Comentarios
Cuando se escribe una instrucción @if, no es necesario colocar cada cláusula en una línea independiente. Se pueden utilizar
varias cláusulas @elif. Sin embargo, todas las cláusulas @elif deben estar delante de una cláusula @else.
Normalmente, la instrucción @if se utiliza para determinar qué texto, entre varias opciones, se debe utilizar para el resultado.
Ejemplo
El ejemplo siguiente muestra el uso de la instrucción @if...@else...@end.

@if (@_win32)
print("Operating system is 32-bit.");
@else
print("Operating system is not 32-bit.");
@end

Requisitos
Versión 3
Vea también
Referencia
@cc_on (Instrucción)
@set (Instrucción)
Conceptos
Variables de compilación condicional
Otros recursos
Compilación condicional
JScript 8.0

if...else (Instrucción)
Ejecuta de forma condicional un grupo de instrucciones, dependiendo del valor de una expresión.

if (condition)
statement1
[else
statement2]

Argumentos
condition
Necesario. Expresión booleana. Si el valor de condition es null o undefined, se trata como False.
statement1
Necesario. Instrucción que se va a ejecutar si condition es True. Puede ser una instrucción compuesta.
statement2
Opcional. Instrucción que se va a ejecutar si condition es False. Puede ser una instrucción compuesta.
Comentarios
Generalmente es una buena práctica encerrar statement1 y statement2 entre llaves ({}) en aras de una mayor claridad y para
evitar errores inadvertidos.
Ejemplo
En el ejemplo siguiente, se puede pensar que else se utiliza con la primera instrucción if pero, en realidad, se utiliza con la
segunda.

if (x == 5)
if (y == 6)
z = 17;
else
z = 20;

Si se cambia el código como se indica a continuación se elimina cualquier ambigüedad:

if (x == 5)
{
if (y == 6)
z = 17;
}
else
z = 20;

De forma similar, si se desea agregar una instrucción a statement1 y no se usan llaves, se puede crear un error
involuntariamente:

if (x == 5)
z = 7;
q = 42;
else
z = 19;

En este caso, existe un error de sintaxis, porque hay más de una instrucción entre las instrucciones if y else. Las llaves son
necesarias a ambos lados de las instrucciones entre if y else.
Requisitos
Versión 1
Vea también
Referencia
Operador condicional ternario (?:)
JScript 8.0

import (Instrucción)
Permite el acceso al espacio de nombres contenido en la secuencia de comandos actual o en una biblioteca externa.

import namespace

Argumentos
namespace
Necesario. Nombre del espacio de nombres que se importa.
Comentarios
La instrucción import crea una propiedad en el objeto global con el nombre proporcionado como espacio de nombres y lo
inicializa para que contenga el objeto que corresponde al espacio de nombres que se va a importar. Las propiedades creadas
con la instrucción import no se pueden asignar, eliminar o enumerar. Todas las instrucciones import se ejecutan cuando se
inicia una secuencia de comandos.
La instrucción import hace que un espacio de nombres esté disponible para la secuencia de comandos. El espacio de nombres
puede definirse en la secuencia de comandos mediante la instrucción package o bien proporcionarse con un ensamblado
externo. Si no se localiza el espacio de nombres en la secuencia de comandos, JScript buscará un ensamblado que coincida con
el nombre del espacio de nombres en los directorios del ensamblado especificado, a menos que se esté compilando el
programa y la opción /autoref esté desactivada. Por ejemplo, si importa el espacio de nombres Acme.Widget.Sprocket y no
está definido en la secuencia de comandos actual, JScript buscará el espacio de nombres en los siguientes ensamblados:
Acme.Widget.Sprocket.dll

Acme.Widget.dll

Acme.dll

Puede especificar explícitamente el nombre del ensamblado que se debe incluir. Esto se debe hacer si la opción /autoref está
desactivada o si el nombre del espacio de nombres no coincide con el nombre del ensamblado. El compilador de la línea de
comandos utiliza la opción /reference para especificar el nombre del ensamblado, mientras que ASP.NET utiliza las directivas
@ Import y @ Assembly. Por ejemplo, para incluir explícitamente el ensamblado mydll.dll, se deberá escribir en la línea de
comandos:

jsc /reference:mydll.dll myprogram.js

Para incluir el ensamblado desde una página ASP.NET, se deberá utilizar:

<%@ Import namespace = "mydll" %>


<%@ Assembly name = "mydll" %>

Cuando se hace referencia a una clase en el código, el compilador busca primero la clase en el ámbito local. Si el compilador
no encuentra ninguna clase coincidente, la buscará en cada uno de los espacios de nombres, en el mismo orden en que se
importaron, y se detendrá cuando encuentre una clase coincidente. Puede utilizar el nombre completo de la clase para estar
seguro del espacio de nombres del que deriva la clase.
JScript no importa automáticamente espacios de nombres anidados; cada espacio de nombres se debe importar utilizando el
espacio de nombres completo. Por ejemplo, para tener acceso a clases desde un espacio de nombres denominado Outer y un
espacio de nombres anidado denominado Outer.Inner, se deberán importar ambos espacios de nombres.
Ejemplo
El siguiente ejemplo define tres sencillos paquetes e importa los espacios de nombres en la secuencia de comandos.
Normalmente, cada paquete estaría en un ensamblado diferente para permitir el mantenimiento y la distribución del
contenido del paquete.

// Create a simple package containing a class with a single field (Hello).


package Deutschland {
class Greeting {
static var Hello : String = "Guten tag!";
}
};
// Create another simple package containing two classes.
// The class Greeting has the field Hello.
// The class Units has the field distance.
package France {
public class Greeting {
static var Hello : String = "Bonjour!";
}
public class Units {
static var distance : String = "meter";
}
};
// Use another package for more specific information.
package France.Paris {
public class Landmark {
static var Tower : String = "Eiffel Tower";
}
};
// Declare a local class that shadows the imported classes.
class Greeting {
static var Hello : String = "Greetings!";
}

// Import the Deutschland, France, and France.Paris packages.


import Deutschland;
import France;
import France.Paris;

// Access the package members with fully qualified names.


print(Greeting.Hello);
print(France.Greeting.Hello);
print(Deutschland.Greeting.Hello);
print(France.Paris.Landmark.Tower);
// The Units class is not shadowed, so it can be accessed with or without a fully qualified
name.
print(Units.distance);
print(France.Units.distance);

El resultado de esta secuencia de comandos es:

Greetings!
Bonjour!
Guten tag!
Eiffel Tower
meter
meter

Requisitos
Versión .NET
Vea también
Referencia
package (Instrucción)
/autoref
/lib
@ Assembly
@ Import
JScript 8.0

interface (Instrucción)
Declara el nombre de una interfaz, así como las propiedades y métodos que contiene.

[modifiers] interface interfacename [implements baseinterfaces] {


[interfacemembers]
}

Argumentos
modifiers
Opcional. Modificadores que controlan la visibilidad y el comportamiento de la propiedad.
interfacename
Necesario. Nombre de la interface. Sigue las convenciones de nomenclatura estándar de las variables.
implements
Opcional. Palabra clave que indica que la interfaz con nombre implementa o agrega miembros a una interfaz definida
anteriormente. Si no se utiliza esta palabra clave, se crea una interfaz base estándar de JScript.
baseinterfaces
Opcional. Lista de nombres de interfaz separados con comas que implementa interfacename.
interfacemembers
Opcional. interfacemembers puede referirse tanto a declaraciones de método (definidas con la instrucción function) como a
declaraciones de propiedad (definidas con las instrucciones function get y function set).
Comentarios
La sintaxis de las declaraciones de interface en JScript es similar a la de las declaraciones de class. Una interfaz es como una
clase (class) en la que cada miembro es abstract; sólo puede contener declaraciones de propiedad y de método sin cuerpos de
función. Una interfaz (interface) puede no contener declaraciones de campo, declaraciones de inicializador o declaraciones de
clase anidada. Una interface puede implementar una o más interfaces utilizando la palabra clave implements.
Una clase puede ampliar sólo una clase base, pero puede implementar muchas interfaces. Esta implementación de varias
interfaces por parte de una sola clase hace posible una forma de herencia múltiple más sencilla que en otros lenguajes
orientados a objetos, como C++.
Ejemplo
El siguiente código muestra cómo varias interfaces pueden heredar una implementación:

interface IFormA {
function displayName();
}

// Interface IFormB shares a member name with IFormA.


interface IFormB {
function displayName();
}
// Class CForm implements both interfaces, but only one implementation of
// the method displayName is given, so it is shared by both interfaces and
// the class itself.
class CForm implements IFormA, IFormB {
function displayName() {
print("This the form name.");
}
}
// Three variables with different data types, all referencing the same class.
var c : CForm = new CForm();
var a : IFormA = c;
var b : IFormB = c;

// These do exactly the same thing.


a.displayName();
b.displayName();
c.displayName();

El resultado de este programa es:

This the form name.


This the form name.
This the form name.

Requisitos
Versión .NET
Vea también
Referencia
class (Instrucción)
function (Instrucción)
function get (Instrucción)
function set (Instrucción)
Otros recursos
Modificadores
JScript 8.0

Instrucción con etiqueta


Proporciona un identificador para una instrucción.

label :
[statements]

Argumentos
label
Necesario. Identificador único que se utiliza al hacer referencia a la instrucción con etiqueta.
statements
Opcional. Instrucción o instrucciones asociadas a label.
Comentarios
Las instrucciones break y continue utilizan etiquetas para especificar la instrucción a la que se aplican dichas instrucciones.
Ejemplo
En la siguiente instrucción, la instrucción continue utiliza una instrucción con etiqueta para crear una matriz en la que la
tercera columna de cada fila contiene un valor no definido:

function labelDemo() {
var a = new Array();
var i, j, s = "", s1 = "";
Outer:
for (i = 0; i < 5; i++) {
Inner:
for (j = 0; j < 5; j++) {
if (j == 2)
continue Inner;
else
a[i,j] = j + 1;
}
}
for (i = 0;i < 5; i++) {
s = ""
for (j = 0; j < 5; j++) {
s += a[i,j];
}
s1 += s + "\n";
}
return(s1)
}

Requisitos
Versión 3
Vea también
Referencia
break (Instrucción)
continue (Instrucción)
JScript 8.0

package (Instrucción)
Crea un paquete de JScript que permite el correcto empaquetado de componentes con nombre.

package pname {
[[modifiers1] pmember1]
...
[[modifiersN] pmemberN]
}

Argumentos
pname
Necesario. Nombre del paquete que se va a crear.
modifiers1, ..., modifiersN
Opcional. Modificadores que controlan la visibilidad y el comportamiento del miembro de la clase.
pmember1, ..., pmemberN
Opcional. Definición de clase, interfaz o enumeración.
Comentarios
Sólo se permiten clases, interfaces y enumeraciones dentro de un paquete. Los miembros de un paquete se pueden marcar
con modificadores de visibilidad para ayudar a controlar el acceso a los mismos. En concreto, el modificador internal marca
un miembro como visible sólo en el paquete actual.
Una vez que se ha importado un paquete, se puede tener acceso a los miembros del paquete directamente por el nombre,
excepto cuando un miembro tiene el mismo nombre que otra declaración visible en el ámbito donde se está importando.
Cuando esto ocurre, el miembro deberá completarse con su nombre de paquete.
JScript no admite la declaración de paquetes anidados; sólo pueden aparecer declaraciones de clase, interfaz y enumeración en
un paquete. El nombre de paquete puede incluir un carácter '.' para indicar que se debe considerar como anidado dentro de
otro paquete. Por ejemplo, un paquete con nombre Outer y otro con nombre Outer.Inner no tienen por qué tener una
relación especial entre ellos; ambos son paquetes en el ámbito global. Sin embargo, los nombres implican que Outer.Inner se
debe considerar como anidado dentro de Outer.
Ejemplo
El siguiente ejemplo define tres sencillos paquetes e importa los espacios de nombres en la secuencia de comandos.
Normalmente, cada paquete estaría en un ensamblado diferente para permitir el mantenimiento y la distribución del
contenido del paquete.

// Create a simple package containing a class with a single field (Hello).


package Deutschland {
class Greeting {
static var Hello : String = "Guten tag!";
}
};
// Create another simple package containing two classes.
// The class Greeting has the field Hello.
// The class Units has the field distance.
package France {
public class Greeting {
static var Hello : String = "Bonjour!";
}
public class Units {
static var distance : String = "meter";
}
};
// Use another package for more specific information.
package France.Paris {
public class Landmark {
static var Tower : String = "Eiffel Tower";
}
};

// Declare a local class that shadows the imported classes.


class Greeting {
static var Hello : String = "Greetings!";
}
// Import the Deutschland, France, and France.Paris packages.
import Deutschland;
import France;
import France.Paris;
// Access the package members with fully qualified names.
print(Greeting.Hello);
print(France.Greeting.Hello);
print(Deutschland.Greeting.Hello);
print(France.Paris.Landmark.Tower);
// The Units class is not shadowed, so it can be accessed with or without a fully qualified
name.
print(Units.distance);
print(France.Units.distance);

El resultado de esta secuencia de comandos es:

Greetings!
Bonjour!
Guten tag!
Eiffel Tower
meter
meter

Requisitos
Versión .NET
Vea también
Referencia
import (Instrucción)
internal (Modificador)
Otros recursos
Modificadores
JScript 8.0

print (Instrucción)
Envía una cadena a la consola seguida de un carácter de línea nueva.

function print(str : String)

Parámetros
str
Opcional. Cadena que se va a enviar a la consola.
Comentarios
La instrucción print permite mostrar datos de un programa JScript compilado con el compilador de la línea de comandos de
JScript, jsc.exe. La instrucción print toma una sola cadena como parámetro y la muestra seguida de un carácter de línea
nueva, con lo que la envía a la consola.
Puede utilizar secuencias de escape en las cadenas que pase a la instrucción print para dar formato al resultado. Las
secuencias de escape son combinaciones de caracteres que consisten en una barra inversa (\) seguida de una letra o una
combinación de dígitos. Se pueden utilizar para especificar acciones como retornos de carro y movimientos de tabulador.
Encontrará más información sobre los caracteres de escape en el tema sobre el objeto String. Se puede utilizar el método
System.Console.WriteLine cuando se requiera control preciso del formato del resultado de la consola.
La instrucción print está habilitada de manera predeterminada en el compilador de la línea de comandos de JScript, jsc.exe. La
instrucción print está deshabilitada en ASP.NET y se puede deshabilitar para el compilador de línea de comandos utilizando la
opción /print-.
Cuando no hay una consola en la que imprimir (por ejemplo, en una aplicación de la interfaz gráfica de usuario de Windows),
la instrucción print falla sin comunicar el error.
El resultado de la instrucción print se puede redirigir a un archivo desde la línea de comandos. Si espera que el resultado de
un programa se redirija, debe incluir el carácter de escape \r al final de cada una de las líneas impresas. Esto da lugar a que se
redirija el resultado a un archivo para que tome el formato correcto y no afecta al modo en que se muestran las líneas en la
consola.
Ejemplo
El siguiente ejemplo muestra un uso de la instrucción print:

var name : String = "Fred";


var age : int = 42;
// Use the \t (tab) and \n (newline) escape sequences to format the output.
print("Name: \t" + name + "\nAge: \t" + age);

El resultado de esta secuencia de comandos es:

Name: Fred
Age: 42

Vea también
Referencia
/print
String (Objeto)
Console Class
Conceptos
Mostrar datos desde un programa de la línea de comandos
JScript 8.0

return (Instrucción)
Sale de la función actual y devuelve un valor desde esa función.

return[(][expression][)]

Argumentos
expression
Opcional. Valor que se devolverá de la función. Si se omite, la función no devuelve ningún valor.
Comentarios
La instrucción return se utiliza para detener la ejecución de una función y devolver el valor del argumento expression. Si se
omite este argumento, o si la instrucción return no se ejecuta desde la función, se asigna el valor undefined a la expresión
que llamó a la función actual.
La ejecución de la función se detiene cuando se ejecuta la instrucción return, incluso si hay cualquier otra instrucción en el
cuerpo de la función. La excepción a esta regla se da si la instrucción return se produce en un bloque try y hay un bloque
finally correspondiente, el código del bloque finally se ejecutará antes de que la función termine.
Si una función termina porque llega al final del cuerpo de la función sin ejecutar una instrucción return, el valor devuelto es el
valor undefined (lo que significa que el resultado de la función no se puede utilizar como parte de una expresión mayor).
Nota
El código de un bloque finally se ejecuta tras encontrarse una instrucción return en un bloque try o catch, pero antes de qu
e se ejecute dicha instrucción return. En esta situación, la instrucción return del bloque finally se ejecuta before que la instr
ucción return inicial, lo que tiene en cuenta un valor devuelto diferente. Para evitar esta situación potencialmente confusa, n
o utilice una instrucción return en un bloque finally.

Ejemplo
En el siguiente ejemplo se muestra el uso de la instrucción return.

function myfunction(arg1, arg2){


var r;
r = arg1 * arg2;
return(r);
}

Requisitos
Versión 1
Vea también
Referencia
function (Instrucción)
try...catch...finally (Instrucción)
JScript 8.0

@set (Instrucción)
Crea variables utilizadas con instrucciones de compilación condicional.

@set @varname = term

Argumentos
varname
Necesario. Nombre válido de variable de JScript. Debe ir siempre precedido de un carácter "@".
term
Necesario. Cero o más operadores unarios seguidos de una constante, variable de compilación condicional o expresión entre
paréntesis.
Comentarios
Las variables de tipo numérico y booleano se admiten en la compilación condicional. Las variables de cadena no se aceptan.
Las variables creadas mediante @set se utilizan generalmente en instrucciones de compilación condicional, pero se pueden
utilizar en cualquier parte del código JScript.
Los ejemplos de declaraciones de variable tienen este aspecto:

@set @myvar1 = 12
@set @myvar2 = (@myvar1 * 20)
@set @myvar3 = @_jscript_version

En las expresiones entre paréntesis se admiten los siguientes operadores:


! ~

* / %

+ -

<< >> >>>

< <= > >=

== != === !==

& ^ |

&& | |

Si se utiliza una variable antes de que se haya definido, su valor es NaN. Puede comprobarse NaN para utilizar la instrucción
@if:

@if (@newVar != @newVar)


// ...

Esto es posible porque NaN es el único valor que no es igual a sí mismo.


Requisitos
Versión 3
Vea también
Referencia
@cc_on (Instrucción)
@if...@elif...@else...@end (Instrucción)
Conceptos
Variables de compilación condicional
Otros recursos
Compilación condicional
JScript 8.0

static (Instrucción)
Declara un inicializador de clase nuevo dentro de una declaración de clase.

static identifier {
[body]
}

Argumentos
identifier
Requerido. Nombre de la clase que contiene el bloque inicializador.
body
Opcional. Código que compone el bloque inicializador.
Comentarios
Un inicializador static se utiliza para inicializar un objeto class (no instancias de objeto) antes de su primer uso. Esta
inicialización tiene lugar una vez y se puede utilizar para inicializar campos en la clase que tiene el modificador static.
Un objeto class puede contener varios bloques inicializadores static alternados con declaraciones de campo static. Para
inicializar un objeto class, todos los bloques static y los inicializadores de campo static se ejecutan en el orden en el que
aparecen en el cuerpo del objeto class. Esta inicialización se lleva a cabo antes de la primera referencia a un campo static.
No confunda el modificador static con la instrucción static. El modificador static denota un miembro que pertenece a la clase
en sí, no una instancia de la clase.
Ejemplo
El siguiente ejemplo muestra una declaración de class sencilla en la que se utiliza el inicializador static para realizar un cálculo
que sólo es preciso realizar una vez. En este ejemplo se calcula una tabla de factoriales una sola vez. Cuando se necesitan los
factoriales, se leen de la tabla. Si se precisan factoriales grandes varias veces en el programa, este método resultará más rápido
que calcular los factoriales de manera recursiva.
Se utiliza el modificador static para el método factorial:

class CMath {
// Dimension an array to store factorial values.
// The static modifier is used in the next two lines.
static const maxFactorial : int = 5;
static const factorialArray : int[] = new int[maxFactorial];

static CMath {
// Initialize the array of factorial values.
// Use factorialArray[x] = (x+1)!
factorialArray[0] = 1;
for(var i : int = 1; i< maxFactorial; i++) {
factorialArray[i] = factorialArray[i-1] * (i+1);
}
// Show when the initializer is run.
print("Initialized factorialArray.");
}
static function factorial(x : int) : int {
// Should have code to check that x is in range.
return factorialArray[x-1];
}
};

print("Table of factorials:");
for(var x : int = 1; x <= CMath.maxFactorial; x++) {
print( x + "! = " + CMath.factorial(x) );
}

El resultado de este código es:

Table of factorials:
Initialized factorialArray.
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120

Requisitos
Versión .NET
Vea también
Referencia
class (Instrucción)
static (Modificador)
JScript 8.0

super (Instrucción)
Hace referencia al objeto base del objeto actual. Se puede utilizar en dos contextos.

// Syntax 1: Calls the base-class constructor with arguments.


super(arguments)

// Syntax 2: Accesses a member of the base class.


super.member

Argumentos
arguments
Opcional en la sintaxis 1. Lista de argumentos separados con comas para el constructor de la clase base.
member
Obligatorio en la sintaxis 2. Miembro de la clase base al que se va a tener acceso.
Comentarios
La palabra clave super se suele utilizar en una de dos situaciones. Puede utilizarla para llamar explícitamente al constructor de
la clase base con uno o más argumentos. También puede utilizarla para tener acceso a miembros de la clase base que ha
reemplazado la clase actual.
Ejemplo 1
En el siguiente ejemplo, super hace referencia al constructor de la clase base:

class baseClass {
function baseClass() {
print("Base class constructor with no parameters.");
}
function baseClass(i : int) {
print("Base class constructor. i is "+i);
}
}
class derivedClass extends baseClass {
function derivedClass() {
// The super constructor with no arguments is implicitly called here.
print("This is the derived class constructor.");
}
function derivedClass(i : int) {
super(i);
print("This is the derived class constructor.");
}
}
new derivedClass;
new derivedClass(42);

Este programa muestra el siguiente resultado cuando se ejecuta:

Base class constructor with no parameters.


This is the derived class constructor.
Base class constructor. i is 42
This is the derived class constructor.

Ejemplo 2
En el siguiente ejemplo, super permite el acceso a un miembro reemplazado de la clase base:

class baseClass {
function test() {
print("This is the base class test.");
}
}
class derivedClass extends baseClass {
function test() {
print("This is the derived class test.");
super.test(); // Call the base class test.
}
}

var obj : derivedClass = new derivedClass;


obj.test();

Este programa muestra el siguiente resultado cuando se ejecuta:

This is the derived class test.


This is the base class test.

Requisitos
Versión .NET
Vea también
Referencia
new (Operador)
this (Instrucción)
JScript 8.0

switch (Instrucción)
Permite la ejecución de una o más instrucciones cuando el valor de una expresión especificada coincide con una etiqueta.

switch (expression) {
case label1 :
[statementlist1]
[break;]
[ ...
[ case labelN :
[statementlistN]
[break;] ] ]
[ default :
[statementlistDefault]]
}

Argumentos
expression
Requerido. Expresión que se va a evaluar.
label1, ..., labelN
Requerido. Identificador con el que se compara expression. Si label === expression, la ejecución comienza con la lista de
instrucciones inmediatamente después de los dos puntos y continúa hasta que se encuentra con una instrucción break, que
es opcional, o con el final de la instrucción switch .
statementlist1, ..., statementlistN, statementlistDefault
Opcional. Instrucción o instrucciones que se van a ejecutar.
Comentarios
Utilice la cláusula default para proporcionar una instrucción que se ejecute en caso de que ninguno de los valores de las
etiquetas coincida con expression. Puede incluirse en cualquier parte del bloque de código de la instrucción switch.
Se pueden especificar cero o más bloques label. Si ninguno de los argumentos label coincide con el valor de expression y no se
proporciona una cláusula default, no se ejecuta ninguna instrucción.
El flujo de la ejecución a lo largo de una instrucción switch procede de la siguiente manera:
Evalúa expression y examina label por orden hasta encontrar una coincidencia.
Si el valor de un argumento label es igual al de expression, ejecuta la lista de instrucciones que le acompaña.
La ejecución continúa hasta que se encuentra una instrucción break, o hasta que la instrucción switch finaliza. Esto
implica la ejecución de varios bloques label si no se utiliza una instrucción break.
Si no hay ningún argumento label igual al argumento expression, pasa a la cláusula default. Si no hay cláusula default,
se dirige al último paso.
La ejecución continúa en la instrucción que sigue al final del bloque de código de la instrucción switch.
Ejemplo
El siguiente ejemplo de ASP.NET comprueba el tipo de un objeto. En este caso, sólo se utiliza un tipo pero se puede ver
claramente cómo funciona la función con otros tipos de objetos.

<%@ language="jscript" %>


<%
var d = new Number();
function MyObjectType(obj : Object) : String {
switch (obj.constructor){
case Date:
return "Object is a Date.";
break;
case Number:
return "Object is a Number.";
break;
case String:
return "Object is a String.";
break;
default:
return "Object is unknown.";
}
}
Response.Write(MyObjectType(d));
%>

Requisitos
Versión 3
Vea también
Referencia
break (Instrucción)
if...else (Instrucción)
JScript 8.0

this (Instrucción)
Hace referencia al objeto actual.

this.property

Argumentos
property
Necesario. Identificador de una propiedad del objeto actual.
Comentarios
La palabra clave this se utiliza generalmente en constructores de objetos para hacer referencia al objeto actual.
Ejemplo
En el ejemplo siguiente, la palabra this hace referencia al objeto Car recién creado y asigna valores a tres de sus propiedades:

function Car(color, make, model){


this.color = color;
this.make = make;
this.model = model;
}

Para versiones cliente de JScript, la palabra clave this hace referencia al objeto window si se utiliza fuera del contexto de
cualquier otro objeto.
Requisitos
Versión 1
Vea también
Referencia
new (Operador)
JScript 8.0

throw (Instrucción)
Genera una condición de error que se puede controlar con una instrucción try...catch...finally.

throw [exception]

Argumentos
exception
Opcional. Cualquier expresión.
Comentarios
La instrucción throw se puede utilizar sin ningún argumento, pero sólo si está contenida en un bloque catch. En ese caso, la
instrucción throw vuelve a producir el error captado por la instrucción catch contenedora. Cuando se proporciona un
argumento, la instrucción throw produce el valor de exception.
Ejemplo
En el ejemplo siguiente se produce un error basado en un valor pasado y, a continuación, se muestra cómo se controla ese
error en una jerarquía de instrucciones try...catch...finally:

function TryCatchDemo(x){
try {
try {
if (x == 0) // Evalute argument.
throw "x equals zero"; // Throw an error.
else
throw "x does not equal zero"; // Throw a different error.
}
catch(e) { // Handle "x=0" errors here.
if (e == "x equals zero") // Check for a handled error.
return(e + " handled locally."); // Return error message.
else // Can't handle error here.
throw e; // Rethrow the error for next
} // error handler.
}
catch(e) { // Handle other errors here.
return(e + " error handled higher up."); // Return error message.
}
}
print(TryCatchDemo(0)+ "\n");
print(TryCatchDemo(1));

Requisitos
Versión 5
Vea también
Referencia
try...catch...finally (Instrucción)
Error (Objeto)
JScript 8.0

try...catch...finally (Instrucción)
Implementa el control de errores para JScript.

try {
[tryStatements]
} catch(exception) {
[catchStatements]
} finally {
[finallyStatements]}

Argumentos
tryStatements
Opcional. Instrucciones donde puede producirse un error.
exception
Requerido. Cualquier nombre de variable. El valor inicial de exception es el valor del error producido.
catchStatements
Opcional. Instrucciones para controlar los errores que tienen lugar en los argumentos tryStatements asociados.
finallyStatements
Opcional. Instrucciones que se ejecutan incondicionalmente después de que se hayan procesado todos los demás errores.
Comentarios
La instrucción try...catch...finally proporciona un medio para controlar una parte o la totalidad de los errores que pueden
producirse en un bloque de código determinado, mientras se sigue ejecutando el código. Si se producen errores que el
programador no ha controlado, JScript se limita a proporcionar su mensaje de error normal al usuario, como si no hubiera
control de errores.
El argumento tryStatements contiene código donde puede producirse un error, mientras que el argumento catchStatements
contiene el código para controlar cualquier error que tenga lugar. Si se genera un error en el argumento tryStatements, el
control de programas se pasa al argumento catchStatements para su procesamiento. El valor inicial de exception es el valor del
error que se produjo en tryStatements. Si no se produce ningún error, las instrucciones de catchStatements nunca se ejecutan.
Si no es posible controlar el error en las instrucciones catchStatements asociadas al argumento tryStatements donde tuvo
lugar el error, utilice la instrucción throw para transmitir o volver a producir el error en un controlador de errores de nivel
superior.
Después de ejecutarse todas las instrucciones de tryStatements y procesarse todo el control de errores en catchStatements, se
ejecutan incondicionalmente las instrucciones de finallyStatements
Hay que tener en cuenta que el código incluido en finallyStatements se ejecuta incluso aunque haya una instrucción return
dentro de los bloques try o catch, o si el bloque catch produce un error. La ejecución de finallyStatements siempre está
garantizada.
Ejemplo
El siguiente ejemplo muestra cómo funciona el control de excepciones en JScript:

try {
print("Outer try running...");
try {
print("Nested try running...");
throw "an error";
} catch(e) {
print("Nested catch caught " + e);
throw e + " re-thrown";
} finally {
print("Nested finally is running...");
}
} catch(e) {
print("Outer catch caught " + e);
} finally {
print("Outer finally running");
}

Esto produce el siguiente resultado:

Outer try running..


Nested try running...
Nested catch caught an error
Nested finally is running...
Outer catch caught an error re-thrown
Outer finally running

Requisitos
Versión 5
Vea también
Referencia
throw (Instrucción)
Error (Objeto)
JScript 8.0

var (Instrucción)
Declara una variable.

// Syntax for declaring a variable of global scope or function scope.


var name1 [: type1] [= value1] [, ... [, nameN [: typeN] [= valueN] ]]

// Syntax for declaring a variable field within a class.


[attributes] [modifiers] var name1 [: type1] [= value1] [, ... [, nameN [: typeN] [= value
N].]]

Argumentos
attributes
Opcional. Atributos que controlan la visibilidad y el comportamiento del campo.
modifiers
Opcional. Modificadores que controlan la visibilidad y el comportamiento del campo.
name1, ..., nameN
Necesario. Nombres de las variables que se declaran.
type1, ..., typeN
Opcional. Tipos de las variables que se declaran.
value1, ..., valueN
Opcional. Valor inicial asignado a la variable.
Comentarios
Utilice la instrucción var para declarar variables. Una variable puede estar enlazada a un tipo de datos específico para ayudar a
garantizar la seguridad del tipo. A estas variables se les pueden asignar valores cuando se declaren, valores que se podrán
cambiar más adelante en la secuencia de comandos. A las variables que no se inicializan de forma explícita se les asigna el
valor predeterminado de undefined (convertido en el tipo de variable si es necesario).
Un campo de variable perteneciente a una clase es similar a una variable global o de función, con la excepción de que su
ámbito es la clase y de que puede tener varias variables para controlar su visibilidad y uso.
Ejemplo
El ejemplo siguiente muestra ciertos usos de la instrucción var.

class Simple {
// A field declaration of the private Object myField.
private var myField : Object;
// Define sharedField to be a static, public field.
// Only one copy exists, and is shared by all instances of the class.
static public var sharedField : int = 42;
}
var index;
var name : String = "Thomas Jefferson";
var answer : int = 42, counter, numpages = 10;
var simpleInst : Simple = new Simple;

Requisitos
Versión 1
Vea también
Referencia
const (Instrucción)
function (Instrucción)
new (Operador)
Conceptos
Ámbito de variables y constantes
Anotaciones de tipo
Otros recursos
Modificadores
JScript 8.0

while (Instrucción)
Ejecuta una instrucción hasta que la condición especificada sea igual a False.

while (expression)
statement

Argumentos
expression
Requerido. Expresión booleana comprobada antes de cada iteración del bucle. Si al evaluar expression devuelve True, el
bucle se ejecuta. Si al evaluar expression devuelve False, el bucle termina.
statement
Requerido. Instrucción que se va a ejecutar si el argumento expression es True. Puede ser una instrucción compuesta.
Comentarios
La instrucción while comprueba el argumento expression antes de que se ejecute el bucle por primera vez. Si al evaluar
expression devuelve False en este momento, el bucle nunca llega a ejecutarse.
Ejemplo
En el siguiente ejemplo se muestra el uso de la instrucción while.

function BreakTest(breakpoint){
var i = 0;
while (i < 100) {
if (i == breakpoint)
break;
i++;
}
return(i);
}

Requisitos
Versión 1
Vea también
Referencia
break (Instrucción)
continue (Instrucción)
do...while (Instrucción)
for (Instrucción)
for...in (Instrucción)
JScript 8.0

with (Instrucción)
Establece el objeto predeterminado para una instrucción.

with (object)
statement

Argumentos
object
Necesario. Nuevo objeto predeterminado.
statement
Necesario. Instrucciones para las que el argumento object es el objeto predeterminado. Puede ser una instrucción
compuesta.
Comentarios
La instrucción with se utiliza habitualmente para reducir el volumen de código que se ha de escribir en determinadas
circunstancias.
Ejemplo
En el ejemplo siguiente, observe el uso repetido de Math.

var x, y;
x = Math.cos(3 * Math.PI) + Math.sin(Math.LN10);
y = Math.tan(14 * Math.E);

Si se utiliza la instrucción with, el código se reduce y se puede leer con mayor facilidad:

var x, y;
with (Math){
x = cos(3 * PI) + sin (LN10);
y = tan(14 * E);
}

Requisitos
Versión 1
Vea también
Referencia
this (Instrucción)
JScript 8.0

Opciones del compilador de JScript


El compilador de JScript genera archivos ejecutables (.exe) y bibliotecas de vínculos dinámicos (.dll).
Todas las opciones del compilador están disponibles de dos formas: -opción y /opción. En la documentación sólo se
proporciona la forma /option.
En esta sección
Opciones del compilador de JScript, por orden alfabético
Proporciona una lista de opciones del compilador en orden alfabético ascendente.
Opciones del compilador de JScript, por categoría
Proporciona una lista de opciones del compilador ordenadas en las categorías siguientes: archivos de resultados,
ensamblados de .NET Framework, depuración y comprobación de errores, preprocesador, recursos y varios.
Secciones relacionadas
Generar desde la línea de comandos
Explica detalles, tales como la sintaxis o los resultados, relacionados con la creación de aplicaciones de JScript desde la línea
de comandos.
Escribir, compilar y depurar código JScript
Explica cómo utilizar el entorno de desarrollo integrado (IDE) de Visual Studio para escribir y editar código JScript.
JScript 8.0

Opciones del compilador de JScript, por orden alfabético


Las siguientes opciones del compilador están ordenadas alfabéticamente.
Opciones del compilador
Opción Finalidad
@ (especificar archivo de respuesta) Especifica un archivo de respuesta.

/autoref Hace automáticamente referencia a los ensamblados si tienen el mismo nombre que un e
spacio de nombres importado o que una anotación de tipo al declarar una variable.

/codepage Especifica la página de códigos que debe utilizarse para todos los archivos de código fuen
te en la compilación.

/debug Proporciona información de depuración.

/define Define los símbolos de preprocesador.

/fast Genera un archivo de resultados optimizado para la velocidad pero que no admite deter
minadas características del lenguaje de versiones anteriores.

/help, /? Muestra las opciones del compilador en stdout.

/lcid Especifica la página de códigos para los mensajes del compilador.

/lib Especifica la ubicación de los ensamblados a los que se hace referencia mediante
/reference.

/linkresource Crea un vínculo a un recurso administrado.

/nologo Suprime la pantalla de bienvenida del compilador.

/nostdlib No importa la biblioteca estándar (mscorlib.dll).

/out Especifica el nombre del archivo de resultados.

/platform (JScript) Especifica el tipo de plataforma.

/print Especifica si está disponible la instrucción Print.

/reference Importa metadatos de un archivo que contiene un ensamblado.

/resource Incrusta un recurso administrado en un ensamblado.

/target Especifica el formato del archivo resultante mediante una de las tres opciones
siguientes:
/target:exe/target:library/target:winexe

/utf8output Muestra los resultados del compilador mediante la codificación UTF-8.

/versionsafe Ayuda a asegurarse de que todos los reemplazos son explícitos.

/warn Establece el nivel de advertencia.


/warnaserror Promueve advertencias a errores.

/win32res Inserta un recurso Win32 en el archivo de resultados.

Vea también
Conceptos
Opciones del compilador de JScript, por categoría
Generar desde la línea de comandos
Otros recursos
Opciones del compilador de JScript
JScript 8.0

Opciones del compilador de JScript, por categoría


Las siguientes opciones del compilador están ordenadas por categoría.
Opciones del compilador
Archivos de resultados
Opció Finalidad
n
/out Especifica el nombre del archivo de resultados.

/target Especifica el formato del archivo resultante mediante una de las tres opciones
siguientes:
/target:exe/target:library/target:winexe.
Ensamblados de .NET Framework
Opción Finalidad
/autoref Hace automáticamente referencia a los ensamblados si tienen el mismo nombre que un espacio de nombres impor
tado o que una anotación de tipo al declarar una variable.

/lib Especifica la ubicación de los ensamblados a los que se hace referencia mediante /reference.

/nostdlib No importa la biblioteca estándar (mscorlib.dll).

/reference Importa metadatos de un archivo que contiene un ensamblado.


Depuración y comprobación de errores
Opción Finalidad
/debug Proporciona información de depuración.

/lcid Especifica la página de códigos para los mensajes del compilador.

/versionsafe Ayuda a asegurarse de que todos los reemplazos son explícitos.

/warn Establece el nivel de advertencia.

/warnaserror Promueve advertencias a errores.


Preprocesador
Opción Finalidad
/define Define los símbolos de preprocesador.
Recursos
Opción Finalidad
/linkresource Crea un vínculo a un recurso administrado.

/resource Incrusta un recurso administrado en un ensamblado.

/win32res Inserta un recurso Win32 en el archivo de resultados.


Varios
Opción Finalidad
@ (especificar archivo de respuesta) Especifica un archivo de respuesta.
/codepage Especifica la página de códigos que debe utilizarse para todos los archivos de código fuen
te en la compilación.

/fast Genera un archivo de resultados optimizado para la velocidad pero que no admite deter
minadas características del lenguaje de versiones anteriores.

/help, /? Muestra las opciones del compilador en stdout.

/nologo Suprime la pantalla de bienvenida del compilador.

/platform (JScript) Especifica el tipo de plataforma.

/print Especifica si se va a definir la instrucción Print.

/utf8output Muestra los resultados del compilador mediante la codificación UTF-8.

Vea también
Conceptos
Opciones del compilador de JScript, por orden alfabético
Generar desde la línea de comandos
Otros recursos
Opciones del compilador de JScript
JScript 8.0

Generar desde la línea de comandos


El compilador se puede iniciar desde la línea de comandos, escribiendo en ella el nombre de su archivo ejecutable (jsc.exe).
Para obtener más información, vea Compilar código JScript desde la línea de comandos.
Líneas de comandos de ejemplo
Compila File.js y genera File.exe:

jsc File.js

Compila File.js y genera File.dll:

jsc /target:library File.js

Compila File.js y crea My.exe:

jsc /out:My.exe File.js

Compila test.js y crea un archivo .dll:

jsc /target:library test.js

Vea también
Tareas
Cómo: Compilar código JScript en la línea de comandos
Otros recursos
Opciones del compilador de JScript
JScript 8.0

@ (especificar archivo de respuesta)


Especifica un archivo de respuesta.

@response_file

Argumentos
response_file
Archivo que especifica opciones del compilador o archivos de código fuente para compilar.
Comentarios
La opción @ permite especificar un archivo que contiene opciones del compilador y archivos de código fuente para compilar.
Estas opciones de compilador y archivos de código fuente serán procesados por el compilador como si fuesen especificados en
la línea de comandos.
Para especificar varios archivos de respuesta en una compilación, hay que especificar varias opciones de archivo de respuesta.
Por ejemplo:

@file1.rsp @file2.rsp

En una misma línea de un archivo de respuesta, pueden aparecer varias opciones del compilador y archivos de código fuente.
Una especificación de opción del compilador debe aparecer en una única línea (no puede abarcar varias líneas).
Los archivos de respuesta pueden contener comentarios que empiezan con el símbolo #.
Especificar opciones del compilador desde un archivo de respuesta produce el mismo efecto que incluir esos comandos en la
línea de comandos. Para obtener más información, vea Generar desde la línea de comandos.
El compilador procesa las opciones de comando a medida que las detecta, como si fuesen escritas en la línea de comandos. Por
ello, las opciones de un archivo de respuesta pueden ser incompatibles con las de otro archivo de respuesta o las opciones de
línea de comandos. Esto puede generar errores.
Los archivos de respuesta no se pueden anidar. No se puede incluir @response_file en un archivo de respuesta. El compilador
de JScript genera un error en estos casos.
Ejemplo
A continuación, se muestran algunas líneas de un archivo de respuesta de ejemplo:

# build the first output file


/target:exe /out:MyExe.exe source1.js source2.js

Vea también
Otros recursos
Opciones del compilador de JScript
JScript 8.0

/autoref
Hace automáticamente referencia a los ensamblados si tienen el mismo nombre que un espacio de nombres importado o que
una anotación de tipo al declarar una variable.

/autoref[+ | -]

Argumentos
+| -
Está activado de manera predeterminada, salvo que se especifique /nostdlib+. Si se especifica /autoref+ o simplemente
/autoref, el compilador hará automáticamente referencia a ensamblados basados en espacios de nombres importados y en
nombres completos.
Comentarios
La opción /autoref da instrucciones al compilador para que haga referencia a ensamblados sin tener que pasar el ensamblado
a /reference. Al utilizar import para importar un espacio de nombres, o cuando se utiliza un nombre de tipo completo en el
código, el compilador de JScript busca un ensamblado que contenga el tipo. Vea /lib para obtener una descripción del modo
en que el compilador de JScript busca los ensamblados.
El compilador no trata de hacer referencia a un ensamblado si éste tiene el mismo nombre que el archivo de resultados del
programa que se está generando.
Ejemplo
El programa siguiente se compilará y ejecutará cuando la opción /autoref+ esté activada; el compilador hará referencia a
System.dll como resultado de la anotación de tipo al declarar una variable.

var s: System.Collections.Specialized.StringCollection =
new System.Collections.Specialized.StringCollection();
print(s);

El programa siguiente se compilará y ejecutará cuando la opción /autoref+ esté activada; el compilador hará referencia a
System.dll como resultado de la instrucción import.

import System;
var s = new System.Collections.Specialized.StringCollection();
print(s);

En estos ejemplos también se muestra el modo en que el compilador busca nombres de ensamblados basándose en la
anotación de tipo o en las instrucciones import. Al no encontrar el compilador un ensamblado denominado
System.Collections.Specialized.dll que contuviera StringCollection, buscó System.Collections.dll. Al no encontrar ese archivo,
buscó System.dll, que sí contenía StringCollection.
Vea también
Referencia
import (Instrucción)
/reference
Otros recursos
Opciones del compilador de JScript
JScript 8.0

/codepage
Especifica la página de códigos que debe utilizarse para todos los archivos de código fuente en la compilación.

/codepage:id

Argumentos
id
Id. de la página de códigos para todos los archivos de código fuente en la compilación.
Comentarios
Si compila uno o varios archivos de código fuente que, cuando se crearon, no designaban el uso de la página de códigos
predeterminada en el equipo, podrá utilizar la opción /codepage para especificar la página de códigos que debe utilizarse.
/codepage se aplica a todos los archivos de código fuente de la compilación.
Si los archivos de código fuente se crearon con la misma página de códigos que está activada en el equipo o se crearon con
UNICODE o UTF-8, no es preciso utilizar /codepage.
Vea también
Otros recursos
Opciones del compilador de JScript
JScript 8.0

/debug
Proporciona información de depuración.

/debug[+ | -]

Argumentos
+| -
Si se especifica /debug+ o simplemente /debug, el compilador generará información de depuración y la incluirá en un
archivo o archivos de resultados .pdb. /debug-, que se aplica de manera predeterminada si no se especifica /debug, no
genera información de depuración ni crea archivos de resultados que contengan dicha información de depuración.
Comentarios
Para obtener información sobre cómo configurar el rendimiento de depuración de una aplicación, vea
Facilitar la depuración de una imagen.
Ejemplo
Ponga la información de depuración para app.exe en el archivo app.pdb.

jsc /debug /out:app.pdb test.js

Vea también
Otros recursos
Opciones del compilador de JScript
JScript 8.0

/define
Define los símbolos de preprocesador.

/define:name1[=value1][,name2[=value1]]

Argumentos
name1, name2
Nombre de uno o varios símbolos que desea definir.
value1, value2
Valores que se asignan a los símbolos. Puede tratarse de valores booleanos o números.
Comentarios
Mediante la opción /define se definen los nombres como símbolos en el programa.
Se pueden definir múltiples símbolos con /define si se separan los nombres de símbolos mediante comas. Por ejemplo:

/define:DEBUG,trace=true,max_Num=100

Para obtener más información, vea Compilación condicional.


/d es la forma breve de /define.
Ejemplo
Para compilar con /define:xx.

print("testing")
/*@cc_on @*/
/*@if (@xx)
print("xx defined")
@else @*/
print("xx not defined")
/*@end @*/

Vea también
Otros recursos
Opciones del compilador de JScript
JScript 8.0

/fast
Permite ejecutar el programa con mayor rapidez.

/fast[+ | -]

Argumentos
+| -
La opción /fast está activada de manera predeterminada. La opción /fast o /fast+ hace que el compilador genere un archivo
de resultados cuya velocidad está optimizada. Sin embargo, si se utiliza esta opción, no se admitirán algunas de las
características de lenguaje de versiones anteriores. Por otra parte, al especificar la opción /fast-, habrá compatibilidad con el
lenguaje de versiones anteriores, pero el compilador generará un archivo de resultados cuya velocidad no está optimizada.
Comentarios
Cuando está activada la opción /fast,
Es preciso declarar todas las variables.
Las funciones se vuelven constantes y no se les pueden asignar valores ni volver a definirlas.
Las propiedades predefinidas de objetos integrados están marcadas como DontEnum, DontDelete, ReadOnly.
No se pueden expandir las propiedades en los objetos integrados, que no sean el objeto Global (que también es el
ámbito global).
La variable arguments no está disponible en las llamadas a funciones.
Las asignaciones a variables, campos o métodos de sólo lectura generan errores.
Nota
El modo de compilación /fast- sirve para ayudar a los desarrolladores a crear ejecutables independientes a partir de có
digo heredado de JScript. Cuando desarrolle nuevos ejecutables o bibliotecas, utilice el modo de compilación /fast+. De
este modo, se garantiza un rendimiento mejor y mayor compatibilidad con otros ensamblados.

Nota de seguridad
El modo de compilación /fast- permite el uso de características de lenguaje de versiones anteriores que no están dispo
nibles con el modo /fast+. El mal uso de estas características puede hacer que el programa sea menos seguro. Para obt
ener más información, vea Consideraciones sobre seguridad de JScript.

Ejemplo
Para crear un archivo de resultados cuya velocidad esté optimizada, a costa de una total compatibilidad con el lenguaje de
versiones anteriores, ejecute:

jsc test.js

Vea también
Conceptos
Consideraciones de seguridad para JScript
Otros recursos
Opciones del compilador de JScript
JScript 8.0

/help, /?
Muestra ayuda de la línea de comandos del compilador.

/help

-or-
/?

Comentarios
Mediante esta opción, el compilador muestra una lista de opciones de compilador con una breve descripción de cada una.
Vea también
Otros recursos
Opciones del compilador de JScript
JScript 8.0

/lcid
Especifica la página de códigos para los mensajes del compilador.

/lcid:id

Argumentos
id
El identificador de la página de códigos que se ha de utilizar para imprimir los mensajes del compilador.
Vea también
Otros recursos
Opciones del compilador de JScript
JScript 8.0

/lib
Especifica las ubicaciones de las referencias a ensamblados.

/lib:dir1[, dir2]

Argumentos
dir1
Directorio en el que ha de buscar el compilador si el ensamblado al que se hace referencia no se encuentra en el directorio
de trabajo actual (el directorio desde el que se invoca al compilador) o el directorio del sistema de Common Language
Runtime.
dir2
Uno o varios directorios adicionales para buscar las referencias a ensamblados. Separe los nombres de los directorios
adicionales mediante comas o puntos y comas.
Comentarios
La opción /lib especifica la ubicación de ensamblados a los que se hace referencia mediante la opción /reference.
El compilador busca referencias a ensamblados que no presentan la ruta completa en el siguiente orden:
1. Directorio actual de trabajo. Es el directorio desde donde se invoca al compilador.
2. Directorio del sistema de Common Language Runtime.
3. Directorios especificados por /lib.
4. Directorios especificados por la variable de entorno LIB.
Hay que utilizar /reference para especificar una referencia a un ensamblado.
La opción /lib es aditiva; si se especifica más de una vez, agrega nuevos valores a los ya existentes.
Ejemplo
Se va a compilar t2.js para crear un archivo .exe. El compilador busca referencias a ensamblados en el directorio de trabajo y en
el directorio raíz de la unidad C.

jsc /lib:c:\ /reference:t2.dll t2.js

Vea también
Otros recursos
Opciones del compilador de JScript
JScript 8.0

/linkresource
Crea un vínculo a un recurso administrado.

/linkresource:filename[,name[,public|private]]
-or-
/linkres:filename[,name[,public|private]]

Argumentos
filename
Archivo de recursos que se va a vincular al ensamblado.
name[,public|private] (opcional)
Nombre lógico del recurso; nombre usado para cargar el recurso. El valor predeterminado es el nombre del archivo. De
manera opcional, se puede especificar si el archivo es público o privado en el manifiesto del ensamblado. Por ejemplo,
/linkres:filename.res,myname.res,public. De manera predeterminada, filename es público en el ensamblado.
Comentarios
La opción /linkresource no incluye el archivo de recursos en el archivo resultante. Utilice la opción /resource para incrustar un
archivo de recursos en el archivo resultante.
Si filename es un archivo de recursos de .NET Framework creado, por ejemplo, por el
Generador de archivos de recursos (Resgen.exe) o en el entorno de desarrollo, se puede obtener acceso a él con miembros del
espacio de nombres de System.Resources (vea System.Resources.ResourceManager si desea obtener más información). Para
todos los demás recursos, utilice los métodos GetManifestResource* en la clase System.Reflection.Assembly para obtener
acceso al recurso en tiempo de ejecución.
filename puede tener cualquier formato de archivo. Por ejemplo, se puede hacer que una DLL nativa forme parte de un
ensamblado para que se pueda instalar en la Caché de ensamblados global y sea accesible desde código administrado del
ensamblado.
La opción /linkres es la forma breve de /linkresource.
Ejemplo
Para compilar in.js y vincularlo al archivo de recursos rf.resource, ejecute:

jsc /linkresource:rf.resource in.js

Vea también
Otros recursos
Opciones del compilador de JScript
JScript 8.0

/nologo
Suprime la pantalla de bienvenida.

/nologo

Comentarios
La opción /nologo impide que se muestre la pantalla de bienvenida al iniciarse el compilador.
Vea también
Otros recursos
Opciones del compilador de JScript
JScript 8.0

/nostdlib
No importa una biblioteca estándar.

/nostdlib[+ | -]

Argumentos
+| -
La opción /nostdlib o /nostdlib+ hace que el compilador no importe el archivo mscorlib.dll. Utilice esta opción si desea
definir o crear un espacio de nombres System y objetos propios. Si no especifica /nostdlib, se importará mscorlib.dll al
programa (equivale a especificar /nostdlib-).
Comentarios
Al especificar /nostdlib+ también se especifica /autoref-.
Ejemplo
Si dispone de un componente denominado System. String (o cualquier otro nombre en mscorlib), la única manera de obtener
acceso al componente sería utilizar

/nostdlib /r:your_library,mscorlib

para buscar en la biblioteca antes de buscar en mscorlib. Normalmente no se define un espacio de nombres en la aplicación
llamado System.
Vea también
Otros recursos
Opciones del compilador de JScript
JScript 8.0

/out
Configura el nombre del archivo de resultados.

/out:filename

Argumentos
filename
Nombre del archivo de resultados creado por el compilador.
Comentarios
La opción /out especifica el nombre del archivo de resultados. El compilador espera encontrar al menos un archivo de código
fuente después de la opción /out.
Si no se especifica el nombre del archivo de resultados:
Si se trata de un archivo .exe, recibirá su nombre del primer archivo de código fuente utilizado para generar el archivo de
resultados.
Si se trata de un archivo .dll, recibirá su nombre del primer archivo de código fuente utilizado para generar el archivo de
resultados.
En la línea de comandos, es posible especificar varios archivos de resultados de una compilación. Todos los archivos de código
fuente especificados después de una opción /out se compilarán para producir el archivo resultante especificado por la opción
/out.
Hay que especificar el nombre completo y la extensión del archivo que se desea crear. La extensión debe ser .exe o .dll. Es
posible especificar una extensión .dll para los proyectos /t:exe.
Ejemplo
Para compilar t2.js y crear el archivo de resultados t2.exe, y para generar t3.js y crear el archivo de resultados t3.exe,
ejecute:

jsc t2.js /out:t3.exe t3.js

Vea también
Otros recursos
Opciones del compilador de JScript
JScript 8.0

/platform (JScript)
Especifica qué versión de Common Language Runtime (CLR) puede ejecutar el ensamblado.

/platform:[string]

Argumentos
string
x86, Itanium, x64 o anycpu (valor predeterminado).
Compila el ensamblado para ejecutarlo en el CLR de 32 bits, compatible con x86.
Compila el ensamblado para ejecutarlo en el CLR de 64 bits en un equipo con un procesador Itanium.
Compila el ensamblado para ejecutarlo en el CLR de 64 bits en un equipo que admita el conjunto de instrucciones de x64
o EM64T.
(predeterminada) Compila el ensamblado para ejecutarlo en cualquier plataforma.
Comentarios
En un sistema operativo Windows de 64 bits:
Los ensamblados compilados con /platform:x86 se ejecutarán en el CLR de 32 bits que se ejecuta en WOW64.
Los ejecutables compilados con el modificador /platform:anycpu se ejecutarán en el CLR de 64 bits.
Un archivo DLL compilado con el modificador /platform:anycpu se ejecutará en el mismo CLR que el proceso en el que
se cargó.
Para más información sobre cómo desarrollar una aplicación que se ejecute en un sistema operativo Windows de 64 bits, vea
Aplicaciones de 64 bits.
Ejemplo
En el ejemplo siguiente se muestra cómo utilizar /platform para especificar que la aplicación sólo se debe ejecutar en el CLR
de 64 bits, en un sistema operativo Windows de 64 bits para Itanium.

jsc /platform:Itanium myItanium.js

Vea también
Otros recursos
Opciones del compilador de JScript
JScript 8.0

/print
Activa el comando Print.

/print[+ | -]

Argumentos
+| -
De manera predeterminada, la opción /print o /print+ hace que el compilador habilite el uso de la instrucción Print. Un
ejemplo de instrucción Print es:

print("hello world");

Al especificar /print-, se deshabilita el comando Print.


Comentarios
Utilice /print- si el archivo .dll se carga en un entorno sin consola.
Se puede configurar Microsoft.JScript.ScriptStream.Out de modo que sea una instancia de un objeto TextWriter para que la
instrucción Print envíe los resultados a otra ubicación.
Ejemplo
Para que la instrucción Print no sea definida por el compilador, ejecute:

jsc /print- test.js

Vea también
Otros recursos
Opciones del compilador de JScript
JScript 8.0

/reference
Importa metadatos.

/reference:file[;file2]

Argumentos
file, file2
Uno o varios archivos que contienen un manifiesto de ensamblado. Para importar más de un archivo, hay que separar los
nombres de archivo con comas o puntos y comas.
Comentarios
La opción /reference hace que el compilador facilite la información pública de tipos presente en los archivos especificados al
proyecto que se compila actualmente.
El archivo o archivos a los que se hace referencia deben ser ensamblados. Por ejemplo, los archivos a los que se hace
referencia deben haberse creado con la opción de compilador /target:library en Visual C#, JScript o Visual Basic, o las opciones
de compilador /clr /LD de Visual C++.
/reference no puede tener un módulo como entrada.
Si se hace referencia a un ensamblado (Ensamblado A) que, a su vez, hace referencia a otro ensamblado (Ensamblado B), se
deberá hacer referencia al ensamblado B si:
Un tipo utilizado en el Ensamblado A hereda de un tipo o implementa una interfaz del Ensamblado B.
Si se invoca un campo, una propiedad, un evento o un método que devuelve un tipo o tiene un tipo de parámetro de
Ensamblado B.
Utilice /lib para especificar el directorio en el que se encuentran una o varias de las referencias de ensamblados.
Para que el compilador reconozca un tipo en un ensamblado (no en un módulo), debe obligársele a que resuelva el tipo, lo que
se puede conseguir, por ejemplo, definiendo una instancia del tipo. Existen otras formas de que el compilador resuelva
nombres de tipos en un ensamblado; por ejemplo, si se hereda de un tipo de un ensamblado, el compilador reconocerá el
nombre del tipo.
La opción /r es la forma corta de /reference.
Nota
El compilador de JScript, jsc.exe, puede hacer referencia a ensamblados creados mediante la misma versión del compilador o
una versión anterior. No obstante, el compilador de JScript puede sufrir errores en tiempo de compilación al hacer referencia
a ensamblados creados con versiones posteriores del compilador. Por ejemplo, el compilador de JScript .NET 2003 puede ha
cer referencia a cualquier ensamblado creado con el compilador de JScript .NET 2002, aunque se puede producir un error si
este compilador hace referencia a un ensamblado creado con JScript .NET 2003.

Ejemplo
Para compilar el archivo de código fuente input.js e importar metadatos de metad1.dll y metad2.dll con el fin de generar
out.exe, ejecute:

jsc /reference:metad1.dll;metad2.dll /out:out.exe input.js

Vea también
Otros recursos
Opciones del compilador de JScript
JScript 8.0

/resource
Incrusta un recurso administrado en un ensamblado.

/resource:filename[,name[,public|private]]
-or-
/res:filename[,name[,public|private]]

Argumentos
nombre_de_archivo
Archivo de recursos que se desea incrustar en el archivo resultante de la compilación.
name[,public|private] (opcional)
Nombre lógico del recurso; nombre usado para cargar el recurso. El valor predeterminado es el nombre del archivo. De
manera opcional, se puede especificar si el archivo es público o privado en el manifiesto del ensamblado. Por ejemplo,
/res:filename.res,myname.res,public. De manera predeterminada, filename es público en el ensamblado.
Comentarios
Utilice la opción /resource para vincular un recurso a un ensamblado y no incluir el archivo de recursos en el archivo de
resultados.
Si filename es un archivo de recursos de .NET Framework creado, por ejemplo, por el
Generador de archivos de recursos (Resgen.exe) o en el entorno de desarrollo, se puede obtener acceso a él con miembros del
espacio de nombres de System.Resources (vea System.Resources.ResourceManager si desea obtener más información). Para
todos los demás recursos, utilice los métodos GetManifestResource* en la clase System.Reflection.Assembly para obtener
acceso al recurso en tiempo de ejecución.
La opción /res es la forma corta de /resource.
Ejemplo
Para compilar in.js y asociar el archivo de recursos rf.resource, ejecute:

jsc /res:rf.resource in.js

Vea también
Otros recursos
Opciones del compilador de JScript
JScript 8.0

/target
Especifica el formato del archivo de resultados.
La opción del compilador /target se puede especificar de tres formas distintas:
/target:exe
Crea un archivo .exe de consola.
/target:library
Crea una biblioteca de códigos (.dll).
/target:winexe
Crea un programa de Windows.
Comentarios
La opción /target hace que se incluya un manifiesto de ensamblado de .NET Framework en un archivo de resultados.
Si crea un ensamblado, puede indicar que todo o parte del código sea compatible con CLS mediante el atributo
CLSCompliantAttribute.

import System;
[assembly:System.CLSCompliant(true)] // specify assembly compliance

System.CLSCompliant(true) class TestClass // specify compliance for element


{
var i: int;
}

Vea también
Otros recursos
Opciones del compilador de JScript
JScript 8.0

/target:exe
Crea una aplicación de consola.

/target:exe

Comentarios
La opción /target:exe hace que el compilador cree una aplicación de consola ejecutable (EXE). La opción /target:exe está
activada de manera predeterminada. El archivo ejecutable se creará con la extensión .exe.
A menos que se especifique lo contrario con la opción /out, el archivo de resultados adopta el nombre del primer archivo de
código fuente en la compilación de cada archivo de resultados.
Se utiliza /target:winexe para crear un programa ejecutable de Windows.
Cuando se especifica en la línea de comandos, todos los archivos hasta la siguiente opción /out o /target:library se utilizan para
crear el .exe. La opción /target:exe surte efecto para todos los archivos desde la opción /out o /target:library anterior.
La opción /t es la forma abreviada de /target.
Ejemplo
Cada una de las siguientes líneas de comando compilará in.js y creará in.exe:

jsc /target:exe in.js


jsc in.js

Vea también
Referencia
/target
Otros recursos
Opciones del compilador de JScript
JScript 8.0

/target:library
Crea una biblioteca de códigos.

/target:library

Comentarios
La opción /target:library hace que el compilador cree un archivo DLL en vez de un archivo ejecutable (EXE). Se creará el archivo
DLL con la extensión .dll.
A menos que se especifique lo contrario con la opción /out, el archivo de resultados toma el nombre del primer archivo de
entrada.
Cuando se especifica en la línea de comandos, todos los archivos de código fuente hasta la siguiente opción /out o /target:exe
se utilizan para crear el archivo .dll.
La opción /t es la forma abreviada de /target.
Nota
El compilador de JScript, jsc.exe, puede hacer referencia a ensamblados creados con la misma versión del compilador o con u
na versión anterior. No obstante, el compilador de JScript puede sufrir errores en tiempo de compilación al hacer referencia
a ensamblados creados con versiones posteriores del compilador. Por ejemplo, el compilador de JScript .NET 2003 puede ha
cer referencia a cualquier ensamblado creado con el compilador de JScript .NET 2002, aunque se puede producir un error si
este compilador hace referencia a un ensamblado creado con JScript .NET 2003.

Ejemplo
Compile in.js, creando in.dll:

jsc /target:library in.js

Vea también
Referencia
/target
Otros recursos
Opciones del compilador de JScript
JScript 8.0

/target:winexe
Crea un programa de Windows.

/target:winexe

Comentarios
La opción /target:winexe hace que el compilador cree un programa de Windows ejecutable (EXE). El archivo ejecutable se
creará con la extensión .exe. Los programas de Windows proporcionan una interfaz de usuario desde la biblioteca de .NET
Framework.
Se utiliza /target:exe para crear una aplicación de consola.
A menos que se especifique lo contrario con la opción /out, el archivo de resultados adopta el nombre del primer archivo de
código fuente en la compilación de cada archivo de resultados.
Cuando se especifica en la línea de comandos, todos los archivos hasta la siguiente opción /out o /target se utilizan para crear
el programa de Windows.
La opción /t es la forma abreviada de /target.
Ejemplo
Para compilar in.cs en un programa de Windows, ejecute:

jsc /target:winexe in.js

Vea también
Referencia
/target
Otros recursos
Opciones del compilador de JScript
JScript 8.0

/utf8output
Muestra los resultados del compilador mediante la codificación UTF-8.

/utf8output[+ | -]

Argumentos
+| -
De manera predeterminada, la opción /utf8output- muestra los resultados directamente en la consola. Al especificar la
opción /utf8output o /utf8output+, se redirigen los resultados del compilador a un archivo.
Comentarios
En algunas configuraciones internacionales, los resultados del compilador no se pueden mostrar correctamente en la consola.
En estas configuraciones, hay que utilizar /utf8outputy redirigir los resultados del compilador a un archivo.
La opción predeterminada es /utf8output-.
Especificar /utf8output equivale a especificar /utf8output+.
Ejemplo
Para compilar in.js y hacer que el compilador muestre los resultados utilizando la codificación UTF-8, ejecute:

jsc /utf8output in.js

Vea también
Otros recursos
Opciones del compilador de JScript
JScript 8.0

/versionsafe
Marca los reemplazos implícitos.

/versionsafe[+ | -]

Argumentos
+| -
De manera predeterminada, está activada la opción /versionsafe- y el compilador no generará un error si detecta un
reemplazo de método implícito. La opción /versionsafe+, que equivale a /versionsafe, hace que el compilador genere errores
para los reemplazos de método implícitos.
Comentarios
Utilice las palabras clave hide u override para indicar explícitamente el estado de reemplazo de un método. Por ejemplo, el
siguiente código genera un error cuando se compila con /versionsafe:

class c
{
function f()
{
}
}
class d extends c
{
function f()
{
}
}

Ejemplo
Para compilar in.js y hacer que el compilador genere errores si detecta un reemplazo de método implícito, ejecute:

jsc /versionsafe in.js

Vea también
Otros recursos
Opciones del compilador de JScript
JScript 8.0

/warn
Especifica el nivel de advertencia.

/warn:option

Argumentos
option
Nivel de advertencia mínimo que se desea mostrar para la generación. Los valores válidos están comprendidos entre 0 y 4:
Nivel de adv Significado
ertencia
0 Desactiva la emisión de todos los mensajes de advertencia; sólo se muestran los errores.

1 Muestra los errores y mensajes de advertencia graves.

2 Muestra todos los errores y las advertencias de nivel 1 más ciertas advertencias menos graves, tales como las
relativas a la ocultación de miembros de clase.

3 Muestra los errores, las advertencias de nivel 1 y 2 más ciertas advertencias menos graves, tales como las rel
ativas a expresiones que siempre se evalúan como true o false.

4 Muestra todos los errores, las advertencias de nivel 1 a 3 más las advertencias informativas. Éste es el nivel d
e advertencias predeterminado en la línea de comandos.

Comentarios
La opción /warn especifica el nivel de advertencia que debe mostrar el compilador.
Utilice /warnaserror para tratar todas las advertencias como errores hasta el nivel de advertencia especificado. Se pasarán por
alto las advertencias de nivel superior.
El compilador siempre muestra los errores.
La opción /w es la forma corta de /warn.
Ejemplo
Para compilar in.js y hacer que el compilador sólo muestre las advertencias de nivel 1, ejecute:

jsc /warn:1 in.js

Vea también
Otros recursos
Opciones del compilador de JScript
JScript 8.0

/warnaserror
Trata las advertencias como errores.

/warnaserror[+ | -]

Argumentos
+| -
La opción /warnaserror+ trata todas las advertencias como errores.
Comentarios
Los mensajes que normalmente se considerarían como advertencias se consideran como errores. No se crean archivos de
resultados. Continúa la generación para identificar tantos errores/advertencias como sean posibles.
De manera predeterminada, la opción /warnaserror- está activada, lo que hace que las advertencias no impidan la generación
de un archivo de resultados. La opción /warnaserror, que equivale a /warnaserror+, hace que se traten las advertencias como
errores.
Utilice /warn para especificar el nivel de advertencia que debe mostrar el compilador.
Ejemplo
Para compilar in.js y hacer que el compilador no muestre advertencias, ejecute:

jsc /warnaserror in.js

Vea también
Otros recursos
Opciones del compilador de JScript
JScript 8.0

/win32res
Inserta un recurso Win32 en el archivo generado.

/win32res:filename

Argumentos
nombre_de_archivo
Archivo de recursos que se desea agregar al archivo de resultados.
Comentarios
Se puede crear un archivo de recursos de Win32 con el compilador de recursos.
Un recurso Win32 puede contener información de versión o un mapa de bits (icono) que ayudan a identificar la aplicación en
el Explorador de Windows. Si no se especifica la opción /win32res, el compilador generará información de versión basada en la
versión del ensamblado.
Vea /linkresource (para hacer referencia a) o /resource (para asociar) un archivo de recursos de .NET Framework.
Ejemplo
Para compilar in.js y asociar un archivo de recursos Win32 rf.res con el fin de generar in.exe, ejecute:

jsc /win32res:rf.res in.js

Vea también
Otros recursos
Opciones del compilador de JScript

También podría gustarte