Jac*_*lan 9 javascript destructuring babel
让我说我有这个代码:
const {x, y} = point;
Run Code Online (Sandbox Code Playgroud)
巴别塔会把它变成:
var _point = point,
x = _point.x,
y = _point.y;
Run Code Online (Sandbox Code Playgroud)
这很好,但如果点未定义怎么办?现在我收到一个错误:
"Cannot read property 'x' of undefined".
那么我该如何避免这种情况呢?
我想做点什么
const {x, y} = {} = point;
Run Code Online (Sandbox Code Playgroud)
但这是一个语法错误.
我只能看到这是一个选项:
const {x, y} = point || {};
Run Code Online (Sandbox Code Playgroud)
哪个巴贝尔转向:
var _ref = point || {},
x = _ref.x,
y = _ref.y;
Run Code Online (Sandbox Code Playgroud)
这里我们创建一个对象只是为了避免未定义的错误.这似乎很浪费.
是否有一些我想要的语法会避免这种情况?可能会发生类似这样的事情:
var x, y;
if (typeof point !== 'undefined') {
x = point.x;
y = point.y;
}
Run Code Online (Sandbox Code Playgroud)
Car*_*los 10
要处理 ES6 对象解构中的未定义错误,您可以执行以下操作
const {x, y} = {...point};
console.log(x) // undefined
console.log(y) // undefined
Run Code Online (Sandbox Code Playgroud)
\n\n[\xe2\x80\xa6] 如果点未定义怎么办?现在我收到错误:“无法读取未定义的属性 \'x\'”
\n那么我该如何避免这种情况呢?
\n
如果您想编写清晰的代码,您可以显式检查该条件:
\nlet { x, y };\nif (typeof point === \'undefined\') {\n x = y = undefined;\n} else {\n { x, y } = point;\n}\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1752 次 |
| 最近记录: |