0


前端控制台报错is not defined

背景:

前端控制台报错is not defined的bug,在一个页面渲染的模板里,多个接口都使用了同一个模板,但是接口返回的参数是不同的。有些接口返回了这个参数,另一些接口可能压根就没有这个参数。这个时候进行页面渲染,调用了那个不存在的参数,就报了is not defined的错。

Is not defined是程序上的错,因为没有声明这个变量就使用了它导致的报错。

解决方法:

面对这种情况,不能提前声明、防止重复声明,普通的判空方法会报错,又必须要进行判空。这时候使用typeof XX != ‘undefined’ && XX进行判空处理,第一个是判断是否定义,第二个是判断空值。

那么undefined instanceof XX起效吗? 答案是仍然会报错
那么typeof XX != 'null’起效吗?XX实际上是undefined,而非null,虽然结果为true,但是下一步值判空还是会报错。

原因排查:
其他参考:
https://www.jb51.net/article/240832.htm

Javascript中undefined和not defined有什么区别?
概念上的解释:
undefined是javascript语言中定义的五个原始类中的一个,换句话说,undefined并不是程序报错,而是程序允许的一个值。
not defined是javascript在运行我们的javascript代码时,遇到没有定义就用来运算的变量时爆出来的错误。

在许多的javascript教程中都介绍有javascript变量即使不定义也可以直接拿来使用,但是请注意,这个使用是指可以被赋值,但是不可以被运算

XX=123;//未定义参数可以被赋值,是可以执行的YY?true:false;//未定义参数不可使用,是is not defined

本文转载自: https://blog.csdn.net/tf1450332301/article/details/127919091
版权归原作者 绣**** 所有, 如有侵权,请联系我们删除。

“前端控制台报错is not defined”的评论:

还没有评论