比如有对象:
var a = {
b:{
c:{
d:{
}
}
}
}
使用的时候比如
var param = a.b.c.d;
但是一旦其中c或者d不存在就会报错。
一般的方式是逐层检查,但是代码很不优雅。
有什么更好的方式呢?
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
层级能少当然好。
不过再怎么约定优化,多层级依然是会出现的.作为个体可能英明神武,群体内也总有些队友要呵呵的:)。何况,网络7层协议,哪位可以帮我减少一层呢。
所以,我们还是回到问题本身好点。
a.b.c.d 直达语义核心,很好。需要担心的异常情况,既然都说异常了,直接用异常处理即可。异常是分离正常代码和错误处理的好方法(好像废话
function d_value(){
try {
return a.b.c.d;
}
catch(err) {
result = nil;
}
}
80386 就已经直接支持异常了,没必要如同c一样,亦步亦趋的去检查了。这样的if ,? 样式的错误处理,该过时了。
使用 CoffeeScript:
a?.b?.c?.dSource
var level3 = (((test || {}).level1 || {}).level2 || {}).level3;或
brototype