Articulo de referencia

cita anidada

Una cita anidada es aquella que se encuentra dentro de otra, formando una jerarquía con múltiples niveles. Al analizar una cita, es necesario interpretarla dentro de su contexto...

Una cita anidada es aquella que se encuentra dentro de otra, formando una jerarquía con múltiples niveles. Al analizar una cita, es necesario interpretarla dentro de su contexto. Las citas anidadas se utilizan en literatura (como en la narración anidada), en el habla y en informática (como en las metadeclaraciones que hacen referencia a otras declaraciones como cadenas de texto ). Las citas anidadas pueden resultar confusas hasta que se analizan cuidadosamente y se comprende el contexto de cada nivel de cita.

En la literatura

En los idiomas que permiten citas anidadas y utilizan comillas para indicar el discurso directo, los subniveles jerárquicos de citas suelen puntuarse alternando entre comillas primarias y secundarias. [ 1 ] Para un análisis exhaustivo de los principales sistemas de comillas empleados en los principales sistemas de escritura, véase Comillas . [ 2 ]

En programación

En el lenguaje de programación JavaScript , las comillas anidadas suelen generar problemas al usar la palabra clave `eval` . [ 3 ] La función `eval` convierte e interpreta una cadena como código real y ejecuta dicho código. Si la cadena se especifica como un literal , el código debe escribirse como una comilla (y escaparse adecuadamente).

Por ejemplo:

eval ( "var a=3; alert();" );

Este código declara una variable a , a la que se le asigna el valor 3 , y se muestra al usuario una ventana de alerta en blanco.

Supongamos que tuviéramos que insertar una comilla dentro del código interpretado entre comillas. En JavaScript, solo se puede tener un subnivel de comilla sin escape, que debe ser el alternativo de la comilla de nivel superior. Si el símbolo de comilla de segundo nivel es el mismo que el de primer nivel, estas comillas deben escaparse. [ 4 ] Por ejemplo:

alert ( "No necesito escapar aquí" ); alert ( 'Tampoco es "obligatorio" aquí' ); alert ( 'Pero ahora sí, o no funcionará' );

Una comilla anidada de tercer nivel debe escaparse para evitar conflictos con los delimitadores de comilla de primer o segundo nivel. Esto se aplica independientemente de la encapsulación de símbolos alternos. Cada nivel posterior al tercero debe escaparse recursivamente para todos los niveles de comilla que lo contienen. Esto incluye el propio carácter de escape, la barra invertida ("\"), que se escapa por sí misma ("\\").

Por cada subnivel que contenga una barra invertida, esta debe escaparse para el nivel superior. A continuación, todas las barras invertidas utilizadas para escapar dicha barra invertida, así como la barra invertida original, deben escaparse, y así sucesivamente para cada nivel ascendente. Esto evita ambigüedades y confusiones al escapar los caracteres.

Aquí hay algunos ejemplos que demuestran algunos de los principios anteriores:

document.write ( "<html><head> </head><body><p>Hola, este es el cuerpo del documento."); document.writeln ( " </p> " ) ; document.write ( " <p> Un salto de línea en el código HTML actúa simplemente como un espacio en blanco, mientras que un <br> inicia una nueva línea." ) ; document.write ( " </p></body></html>\n" );eval ( 'eval(\"eval(\\\"alert(\\\\\\\"¡Ahora estoy\\\\\\\\\\\\\\\'confundido!\\\\\\\")\\\")\")' );

Tenga en cuenta que el número de barras invertidas aumenta de 0 a 1 a 3 a 7 a 15, lo que indica un 2norte1{\displaystyle 2^{n}-1}Regla para símbolos anidados sucesivamente, lo que significa que la longitud de las secuencias de escape crece exponencialmente con la profundidad de la cita.

Véase también

Referencias

  1. Equipo editorial de University of Chicago Press (2017). «6: Puntuación». The Chicago Manual of Style (17.ª  ed.). University of Chicago Press. págs. 258–260 . ISBN  978-0-226-28705-8.
  2. "Comillas" . Oxford Reference . Oxford University Press . Consultado el 24 de marzo de 2026 .
  3. "Método eval() de JavaScript" .
  4. "Cadenas de JavaScript" .