前端控制台报错is not defined

这篇具有很好参考价值的文章主要介绍了前端控制台报错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变量即使不定义也可以直接拿来使用,但是请注意,这个使用是指可以被赋值,但是不可以被运算文章来源地址https://www.toymoban.com/news/detail-717526.html

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

到了这里,关于前端控制台报错is not defined的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端常识-console控制台打印调试

        Console  对象提供了浏览器控制台调试的接口(如:Firefox 的 Web Console)。在不同浏览器上它的工作方式可能不一样,但通常都会提供一套共性的功能。     Console  对象可以从任何全局对象中访问到,如 浏览器作用域上的 Window,以及通过属性控制台作为 workers 中的特定

    2024年02月06日
    浏览(56)
  • 【前端学习记录】neffos插件与控制台交互

    最近项目上有个需求需要用到websocket,于是就学了一下关于websocket的使用方法。不过由于后台使用的框架限制,需要前后端一起使用neffos插件,中间踩了很多的坑,这里简单记录一下。 WebSocket 是一种在客户端和服务器之间实现双向通信的协议,它允许服务器主动向客户端推

    2024年02月09日
    浏览(61)
  • 【控制台】报错:Cannot access ‘xxx‘ before initialization

    示例: 示例代码: ES6:当程序的控制流程在新的作用域(module function 或 block作用域)进行实例化时,在此作用域中用let/const声明的变量会先在作用域中被创建出来,但因此时还未进行词法绑定,所以是不能被访问的,如果访问就会抛出错误。因此,在这运行流程进入作用域

    2024年02月11日
    浏览(54)
  • 微信小程序控制台 报错 对应的服务器证书无效 控制台输入 showRequestInfo() 可以获取更详细信息 原因是ssl证书过期 重新申请即可

    微信小程序控制台 报错 对应的服务器证书无效。控制台输入 showRequestInfo() 可以获取更详细信息 报错原因:域名下的SSL证书过期 我这边报错的原因是ssl证书过期 重新申请后就好了,但也有本身域名申请的就有问题的,重新根据规范去申请域名 解决方式:重新申请SSL证书 如

    2024年02月12日
    浏览(49)
  • springboot-gateway注册nacos失败,控制台没有报错

    最近springboot的gateway注册到nacos上,没有注册成功 我是在common里面引入了nacos的依赖,依赖如下: 然后代码yml里面添加如下:

    2023年04月09日
    浏览(47)
  • vue 部分网络图片加载失败,控制台报错,http状态码403

    vue项目中有时候请求网络地址的图片http状态码会报403错误 原因: 1.http请求头中有一个referrer字段,用来表示发起http请求的源地址信息 2. 服务器端在拿到这个referrer值后判断请求是否来自本站 若不是则返回403,从而实现图片的防盗链。上面出现403就是因为,请求的是别人服务

    2024年02月14日
    浏览(51)
  • Vue Baidu Map图标旋转rotation失败且控制台一直报错

    报错如下:  解决: 官方文档:Vue Baidu Map

    2023年04月09日
    浏览(49)
  • 使用Element-plus库时,控制台出现警告:$weight: Passing a number without unit % (0) is deprecated.

    虽然不影响项目的正常运行,但是看着挺不爽的...  在网上找了很多资料,终于在这个回答:Developers Community by KeenThemes | | sass warning, can\\\'t find the cause of the problem 找到了有效的方法,修改sass和sass-loader的版本:

    2024年02月11日
    浏览(58)
  • SpringBoot集成Nacos控制台报:Server check fail, please check server xxx ,port 9848 is available

    问题: 分析: 1、nacos服务端升级为2.x版本后,新增了gRPC 的通信方式(用于客户端向服务端发起连接请求),新增了两个端口。这两个端口在nacos原先的端口上(默认8848),进行一定偏移量自动生成 解决: 方式一:当服务端端升级为2.x版本,客户端也需要进行相应的版本升级(最

    2024年02月11日
    浏览(53)
  • 控制台报错:GET http://localhost:8080/students net::ERR_FAILED 200

    node请求接口的时候意外遇到控制台出现这个问题: Access to XMLHttpRequest at ‘http://localhost:8080/students’ from origin ‘http://localhost:8081’ has been blocked by CORS policy:## 标题 No ‘Access-Control-Allow-Origin’ header is present on the requested resource. GET http://localhost:8080/students net::ERR_FAILED 200 node请求

    2024年02月11日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包