[js] 代码中如果遇到未定义的变量,会抛出异常吗?程序还会不会继续往下走?

在浏览器环境下JS 解析器解析到未定义变量时,会抛出 Uncaught ReferenceError 错误,JS 引擎会停止解析后面的代码,但之前的代码不受影响,并跳出该代码块。下面看看具体代码。<!DOCTYPE html>
<html lang="en"><head><title>
代码中如果遇到未定义的变量,会抛出异常吗?程序还会不会继续往下走</title><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /></head><body><script>console.log(1);</script><script>console.log(2);console.log(a);console.log(3);</script><script>console.log(4);</script></body>
</html>JS 引擎首先加载第一个<script></script> 代码块,进入解析的三个流程(1、词法语法分析,2、预解析,3、执行阶段),之后在控制台输出 1;接着 JS 引擎加载第二个<script></script> 代码块,进入解析的三个流程,控制台输出 2,当解析 console.log(a); 这行代码时,因为 a 是未定义的变量,会抛出 Uncaught ReferenceError 错误,JS 引擎会停止解析后面的代码,即 JS 引擎不会执行 console.log(3); 这行代码,并跳出第二个<script></script> 代码块;立马加载第三个<script></script> 代码块,进入解析的三个流程,在控制台输出 4。

个人简介

我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易,
但坚持一定很酷。欢迎大家一起讨论

主目录

与歌谣一起通关前端面试题

[js] 代码中如果遇到未定义的变量,会抛出异常吗?程序还会不会继续往下走?相关推荐

  1. js代码中实现页面跳转的几种方式

    js代码中实现页面跳转的几种方式 注:jquery的$.get(),$.post(),$.ajax()都不会使页面发送跳转,因为其本质都是ajax请求. 第一种: <script languag ...

  2. java keypress事件_javaweb开发-js代码中keypress事件调用判断,取得keyCode值

    在js代码中的一段代码,keypress事件调用的函数中的代码. var keyCode = event.keyCode ? event.keyCode : event.which ? event.w ...

  3. 如何在 JS 代码中消灭 for 循环

    Edit: 在我入职上一家公司的第一天,看到代码库里面一堆的 for 循环,内心有些崩溃,于是做了一次技术分享,展示怎样在代码中避免 for 循环.这篇文章是那次分享的总结.至于为什么我提倡避免 fo ...

  4. jsfor循环终止_详解如何在JS代码中消灭for循环

    Edit: 在我入职第三家公司的第一天,看到代码库里面一堆的 for 循环,内心有些崩溃,于是做了一次技术分享,展示怎样在代码中避免 for 循环.这篇文章是那次分享的总结.本文并不完美,其中递归的部 ...

  5. 从.aspx.cs到.aspx中的js代码中传递数据

    最近,由于项目需要需要将传感器的地理位置信息标记在百度地图上,无线传感器节点能够将自身经纬度信息,通过网络传递到数据库存储起来,然后将其读出来并在百度地图在地图上标记显示出来. 首先,在后台.aspx ...

  6. jsb调用java_在JS代码中使用反射调用java代码注意事项(附webview使用方法)(转)...

    本文是推荐使用过jsb.reflection的开发者进行阅读.关于jsb.reflection的说明请参照: 我们在代码编写过程中,通常会需要在js脚本中调用到java代码或者Objective-C的 ...

  7. 如何在js代码中消灭for循环实例详解

    转载自:https://www.jb51.net/article/144662.htm 补充一:看来很多人没看完文章就评论了.我在文章末尾说了,是不写 for 循环,不是不用 for 循环.简单陈述不 ...

  8. js代码中可以有java的对象吗_js原型对象与Java类的区别

    标签: 在我学习Javascript的原型对象时,我总是不自觉地拿Java的类思想来做比较,时间久了,我渐渐认识到二者有巨大的不同. 首先,类是不能直接当方法来运行,它最简便的方式是调用其静态方法:而 ...

  9. js代码中for循环里绑定onclick事件报错Uncaught TypeError Cannot set properties of undefined (setting ‘className‘)

    jsfor循环里绑定onclick事件报错Uncaught TypeError Cannot set properties of undefined (setting 'className') 我想要 ...

最新文章

  1. vscode出现磁盘路径大小写问题_vscode下python使用相对路径失败问题
  2. android webview加载不出来,android 中用webview 显示本地html,为什么里面的内容显示不出来?...
  3. 花生问题——百练OJ:2950:摘花生与1928:The Peanuts
  4. 使用webpack打包vue工程
  5. [LeetCode] 3. Longest Substring Without Repeating Characters 题解
  6. SQL中的数据转换服务,数据库迁移
  7. redis 缓存数据格式
  8. 大数据_Flink_数据处理_运行时架构4_作业调度原理及思考问题---Flink工作笔记0019
  9. Axure 设置条件的操作
  10. 【动态规划】完全背包:整数划分(方案数)
  11. 如何修改 WordPress 的用户默认头像?
  12. oracle查看数据库文件大小
  13. linux视频字幕下载工具,Linux中编辑视频字幕
  14. crmeb v4.4.2 修复前端小程序物流查询有部分查询不出来的问题
  15. 室内三维物体识别与姿态估计--背景
  16. pip 添加trusted host 一劳永逸
  17. QQ邮箱测试域用户密码过期邮件提示
  18. zip、rar压缩文件密码破解——使用ARCHPR Professional Edition
  19. 电子商务网站大全_2010_版
  20. RPG游戏(地图传送)

热门文章

  1. 政府公开数据可视化_公开演讲如何帮助您设计更好的数据可视化
  2. jsp导出数据时离开页面_您应该在要离开的公司开始使用数据
  3. PCB genesis自制孔点 Font字体实现方法
  4. Mysql ---Sqlserver数据迁移到Mysql(Mysql建表迁移数据)
  5. 牛客网 牛客小白月赛1 H.写真がとどいています
  6. hihocoder [Offer收割]编程练习赛24
  7. https 与 http
  8. linux使用flock解决crontab任务冲突
  9. 使用LinearLayout实现ListView,解决ListView和ScrollView滚动冲突
  10. 90.不用其它变量进行变量互换