[js] 代码中如果遇到未定义的变量,会抛出异常吗?程序还会不会继续往下走?
[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] 代码中如果遇到未定义的变量,会抛出异常吗?程序还会不会继续往下走?相关推荐
- js代码中实现页面跳转的几种方式
js代码中实现页面跳转的几种方式 注:jquery的$.get(),$.post(),$.ajax()都不会使页面发送跳转,因为其本质都是ajax请求. 第一种: <script languag ...
- java keypress事件_javaweb开发-js代码中keypress事件调用判断,取得keyCode值
在js代码中的一段代码,keypress事件调用的函数中的代码. var keyCode = event.keyCode ? event.keyCode : event.which ? event.w ...
- 如何在 JS 代码中消灭 for 循环
Edit: 在我入职上一家公司的第一天,看到代码库里面一堆的 for 循环,内心有些崩溃,于是做了一次技术分享,展示怎样在代码中避免 for 循环.这篇文章是那次分享的总结.至于为什么我提倡避免 fo ...
- jsfor循环终止_详解如何在JS代码中消灭for循环
Edit: 在我入职第三家公司的第一天,看到代码库里面一堆的 for 循环,内心有些崩溃,于是做了一次技术分享,展示怎样在代码中避免 for 循环.这篇文章是那次分享的总结.本文并不完美,其中递归的部 ...
- 从.aspx.cs到.aspx中的js代码中传递数据
最近,由于项目需要需要将传感器的地理位置信息标记在百度地图上,无线传感器节点能够将自身经纬度信息,通过网络传递到数据库存储起来,然后将其读出来并在百度地图在地图上标记显示出来. 首先,在后台.aspx ...
- jsb调用java_在JS代码中使用反射调用java代码注意事项(附webview使用方法)(转)...
本文是推荐使用过jsb.reflection的开发者进行阅读.关于jsb.reflection的说明请参照: 我们在代码编写过程中,通常会需要在js脚本中调用到java代码或者Objective-C的 ...
- 如何在js代码中消灭for循环实例详解
转载自:https://www.jb51.net/article/144662.htm 补充一:看来很多人没看完文章就评论了.我在文章末尾说了,是不写 for 循环,不是不用 for 循环.简单陈述不 ...
- js代码中可以有java的对象吗_js原型对象与Java类的区别
标签: 在我学习Javascript的原型对象时,我总是不自觉地拿Java的类思想来做比较,时间久了,我渐渐认识到二者有巨大的不同. 首先,类是不能直接当方法来运行,它最简便的方式是调用其静态方法:而 ...
- js代码中for循环里绑定onclick事件报错Uncaught TypeError Cannot set properties of undefined (setting ‘className‘)
jsfor循环里绑定onclick事件报错Uncaught TypeError Cannot set properties of undefined (setting 'className') 我想要 ...
最新文章
- vscode出现磁盘路径大小写问题_vscode下python使用相对路径失败问题
- android webview加载不出来,android 中用webview 显示本地html,为什么里面的内容显示不出来?...
- 花生问题——百练OJ:2950:摘花生与1928:The Peanuts
- 使用webpack打包vue工程
- [LeetCode] 3. Longest Substring Without Repeating Characters 题解
- SQL中的数据转换服务,数据库迁移
- redis 缓存数据格式
- 大数据_Flink_数据处理_运行时架构4_作业调度原理及思考问题---Flink工作笔记0019
- Axure 设置条件的操作
- 【动态规划】完全背包:整数划分(方案数)
- 如何修改 WordPress 的用户默认头像?
- oracle查看数据库文件大小
- linux视频字幕下载工具,Linux中编辑视频字幕
- crmeb v4.4.2 修复前端小程序物流查询有部分查询不出来的问题
- 室内三维物体识别与姿态估计--背景
- pip 添加trusted host 一劳永逸
- QQ邮箱测试域用户密码过期邮件提示
- zip、rar压缩文件密码破解——使用ARCHPR Professional Edition
- 电子商务网站大全_2010_版
- RPG游戏(地图传送)
热门文章
- 政府公开数据可视化_公开演讲如何帮助您设计更好的数据可视化
- jsp导出数据时离开页面_您应该在要离开的公司开始使用数据
- PCB genesis自制孔点 Font字体实现方法
- Mysql ---Sqlserver数据迁移到Mysql(Mysql建表迁移数据)
- 牛客网 牛客小白月赛1 H.写真がとどいています
- hihocoder [Offer收割]编程练习赛24
- https 与 http
- linux使用flock解决crontab任务冲突
- 使用LinearLayout实现ListView,解决ListView和ScrollView滚动冲突
- 90.不用其它变量进行变量互换