在开发地图点聚合功能时,网页按F12调出调试功能,发现JS错误提示“Uncaught TypeError: Cannot read properties of null”,如下图:
虽然程序是正常运行的,但作为对写代码的BUG零容忍态度,是绝不充许出现这种情况,接下来我们详细了解一下出现这个的原因,以及解决方法.
一、什么是Uncaught TypeError: Cannot read properties of null?
在JavaScript中,当你试图访问一个null或undefined对象的属性时,就会抛出这个错误。例如,如果你有一个变量x,它的值为null,然后你尝试访问x.property,就会得到"Uncaught TypeError: Cannot read properties of null"的错误。
二、为什么会出现这个错误?
这个错误通常发生在以下几种情况:
正在尝试访问一个未定义的变量的属性。
正在尝试访问一个空对象的属性。
正在尝试访问一个不存在的对象的属性。
三、如何解决这个问题?
1. 检查变量是否已经定义
在使用任何变量之前,都应该先检查它是否已经定义。可以使用typeof操作符来检查一个变量的类型。
if (typeof x !== 'undefined') { // 访问x的属性}
2. 检查你的变量是否为null或undefined
在访问对象的属性之前,应该先检查该对象是否为null或undefined。
if (x !== null && x !== undefined) { // 访问x的属性}
3. 从ES2020开始,已经直接可以忽略错误提示了,使用方法如下:
const value = x?.property;
在这个例子中,如果x是null或undefined,那么value将被赋值为undefined,而不会抛出错误。
使用1和2点方法的话,还是不能完全解决问题,最好是用第3点的解决方法直接让系统不提示出错信息咯。
PHP在程序开发的语言里是非常灵活的一种,灵活有灵活的便利性,亦少了严谨性。