Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未定义值处理:代理与原始布尔值_Javascript_Proxy - Fatal编程技术网

Javascript 未定义值处理:代理与原始布尔值

Javascript 未定义值处理:代理与原始布尔值,javascript,proxy,Javascript,Proxy,在我的新项目中指定一种处理未定义值的方法让我感到困惑。 最近,我遇到了代理概念,这使我能够执行以下操作: const handler = { get: (obj, prop) => (prop in obj ? obj[prop] : 210)}; const p = new Proxy({'80mm' : 80, '210mm': 210}, handler); console.log('50mm' in p, p.c) // false, 210 另一方面,它可能只是: cons

在我的新项目中指定一种处理未定义值的方法让我感到困惑。 最近,我遇到了代理概念,这使我能够执行以下操作:

const handler = { get: (obj, prop) => (prop in  obj ? obj[prop] : 210)};
const p = new Proxy({'80mm' : 80, '210mm': 210}, handler);

console.log('50mm' in p, p.c)
// false, 210
另一方面,它可能只是:

const options = {'80mm' : 80, '210mm': 210 };

console.log(options['50mm'] || 210)
// 210
哪一个是最好的选择

非常感谢。

逻辑运算符比代理便宜得多。它也更加地道。只有在无法控制访问属性的代码时,才需要代理

然而,我建议第三种选择:明确地写出来

console.log('50mm' in options ? options['50mm'] : 210)
// or
console.log(typeof options['50mm'] == "number" ? options['50mm'] : 210)

即使选项对象包含错误的值0,或者键是hasOwnProperty之类的奇怪值,这也会起作用。

原始布尔值是什么意思?您好!对不起,也许我的句子不够清楚。对于本例,只需简单地提及| |和&。谢谢!你的建议让我明白了。