详解JavaScript中的六种错误类型


Posted in Javascript onSeptember 21, 2017

刚入前端坑,英语又不太好的同学,是不是还在为控制台的错误抓耳挠腮?今天就带大家看一看JavaScript中常见的错误类型。

js中的控制台的报错信息主要分为两大类,第一类是语法错误,这一类错误在预解析的过程中如果遇到,就会导致整个js文件都无法执行。另一类错误统称为异常,这一类的错误会导致在错误出现的那一行之后的代码无法执行,但在那一行之前的代码不会受到影响。

1. SyntaxError:语法错误

// 1. Syntax Error: 语法错误
// 1.1 变量名不符合规范
var 1       // Uncaught SyntaxError: Unexpected number
var 1a       // Uncaught SyntaxError: Invalid or unexpected token
// 1.2 给关键字赋值
function = 5     // Uncaught SyntaxError: Unexpected token =

2. Uncaught ReferenceError:引用错误

引用一个不存在的变量时发生的错误。将一个值分配给无法分配的对象,比如对函数的运行结果或者函数赋值。

// 2.1 引用了不存在的变量
a()       // Uncaught ReferenceError: a is not defined
console.log(b)     // Uncaught ReferenceError: b is not defined
// 2.2 给一个无法被赋值的对象赋值
console.log("abc") = 1   // Uncaught ReferenceError: Invalid left-hand side in assignment

3. RangeError:范围错误

RangeError是当一个只超出有效范围时发生的错误。主要的有几种情况,第一是数组长度为负数,第二是Number对象的方法参数超出范围,以及函数堆栈超过最大值。

// 3.1 数组长度为负数
[].length = -5      // Uncaught RangeError: Invalid array length
// 3.2 Number对象的方法参数超出范围
var num = new Number(12.34)
console.log(num.toFixed(-1))   // Uncaught RangeError: toFixed() digits argument must be between 0 and 20 at Number.toFixed
// 说明: toFixed方法的作用是将数字四舍五入为指定小数位数的数字,参数是小数点后的位数,范围为0-20.

4. TypeError类型错误

变量或参数不是预期类型时发生的错误。比如使用new字符串、布尔值等原始类型和调用对象不存在的方法就会抛出这种错误,因为new命令的参数应该是一个构造函数。

// 4.1 调用不存在的方法
123()        // Uncaught TypeError: 123 is not a function
var o = {}
o.run()        // Uncaught TypeError: o.run is not a function
// 4.2 new关键字后接基本类型
var p = new 456      // Uncaught TypeError: 456 is not a constructor

5. URIError,URL错误

主要是相关函数的参数不正确。

decodeURI("%")     // Uncaught URIError: URI malformed at decodeURI

URI相关参数不正确时抛出的错误,主要涉及encodeURI、decodeURI()、encodeURIComponent()、decodeURIComponent()、escape()和unescape()六个函数。

6. EvalError eval()函数执行错误

在ES5以下的JavaScript中,当eval()函数没有被正确执行时,会抛出evalError错误。

例如下面的情况:

var myEval = eval;
myEval("alert('call eval')");

需要注意的是:ES5以上的JavaScript中已经不再抛出该错误,但依然可以通过new关键字来自定义该类型的错误提示。

以上的6种派生错误,连同原始的Error对象,都是构造函数。开发者可以使用它们,认为生成错误对象的实例。

new Error([message[,fileName[,lineNumber]]]),

第一个参数表示错误提示信息,第二个是文件名,第三个是行号。

总结

以上所述是小编给大家介绍的JavaScript中的六种错误类型,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jquery 最简单的属性菜单
Oct 08 Javascript
JavaScript入门之基本函数详解
Oct 21 Javascript
javascript获取选中的文本的方法代码
Oct 30 Javascript
JS中如何设置readOnly的值
Dec 25 Javascript
Extjs根据条件设置表格某行背景色示例
Jul 23 Javascript
jquery引用方法时传递参数原理分析
Oct 13 Javascript
谈谈对offsetleft兼容性的理解
Nov 11 Javascript
jQuery实现鼠标跟随提示层效果代码(可显示文本,Div,Table,Html等)
Apr 18 Javascript
xtemplate node.js 的使用方法实例解析
Aug 22 Javascript
深入理解Angularjs 脏值检测
Oct 12 Javascript
vue使用exif获取图片旋转,压缩的示例代码
Dec 11 Vue.js
8个非常实用的Vue自定义指令
Dec 15 Vue.js
解决Vue编译时写在style中的路径问题
Sep 21 #Javascript
使用JS实现图片轮播的实例(前后首尾相接)
Sep 21 #Javascript
Node调用Java的示例代码
Sep 20 #Javascript
浅谈react前后端同构渲染
Sep 20 #Javascript
微信页面弹出键盘后iframe内容变空白的解决方案
Sep 20 #Javascript
微信小程序 页面跳转事件绑定的实例详解
Sep 20 #Javascript
微信小程序 数据绑定及运算的简单实例
Sep 20 #Javascript
You might like
杏林同学录(五)
2006/10/09 PHP
php socket方式提交的post详解
2008/07/19 PHP
ThinkPHP分组下自定义标签库实例
2014/11/01 PHP
[原创]ThinkPHP让../Public在模板不解析(直接输出)的方法
2015/10/09 PHP
CodeIgniter配置之autoload.php自动加载用法分析
2016/01/20 PHP
php实现的SSO单点登录系统接入功能示例分析
2016/10/12 PHP
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
JS获取页面input控件中所有text控件并追加样式属性
2013/02/25 Javascript
window.location不跳转的问题解决方法
2014/04/17 Javascript
jquery使用ul模拟select实现表单美化的方法
2015/08/18 Javascript
javascript每日必学之条件分支
2016/02/17 Javascript
JS实现类似百叶窗下拉菜单效果
2016/12/30 Javascript
Nodejs读取文件时相对路径的正确写法(使用fs模块)
2017/04/27 NodeJs
vue如何进行动画的封装
2018/09/26 Javascript
Vue2.0 实现页面缓存和不缓存的方式
2019/11/12 Javascript
jupyter安装小结
2016/03/13 Python
Python的requests网络编程包使用教程
2016/07/11 Python
Python3中的json模块使用详解
2018/05/05 Python
cmd运行python文件时对结果进行保存的方法
2018/05/16 Python
Django 限制用户访问频率的中间件的实现
2018/08/23 Python
python sorted方法和列表使用解析
2019/11/18 Python
tensorflow使用指定gpu的方法
2020/02/04 Python
关于django python manage.py startapp 应用名出错异常原因解析
2020/12/15 Python
使用CSS3创建动态菜单效果
2015/07/10 HTML / CSS
英国的领先快速时尚零售商:In The Style
2019/03/25 全球购物
Belstaff英国官方在线商店:Belstaff.co.uk
2021/02/09 全球购物
平面网站制作专科生的自我评价分享
2013/12/11 职场文书
本科毕业生求职自荐信
2014/04/09 职场文书
根叔历年演讲稿
2014/05/20 职场文书
市委常委班子党的群众路线教育实践活动整改措施
2014/10/02 职场文书
综治维稳工作汇报
2014/10/27 职场文书
经验交流材料格式
2014/12/30 职场文书
就业导师推荐信范文
2015/03/27 职场文书
公务员的复习计划书,请收下!
2019/07/15 职场文书
Go 语言中 20 个占位符的整理
2021/10/16 Golang
js基于div丝滑实现贝塞尔曲线
2022/09/23 Javascript