Lia*_*yan 1 javascript error-handling null undefined
我想要实现的是干净的代码,有几个可能的null返回,我不会在多个地方返回,代码很容易遵循,而不是嵌套的噩梦.例如考虑
var topLevel = testdata['key'];//testdata['key'] may be null
var nextLevel = topLevel['subkey']; //topLevel['subkey'] may be null
var subSubLevel = ...
Run Code Online (Sandbox Code Playgroud)
我最初的想法是做类似的事情
var topLevel = testdata['key'] || 'error';
Run Code Online (Sandbox Code Playgroud)
这将至少停止"无法获取x的空"错误,但之后我将在最后有一个块,我需要检查这些变量中的每一个是否错误,如果是,则返回null并提供相应的错误消息(可能带有关联对象).
有没有人有更聪明,更简洁的方法来实现相同的最终结果?
我可能会使用JavaScript的好奇,强大的做&&操作员(表弟好奇,强大的||运营商你已经使用):
var topLevel = testdata['key'];
var nextLevel = topLevel && topLevel['subkey'];
// ...
Run Code Online (Sandbox Code Playgroud)
如果topLevel是falsey(null,undefined等等),nextLevel将获得该假值(左侧操作数); 如果不是,则评估右侧操作数并nextLevel接收该值.使用这些防护,你可以随心所欲地继续前进.
var topLevel = testdata['key'];
var nextLevel = topLevel && topLevel['subkey'];
var nextNextLevel = nextLevel && nextLevel['key3'];
var nextNextNextLevel = nextNextLevel && nextNextLevel['key4'];
Run Code Online (Sandbox Code Playgroud)
当你期待对象引用时,这非常方便null,或undefined.