Si ejecuta el siguiente código en la consola del navegador, obtendrá resultados diferentes en Chromium y Safari.
String(function() { <!-- }).lengthEl cromo regresa:
19
Safari regresa:
20
¿Por qué?
La ejecución a través del editor de código StackOverflow generará el mismo resultado, independientemente del navegador, probablemente debido a los diversos niveles de mediación entre el resultado sin procesar y la ventana del navegador.
Las salidas de toString representadas en la consola difieren:
Cromo:
'function() { \x3C!--\n}'Safari:
"function () { <!-- }"Esto contiene una corrección de una versión anterior de esta pregunta que presentaba interpretaciones incorrectas del resultado.
La razón aquí no son los diferentes símbolos de salto de línea, sino que, de hecho, Safari agrega un espacio antes de los paréntesis de la función () en su sintaxis. Pruebe esto para comparar los caracteres uno al lado del otro más fácilmente:
String(function() { }).split("")Verás que en Chrome, lo escribirá como
function()
mientras que en Safari se convierte en
function () .