10秒钟内说出js中有哪些内置错误类型

本文详细解释了JavaScript中的四种内置错误类型:ReferenceError(未声明的变量),RangeError(数值越界),TypeError(类型错误),以及SyntaxError(语法错误)。此外,还介绍了如何创建自定义错误和处理常见错误。同时提到了前端开发者的学习资源,包括《2024年Web前端开发全套学习资料》.
摘要由CSDN通过智能技术生成

使用未声明的变量

把变量赋值给一个无法赋值的xx

表示:左侧的赋值无效

捕获一个错误

try {

var a = undefinedVariable;

} catch (e) {

console.log(e instanceof ReferenceError); // true

console.log(e.message);                   // “undefinedVariable is not defined”

console.log(e.name);                      // “ReferenceError”

console.log(e.fileName);                  // “Scratchpad/1”

console.log(e.lineNumber);                // 2

console.log(e.columnNumber);              // 6

console.log(e.stack);                     // “@Scratchpad/2:2:7\n”

}

新建错误

try {

throw new ReferenceError(‘Hello’, ‘aaa.js’, 10);

} catch (e) {

console.log(e instanceof ReferenceError); // true

console.log(e.message);                   // “Hello”

console.log(e.name);                      // “ReferenceError”

console.log(e.fileName);                  // “aaa.js”

console.log(e.lineNumber);                // 10

console.log(e.columnNumber);              // 0

console.log(e.stack);                     // “@Scratchpad/2:2:9\n”

}

内置错误类型2:RangeError

==================

常见指数:⭐⭐⭐ 说实话,不太常见,但很容易构造

会在数值越界时抛出.例如,定义数组时如果设置了不支持的长度,如-1,又或者没有给递归设置停止条件时触发。

该类型在JavaScript发生不多。

超过数组最大长度限制

自定义RangeError错误

var check = function(num) {

if (num < MIN || num > MAX) {

throw new RangeError('Parameter must be between ’ + MIN + ’ and ’ + MAX);

}

};

try {

check(500);

}

catch (e) {

if (e instanceof RangeError) {

// 处理越界错误

}

}

内置错误类型3:TypeError

=================

常见指数:⭐⭐⭐⭐ 使用ts之前可能会有,ts之后应该能干掉一大部分

TypeError在JavaScript中很常见,主要发生变量在运行时的访问不是预期类型,或者访问不存在的方法时,尤其是在使用类型特定的操作而变量类型不对时。

在给函数传参前没有验证的情况下,错误发生较多。

比如a变量是个基本类型,却被当做函数调用

比如访问不存在的方法

内置错误类型4:SyntaxError

===================

常见指数:⭐⭐⭐⭐⭐ 太常见了,一般的在开发环境,调试的时候

这是最常见的错误。当我们输入 JS 引擎不能理解的代码时,就会发生这个错误。

JS 引擎在解析期间会捕获了这个错误,而不是运行时。

或者给eval()传入的字符串包含JavaScript语法错误时,也会抛出此异常

内置错误类型5:URIError

================

常见指数:⭐ 很少见

URIError只会在使用encodeURL()或decodeURL()时,传入了格式错误的URL时发生,但非常罕见,因为上面两个函数非常稳健.

比如对空格进行编码,然后把编码的结果改为非法的结果,对该结果再进行解码,就会抛出异常

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

给大家分享一些关于HTML的面试题,有需要的朋友可以戳这里免费领取,先到先得哦。


觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)**

[外链图片转存中…(img-Kc6thHGj-1713426359766)]

最后

给大家分享一些关于HTML的面试题,有需要的朋友可以戳这里免费领取,先到先得哦。

[外链图片转存中…(img-3kxZFjQs-1713426359766)]
[外链图片转存中…(img-uySxB233-1713426359767)]

### 回答1: 可以使用 JavaScript 的 setTimeout() 函数来实现,它会在指定的时间后执行指定的代码,比如:setTimeout(function(){window.close()}, 10000); ### 回答2: 要实现在JavaScript中弹出一个窗口后10秒后自动关闭,可以使用setTimeout()函数和window.close()方法。 首先,使用window.open()函数打开新窗口,并将返回的窗口对象存储在一个变量中,如下所示: var newWindow = window.open("yourURL", "窗口名称", "窗口特性"); 在这里,将"yourURL"替换为你要打开的URL,"窗口名称"替换为新窗口的名称,"窗口特性"替换为新窗口的一些设置,例如大小、位置等。 接下来,使用setTimeout()函数将在10秒后执行关闭窗口的操作。在setTimeout()函数中,将使用window.close()方法关闭窗口,如下所示: setTimeout(function(){ newWindow.close(); }, 10000); 在这里,匿名函数将在10秒后执行,其中调用了newWindow.close()方法来关闭弹出窗口。 完整的代码如下所示: var newWindow = window.open("yourURL", "窗口名称", "窗口特性"); setTimeout(function(){ newWindow.close(); }, 10000); 请确保将"yourURL"和"窗口名称"替换为你实际要使用的URL和窗口名称。 ### 回答3: 在JavaScript中实现弹出一个窗口后10秒钟后自动关闭的功能,可以使用`setTimeout`函数和`window.close`方法。 代码如下: ```javascript // 弹出窗口 var newWindow = window.open("http://example.com", "myWindow"); // 设置定时器 setTimeout(function() { // 关闭窗口 newWindow.close(); }, 10000); ``` 首先,我们使用`window.open`方法打开一个新的窗口,该方法接受两个参数,第一个参数是URL地址,第二个参数是窗口的名称,我们将其存储在变量`newWindow`中。 然后,使用`setTimeout`函数设置一个定时器,该函数接受两个参数,第一个参数是要执行的函数,第二个参数是延迟的时间(以毫秒为单位)。在这里,我们将要执行的函数作为匿名函数传递给`setTimeout`,并将延迟时间设置为10000毫秒(即10秒)。 在定时器函数中,我们使用`window.close`方法关闭窗口,该方法没有参数。 以上代码可以实现在弹出一个窗口后,10秒钟后自动关闭弹出窗口的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值