处理javascript null对象的简洁方法

时间:2014-04-16 10:32:34

标签: 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 = ...

我最初的想法是做类似

的事情
var topLevel = testdata['key'] || 'error';

这至少会阻止"无法获得空的x"然后我会在结尾处有一个块,我需要检查这些变量是否都是错误,如果是,则返回null并提供相应的错误消息(可能带有关联对象)。

有没有人有更智能,更简洁的方法来达到相同的最终结果?

1 个答案:

答案 0 :(得分:5)

我可能会使用JavaScript的奇怪强大的&&运算符(您已使用的curiously-powerful || operator的表兄弟)来执行此操作:

var topLevel = testdata['key'];
var nextLevel = topLevel && topLevel['subkey'];
// ...

如果topLevel为假(nullundefined等),nextLevel将获得该假名值(左侧操作数);如果不是,则评估右侧操作数,nextLevel接收该值。使用这些防护,你可以随心所欲地继续前进。

var topLevel = testdata['key'];
var nextLevel = topLevel && topLevel['subkey'];
var nextNextLevel = nextLevel && nextLevel['key3'];
var nextNextNextLevel = nextNextLevel && nextNextLevel['key4'];

当您期望对象引用nullundefined时,这非常方便。