程序代码判空操作的等价性原理

null的本源不是空,而是对应对象的最重要的属性没有意义而已

所以我提出来了判空操作的等价性原理。

假设a.b是一个对象,我们要取对象b下面的属性c,如果此时b对象是null的话,会引发空指针异常,我们在代码中既然能够写出a.b.c这样的代码来,说明b是存在的怎么会是null呢,只是此时的b是存在于我们的意识中的,它不是什么都没有。

我们假定一切对象都不是null,那么我们直接写a.b.c不会有任何问题。

假设a.b.d是最能体现该对象存在的一个属性,比如说是id,比如说一个人的name是空,那么这个对象的存在自然就没有意义,也就说我们判空只需判断对象链的最后一层是否有没有意义就等价于每层对象都要判空。

a!=null&&a.b!=null 等价于 a.b.d != "无意义的值",要实现这种操作我们只需要做一件事情,就是把a下面的所有属性,是null的属性或缺失的属性用一个空的对象模板来补齐,这样就永远不会担心有null的存在了。

你可能感兴趣的:(web前端,javascript)