如果在浏览器控制台中运行以下代码,则在Chromium和Safari中会得到不同的结果.

String(function() { <!--
}).length

chromium 返回:

19

Safari返回:

20

为什么?

附注1

无论浏览器如何,通过StackOverflow代码编辑器运行都将提供相同的输出,这可能是由于原始输出和浏览器窗口之间存在不同级别的中介.

附注2

渲染到控制台的toString个输出不同:

chromium :

'function() { \x3C!--\n}'

Safari:

"function () { <!--
}"

编辑

这包含对该问题早期版本的更正,该版本对结果的解释不正确.

推荐答案

这里的原因不是换行符不同,而是Safari在其语法中的()个函数括号之前添加了一个空格.请try 以下操作,以便更轻松地并排比较字符:

String(function() {
}).split("")

你会在Chrome中看到,它会写为

function()

而在Safari中

function ().

Javascript相关问答推荐

如何提取Cypress中文本

序列查找器功能应用默认值而不是读取响应

按钮未放置在html dis位置

使用下表中所示的值初始化一个二维数组

react—router v6:路由没有路径

如何将react—flanet map添加到remixjs应用程序

Html文件和客户端存储的相关问题,有没有可能?

第二次更新文本输入字段后,Reaction崩溃

NG/Express API路由处理程序停止工作

当用户点击保存按钮时,如何实现任务的更改?

从另一个数组中的对应行/键值对更新数组中的键值对对象

与svg相反;S getPointAtLength(D)-我想要getLengthAtPoint(x,y)

有没有一种直接的方法可以深度嵌套在一个JavaScript对象中?

在Vercel中部署Next.js项目时获取`ReferenceError:未定义文档`

在JS/TS中将复杂图形转换为数组或其他数据 struct

自动滚动功能在当前图像左侧显示上一张图像的一部分

为什么我不能使用其同级元素调用和更新子元素?

为什么我的Navbar.css没有显示在本地主机页面上?

为什么当雪碧的S在另一个函数中时,Phaser不能加载它?

如果查询为空,则MongoDB将所有文档与$in匹配