En Chrome, cuando hace clic con el botón derecho en una cadena en la consola, verá la opción "copiar cadena como literal de JavaScript". Esto es lo que quiero tener ahora, en JavaScript.
Por ejemplo, supongamos que tengo el siguiente contenido de texto:
console.log('hoge');Mi pregunta es, ¿cómo puedo obtener algo a continuación de lo anterior?
"console.log('hoge');" Quiero hacer esto porque tengo megabytes de contenido de JavaScript largo generado por un paquete web y, por alguna razón, necesito eval() el script en otro entorno, por lo que quiero copiar y pegar el texto literal de JavaScript. al interior de "eval()". (puede sugerir intercambiar los datos no con el literal sino con json (json.stringify/parse), lo sé, pero prefiero la forma literal por ahora)
Entonces, ¿es posible? Gracias.
Después de observar los consejos sobre la debilidad de seguridad inherente al uso de eval (consulte: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval )
Puede lograr lo que desea encerrando todo el código literal dentro de tildes y usando la cadena resultante como argumento eval . Las cadenas entre comillas de backtick pueden incluir saltos de línea, por lo que debería poder pasar todo el bloque de código dentro de un solo conjunto.
Fragmento de trabajo.
console.log('hoge'); console.log('another hoge'); eval(`console.log('hoge'); console.log('another hoge')`);Puede encerrar fácilmente Javascript en acentos graves para obtener un literal de plantilla :
eval(`console.log('hoge')`)Pero también debe evitar los acentos graves dentro del código Javascript para manejar situaciones como esta:
eval(`console.log(`hoge`)`) // SyntaxErrorComo solución, puede usar este bash one-liner :
sed 's/`/\\`/g' | xargs -0 printf 'eval(`%s`)'Enter .Enter nuevamente.Ctrl+D para finalizar la entrada.eval() con un literal de plantilla escapado en la salida.Puede asignar este comando de una sola línea a un alias para facilitar su uso:
alias js_eval_literal="sed '"'s/`/\\`/g'"' | xargs -0 printf '"'eval(`%s`)'"'"