刚入前端坑,英语又不太好的同学,是不是还在为控制台的错误抓耳挠腮?今天就带大家看一看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]]]),
第一个参数表示错误提示信息,第二个是文件名,第三个是行号。
更多 0
分享到:
相关推荐
JavaScript中有六种基本的错误类型,分别是SyntaxError、ReferenceError、RangeError、TypeError、URIError和EvalError。了解这些错误类型对于编写健壮的代码是很有必要的。 SyntaxError(语法错误)是在代码解析...
JavaScript是Web开发中不可或缺的一部分,它是一种轻量级的脚本语言,主要应用于网页和网络应用的客户端编程。这份“JavaScript中文手册”旨在为开发者提供详尽的JavaScript语言指南,帮助他们理解和掌握这一强大的...
2. **数据类型**:JavaScript支持七种数据类型,包括基本类型(Boolean、Null、Undefined、Number、BigInt、String和Symbol)和引用类型(Object)。特别是Number类型,要了解其浮点数的精度问题和处理大整数的方法...
本文将深入探讨JavaScript中的错误处理机制,主要包括错误对象、错误类型以及如何通过try-catch语句来管理和预防错误。 首先,我们来看`error对象`。在JavaScript中,当出现错误时,引擎会创建一个`error`对象的...
此外,还会涵盖错误处理、调试技巧,以及如何使用JavaScript操作和修改网页的DOM结构。 书中还详细讲解了JavaScript的对象系统,包括构造函数、实例化、原型和原型链,以及如何使用JSON(JavaScript Object ...
此外,书中还会涉及JavaScript的错误处理、事件处理、DOM操作、AJAX异步通信等Web开发中的实际问题。JavaScript的异步编程模型,如回调函数、Promise和async/await,对于处理网络请求和避免回调地狱至关重要。 ...
JavaScript是Web开发中不可或缺的一部分,它是一种轻量级的、解释型的编程语言,主要用于增强网页的交互性。这份“JavaScript手册—中文文档”提供了一个全面的JavaScript学习资源,涵盖了从基础语法到高级特性的...
JavaScript中有七种基本数据类型:String(字符串)、Number(数字)、Boolean(布尔值)、Null(空值)、Undefined(未定义)、Symbol(符号)和BigInt(大整数)。此外,还有两种引用类型:Object(对象)和...
1. **基础语法**:书中首先会介绍JavaScript的基础语法,包括变量声明(var、let、const)、数据类型(字符串、数字、布尔、null、undefined、对象、数组、函数)、运算符(算术、比较、逻辑、位、三元)、流程控制...
10. **错误处理**:`try...catch`语句用于捕获和处理运行时错误,是JavaScript中异常处理的关键。 11. **DOM操作**:JavaScript可以直接操作文档对象模型(DOM),添加、删除或修改HTML元素,实现页面动态效果。 ...
这意味着,JavaScript允许在表达式中进行不一致的类型操作,这可能会导致不明确或错误的结果。虽然JavaScript引擎会在运行时尝试将值隐式转换成预期的类型,但这种隐式转换可能会导致难以预见的错误。因此,在编写...
JavaScript,又称为ECMAScript,是一种广泛应用于网页和网络应用的脚本语言,尤其在Web开发中起着核心作用。它允许动态内容的创建,使得网站更加互动和用户友好。JavaScript主要运行在浏览器环境中,但随着Node.js等...
手册会解释如何捕获和处理运行时错误,以及如何自定义错误类型。 10. **ES6及以后的新特性**:随着ECMAScript标准的不断更新,JavaScript引入了许多新特性,如箭头函数、模板字符串、解构赋值、let和const、模块...
JavaScript是Web开发中不可或缺的一部分,尤其在前端领域,它提供了丰富的功能来实现动态交互和复杂的网页应用。Ajax,全称Asynchronous JavaScript and XML(异步JavaScript和XML),是一种创建动态网页的技术,...
例如,Microsoft IE会在某些版本中弹出错误警告框,显示错误类型和行号,而Mozilla Firefox则将错误记录在控制台中,用户需要手动打开开发者工具查看。MacOS Safari在默认设置下不显示JavaScript错误,但可以通过...
5. **弱类型与数据类型**:JavaScript是弱类型语言,数据类型包括基本类型(如`string`、`undefined`、`boolean`等)和引用类型,选项A正确,选项B中的`int`不是JavaScript的基本类型。 6. **循环与函数**:给定...
7. **错误处理**:书中详细介绍了JavaScript的异常处理机制,如何抛出和捕获错误。 8. **ES6及更新版本**:第六版还包括了ECMAScript 6(ES2015)及后续版本的新特性,如箭头函数、解构赋值、模板字符串、模块化...