开发Serif转译器:无需函数调用获取JavaScript的null值
无需函数调用获取JavaScript的null值(用于Serif转译器)
我正在开发一款名为Serif的新编程语言转译器,目标输出为JavaScript代码。Serif语法中没有null字面量,但需要与JavaScript生态系统互操作——而JS API经常会用到null值。目前我通过globalThis.JSON.parse("null")来获取null,但想找一种无需函数调用的更简便实现,简化输出代码里null$的定义。
Serif中的null是一个标识符,当它未被遮蔽时,需要映射到JavaScript的null值,示例如下:
example.serif(输入文件)
Object.create null;
当前example.js(输出文件)
const null$ = globalThis.JSON.parse("null"); Object.create(null$);
优化方案
最直接且高效的解决方式是直接使用JavaScript原生的null字面量来定义null$,完全不需要任何函数调用:
const null$ = null;
优化后的输出文件变为:
example.js(优化后输出文件)
const null$ = null; Object.create(null$);
如果出于某些特殊原因不想直接写null字面量,还有一种无函数调用的小众写法(但实用性远不如前者):
const null$ = Object.getPrototypeOf(Object.prototype);
原理是Object.prototype的原型本身就是null,不过这种写法代码冗余、可读性差,不推荐使用。
内容的提问来源于stack exchange,提问作者davidchambers
相关产品推荐
相关产品推荐

