JS错误信息类型

1.SyntaxError 语法错误

①变量名不规范

//  变量名不规范
var 1 = 1;

未被捕获的语法错误,这个错误是js机制自动抛出来的 意外的数字

//  下面两个是同一种情况
var 1a = 1;
function 1test(){}

无效或意外的标记

//  关键字赋值
new = 5;

意外的标记 =

下面最后加了冒号

//  基本的语法错误
var a = 5:

意外的标记 :


2.ReferenceError 引用错误

//  变量或者函数未被声明
test()

test没有被定义

//   给无法被赋值的对象赋值的时候
var a = 1 = 2
var a = 2;
console.log(a) = 3

无效的左侧赋值


3.RangeError 范围错误

//   数组长度为负数时
var arr = [1,2,3]
arr.length = -2

无效的数组长度

//  对象方法参数超出可行范围 
var num = new Number(66.66);
console.log(num.toFixed(-1));

数字参数参数必须在0到100


4.TypeError 类型错误

//   调用不存在的方法
123()

123不管有没有定义 它都不是一个方法 根本就没有判断定义了没有,先判断类型,是不是属于一个function,如果是一个function 后面就可以跟括号

var obj = {};
obj.say();

并没有在obj里找到say这个方法,这个时候就会报这个错误 因为 点 后跟的是属性名但是带了括号,属性不可能像方法一样执行, 所以要看是不是方法,如果say不带括号就不会报错,不带括号时会认为是个属性但没有赋值

//  实例化原始值的问题
var a = new  'string';

new后面必须要是一个构造器 ,new一个原始值会报错 new后要跟函数 不管是构造函数还是普通函数,只要new函数 就会有实例化 'string' 不是函数就会报错

var a = new  123;

这个和上面情况一样,不是构造函数


5.URIError URI错误

URI 统一资源标识符 UNIFORM RESOURCE IDENTIFIER
URL 统一资源定位符 UNIFORM RESOURCE LOCATOR
URN 统一资源名称 UNIFORM RESOURCE NAME
URL和URN是URI的子集,属于URI
URL有协议有域名有资源空间 通过一个地址能访问到特定的页面
URN 没有了URL中的协议 相当于一个id 名字 指代了资源的唯一性 所以叫NAME
let str = "测试字符";
let encodeStr = encodeURI(str);
console.log(encodeStr);     //  %E6%B5%8B%E8%AF%95%E5%AD%97%E7%AC%A6
let decodeStr = decodeURI(encodeStr);
console.log(decodeStr);     //  测试字符
上面是使用encodeURI方法把中文转为中文编码字符 是js内置的方法,
再使用decodeURI方法把中文编码字符转为中文,也是js内置的方法 ,接下来就随便输个中文编码 看能不能转成中文
let str = "%ef%erffv";
console.log(decodeURI(str));

URI不符合常规的


 6.EvalError eval函数执行错误

现在很少见 因为很少使用eval方法 (不知道怎么让它报错)
es3开始 eval()函数不推荐使用,有性能问题, 难调试, input获取的值和eval混在一起可能会有安全隐患
eval()最大的作用是字符串里写js是可以执行的
eval("var a = 1;console.log(a)")

var obj = {
    a:1,
    b:2
}
console.log(eval("obj"));

打印的不是字符串obj,而是一个对象 换成 console.log(eval(obj)) 也是一样的

然而eval()方法最大的用处不是在这里
json字符串 使用eval()方法后会变成json对象
eval(jsonStr)
json是用来存储数据的,json字符串和json对象 里面不可以嵌有方法,如果里面写的有方法 就是一个普通的对象

这六种错误都可以人为的抛出
var error = new Error("代码错误了")
console.log(error);

会直接出来Error
人为的实例化一个错误 可以实例化构造函数
new SyntaxError("代码错误")
每一种错误类型都对应了一个构造函数,这些构造函数都可以通过实例化来输出响应的错误
如果想输出错误变成红色的 使用console.error()方法

转载于:https://www.cnblogs.com/easth/p/js_error_type.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 如果要在 JavaScript 中检查 GET 变量的错误信息,可以使用以下方法: 1. 使用 `window.location.search` 获取 URL 中的查询字符串,然后使用 `new URLSearchParams()` 构造函数将其转换为一个 URLSearchParams 对象,该对象提供了用于访问和解析查询字符串的方法。 例如,假设当前 URL 为 `http://example.com/?name=John&age=30`,则可以使用以下代码来检索 GET 变量: ``` const searchParams = new URLSearchParams(window.location.search); const name = searchParams.get('name'); const age = searchParams.get('age'); ``` 2. 使用 `window.location.href` 获取整个 URL,然后使用正则表达式或其他字符串处理方法来提取 GET 变量。 例如,可以使用以下代码来检索 GET 变量: ``` const url = window.location.href; const name = url.match(/name=([^&]+)/)[1]; const age = url.match(/age=([^&]+)/)[1]; ``` 注意: - 在检索 GET 变量时,应当注意 URL 中可能存在的编码问题。例如,如果 GET 变量中包含特殊字符(例如空格或汉字),则可能需要使用 `decodeURIComponent()` 函数将其解码。 例如: ``` const name = decodeURIComponent(searchParams.get('name')); ``` - 在检索 GET 变量时,应当注意变量是否存在。使用 `URLSearchParams.get()` 方法时,如 ### 回答2: 在JavaScript中,可以通过多种方式来检查和处理GET变量的错误信息。 首先,可以通过使用`typeof`操作符来检查GET变量的类型。例如,可以使用以下代码来检查GET变量`id`的类型是否为字符串: ``` if(typeof id !== 'string') { console.error("错误:id必须是字符串类型"); } ``` 另外,如果需要检查GET变量是否存在,可以使用`hasOwnProperty`方法来检查。例如,以下代码用于检查GET变量`name`是否存在: ``` if(!params.hasOwnProperty('name')) { console.error("错误:缺少必填参数name"); } ``` 此外,如果需要检查GET变量的取值范围,可以使用条件语句进行判断。例如,以下代码用于检查GET变量`age`的取值是否在有效范围内: ``` if(age < 0 || age > 100) { console.error("错误:年龄必须在0到100之间"); } ``` 还可以使用正则表达式来检查GET变量的格式是否符合要求。例如,以下代码用于检查GET变量`email`是否符合电子邮件格式: ``` const emailRegExp = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; if(!emailRegExp.test(email)) { console.error("错误:请输入有效的电子邮件地址"); } ``` 总结来说,通过使用`typeof`操作符、`hasOwnProperty`方法、条件语句和正则表达式,可以对GET变量的错误信息进行有效检查和处理。在实际开发中,根据具体需求进行相应的错误信息判断和处理,以确保程序的健壮性和稳定性。 ### 回答3: 在JavaScript中,我们可以通过检查GET变量来捕获可能出现的错误信息。 GET变量是通过URL中的查询字符串传递给服务器的参数,可以使用JavaScript的内置方法来获取它们。我们可以使用location对象的search属性来获取整个查询字符串,然后使用字符串操作方法来处理它。 首先,我们需要检查查询字符串是否存在。我们可以使用search属性来获取查询字符串,然后使用if语句检查它是否为空。如果为空,我们可以认为没有传递任何GET变量,因此没有错误信息。 ```javascript if (location.search) { // 查询字符串不为空,有GET变量 } else { // 查询字符串为空,没有GET变量,没有错误信息 } ``` 接下来,我们可以使用字符串操作方法来解析查询字符串并获取各个GET变量的值。我们可以使用split方法将查询字符串按照"&"分割成一个数组,然后使用循环遍历数组并使用split方法再次分割成键值对。 ```javascript var queryArray = location.search.slice(1).split("&"); for (var i = 0; i < queryArray.length; i++) { var pair = queryArray[i].split("="); var key = decodeURIComponent(pair[0]); var value = decodeURIComponent(pair[1]); // 在这里进行对GET变量的处理 } ``` 在处理GET变量的过程中,我们还可以进行一些额外的错误检查。例如,我们可以检查GET变量的值是否符合我们预期的格式,或者是否包含非法字符等。 最后,如果需要显示错误信息,我们可以将错误信息输出到页面上的某个元素中,例如一个div或者一个警告框。 总之,使用JavaScript的内置方法可以方便地检查GET变量的错误信息,并进行相应的处理和显示。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值