盒子
盒子

&&短路

我们这里讨论“.”写法获取,如果一个对象存在,但是属性不存在,通过“.”访问属性,不会报错,但会返回undefined:

1
2
3
4
var o = {
a: 1
}
console.log(o.b); // undefined

接着方法undefined的属性,将报错

1
console.log(o.b.length); //  TypeError

所有常规的写法这样:

1
var length = o && o.b && o.b.lenth;

虽然这样得到的结果是undefined,但是不报错,不会让js程序停止运行

上面用到了&&的短路行为

支持一下
扫一扫,支持 Alin
  • 微信扫一扫
  • 支付宝扫一扫