Recently a coworker showed this fragment of JavaScript code:
greet = "".toString.bind("hello world!")
If you paste this inside the Developer Console and execute it will print a "Hello, World!" message:
>> console.log(greet())
hello, world!
Another interesting thing I found is that if you paste the same greet
code inside Node.js REPL it will automatically transpile it to a "readable" format.
How does this work? Why is this behaviour possible in a browser and why does Node.js automatically format it?
实际的代码是:
凡
...
在字符串字面量是字节E2 80 AE
,这是自右至左的优先Unicode字符,这会导致其后的所有反向显示。它用于编写从右到左的语言,例如阿拉伯语或希伯来语。