最近,一位同事展示了以下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相关问答推荐

使用Moongose处理node.js中重定向的then()块链

Sveltekit停靠的应用程序找不到从Build导入的包

如何在.npmrc中添加 comments ?

JsonwebToken过期后如何注销和清除cookie?

为什么我收到此错误:MissingSchemaError:架构尚未为模型&业务&注册

Sequelize、postgres和posgis:在n°;公里

如何模拟 mysql2 `getConnection`

Redis Typescript 删除方法类型转换

try 使用 pdf.js 时 pdf.getPage 不是函数

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

每秒从套接字传来的数据有哪些存储方式?

使用 create-expo-app 时如何更改 webpack-config.js 中的哈希函数?

tsc:当我上传 React+next js 和 node 项目时,在 heroku 找不到

使用服务帐户将 Firebase 应用程序部署到 Heroku(使用 dotenv 的环境变量)

使用 Webpack 和 font-face 加载字体

用一级 try ... catch 捕获 JavaScript Promise 中的错误

需要 node-gyp 的 npm install 在 Windows 上失败

在 Node 中连接和缩小 JS 文件

Nodejs将字符串转换为UTF-8

如何在 NodeJS 中拆分和修改字符串?