最近,一位同事展示了以下JavaScript代码片段:

greet = "‮".toString.bind("hello world!")

如果你将其粘贴到开发者控制台中并执行,它将打印一个"你好,世界!"信息:

>> console.log(greet())
hello, world!

我发现的另一件有趣的事情是,如果在 node 中粘贴相同的greet代码.js REPL it将自动将其转换为"可读"格式.

这是怎么回事?为什么在浏览器中可能出现这种行为,为什么 node 会出现这种行为.js自动格式化吗?

推荐答案

实际代码是:

greet = "...".toString.bind("hello world!")

其中,字符串文本中的...是字节E2 80 AE,这是从右向左覆盖的Unicode字符,这会导致其后面的所有内容以相反的方式显示.它用于书写从右向左的语言,比如阿拉伯语或 hebrew .

hex editors are your friend

Node.js相关问答推荐

node 无法验证第一个证书

使用NodeJS输出检索Base64图像的网络报废

如何使用多个OR参数从多个集合聚合

Puppeteer 的 BrowserFetcher 发生了什么?

通过 Node js 中的 TBA 执行 netsuite REST upsert 操作出现 401 错误

我的 React + Express 应用程序不断向我的数组添加一个空对象

在 Nest 项目上运行 Jest 测试时,我的文件无法找到一个在测试之外没有任何问题的模块

结合后端(Express)和前端(Angular)路由

try 在 Heroku 中部署 PRN 应用程序并获得 404

用户与mongoose 的完美搭配

来自 child_process.exec 的错误没有这样的设备或地址,管道有帮助.为什么?

如何刷新 youtube-data-api v3 的访问令牌

自定义 Docker 容器 Github 操作无法在 /github/workspace 中找到 Node 脚本

Passport 登录和持久会话

如何在不全局安装的情况下在 Node REPL 中要求 node 模块?

NODEJS 进程信息

node 应用程序是否有任何独立的 gui 模块

如何在 MongoDB 中查询引用的对象?

当进程被杀死时,如何优雅地关闭我的 Express 服务器?

什么时候应该将函数存储到变量中?