我考虑的用例是为了合并创建一个无望的自我中心Null
。
此代码有效,但需要对相关的Null
进行明确检查:
const Null = new Proxy({}, {get: () => Null});
let data = Null;
console.log(data.a.b.c.d !== Null ? "Has value" : "Is Null");

我希望能够省略明确的检查并完成
console.log(data.a.b.c.d ? "Has value" : "Is Null");
但这不起作用,因为我的Null
是一个对象,因此被视为真实。
spec似乎表明这是不可能的,但javascript是如此奇怪的生态系统,我希望有人能够提出一个可能的解决方案。
(也请不要讨论这种Null
的优点,我知道这是一个可能存在争议的问题,如果可以做到的话,我真的很感兴趣,而不是是否应该完成。)
答案 0 :(得分:2)
valueOf()
和toString()
方法,这些方法在被调用时会返回错误值,但是如果所有测试过的都是不会做任何好处的参考。< / p>