![:zui:](/as_themes/default/images/smilies/icon_zui.gif)
![:wink:](/as_themes/default/images/smilies/icon_wink.gif)
![:twisted:](/as_themes/default/images/smilies/icon_twisted.gif)
![:roll:](/as_themes/default/images/smilies/icon_rolleyes.gif)
![:oops:](/as_themes/default/images/smilies/icon_redface.gif)
![:mrgreen:](/as_themes/default/images/smilies/icon_mrgreen.gif)
![:love:](/as_themes/default/images/smilies/icon_love.gif)
![:lol:](/as_themes/default/images/smilies/icon_lol.gif)
![:jidong:](/as_themes/default/images/smilies/icon_jidong.gif)
![:idea:](/as_themes/default/images/smilies/icon_idea.gif)
![:han:](/as_themes/default/images/smilies/icon_han.gif)
在开发地图点聚合功能时,网页按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在程序开发的语言里是非常灵活的一种,灵活有灵活的便利性,亦少了严谨性。