首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

你需要了解的几种 JavaScript 异常类型

无论是浏览器控制台还是 Node.js 的服务端,我们会在各种地方看到 JavaScript 异常,异常处理是编写程序必备的基础能力,在学习异常处理之前,了解 JavaScript 中的几种异常类型是非常有必要的...程序运行过程中抛出的异常一般都有具体的类型,Error 类型一般都是开发人员自己抛出的异常。...ReferenceError - 引用错误 引用一个不存在的变量时发生的错误,每当我们创建或定义一个变量时,变量名称都会写入一个变量存储中心中。...这个变量存储中心就像键值存储一样,每当我们引用变量时,它都去存储中找到 Key 并提取并返回 Value,如果我们要找的变量不在存储中,就会抛出 ReferenceError。 ?...请注意,如果我们调用的是一个已经存在的变量的一个不存在的属性,则不会抛出 ReferenceError,因为变量本身已经在存储中了,调用它不存在的属性只会是未定义状态,也就是 undefined: ?

1.9K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    你应该知道的7 个 JavaScript 原生错误类型

    从浏览器控制台到运行 Node.js 的终端,我们到处都会看到错误。 本文的重点是概述我们在 JS 开发过程中可能遇到的错误类型。 ---- 1....1$ node errors 2errors.js:3 3dog 4^ReferenceError: dog is not defined 每当我们创建或定义变量时,变量名称都会写入环境记录中。...调用尚未定义的函数。 现在,当我们创建或定义一个没有赋值的变量时。变量将其键作为变量名写入环境记录,但其值将会保持未定义的状态。...can't find it 注意:未定义的变量不会抛出 ReferenceError,因为它在于环境记录中的值尚未设置。 3. SyntaxError 这是最常见的错误。...JS 中的 URI(统一资源指示符)具有以下功能:decodeURI、decodeURIComponent 等。 如果我们用错误的参数去调用其中任何一个,将得会到一个 URIError。

    2.7K20

    实现nest中未定义参数的入参校验

    前言 当我们在dto层定义好参数字段后,客户端在调用时传入了未定义的字段,此时我们需要报错告知客户端这个字段不存在,在nest中默认不会报错,本文将分享这个问题的解决方案,欢迎各位感兴趣的开发者阅读本文...场景概述 我们继续用文章“使用NestJS搭建服务端应用[1]”所创建的项目,以此为基础来描述这个问题,如下所述代码所示,我们在AppDto.ts中定义了三个字段。...image-20220214230136474 ❝小tips:在Java中,我们在实体类中定义了字段,SpringBoot在处理客户端参数,对其进行序列化时,就可以直接抛出异常。...解决方案 在解决这个问题时,我在网络上检索了一波,没发现合适的方案,最后,求助了一波网友,得到的方案是自己在controller层写方法遍历参数的所有key对其进行校验,然后抛出异常。...app.listen(3000); } bootstrap(); 本以为万事大吉了,执行结果却不尽人意 image-20220214233144828 问题解决 此时的我,陷入了沉思,按照描述应该是这个参数才对啊

    3.5K30

    动态执行脚本

    浏览器中动态执行脚本 eval() 函数会将传入的字符串当做 JavaScript 代码进行执行,返回字符串中代码的返回值;如果参数不是字符串将原封不动返回。...因为`x`未定义 (0, eval)('x + y'); // 另一个间接调用的例子 } eval 中函数作为字符串被定义需要“(”和“)”作为前缀和后缀 let fctStr1 = 'function...请查看 https://odino.org/eval-no-more-understanding-vm-vm2-nodejs/ vm2 Node.js 的高级 vm/sandbox,https:...//github.com/patriksimek/vm2 上下文隔离化 所有用 Node.js 所运行的 JavaScript 代码都是在一个“上下文”的作用域中被执行的。...vm.createContext([contextObject[, options]]) contextObject参数(如果 contextObject 为 undefined,则为新创建的对象)在内部与

    3.5K31

    了解一下什么是ES6的“暂时性死区”!

    var tmp = 123; if (true) { tmp = 'abc'; // ReferenceError let tmp; } 上面代码中,存在全局变量tmp,但是块级作用域内let...if (true) { // TDZ开始 tmp = 'abc'; // ReferenceError console.log(tmp); // ReferenceError let...typeof x; // ReferenceError let x; 上面代码中,变量x使用let命令声明,所以在声明之前,都属于x的“死区”,只要用到该变量就会报错。...function bar(x = y, y = 2) { return [x, y]; } bar(); // 报错 上面代码中,调用bar函数之所以报错(某些实现可能不报错),是因为参数x默认值等于另一个参数...上面这行就属于这个情况,在变量x的声明语句还没有执行完成前,就去取x的值,导致报错”x 未定义“。

    1.9K20

    7种你应该知道的JavaScript常见的错误

    从浏览器的控制台到运行Node.js的计算机终端,我们到处都会看到各类错误。 这篇文章的重点是概述我们在JS开发过程中可能遇到的错误类型。 1....cat将返回“ cat”,而dog会引发ReferenceError,因为在环境记录中找不到名为dog的变量。...$ node errors errors.js:3 dog ^ ReferenceError: dog is not defined 每当我们创建或定义变量时,变量名称都会写入环境记录中。...can't find it 注意:未定义的变量不会抛出ReferenceError,因为它存在于环境记录中只是它的值尚未设置。 3. SyntaxError 这是我们遇到的最常见的错误。...JS中的URI(统一资源指示符)具有以下功能:decodeURI,decodeURIComponent等。 如果我们用错误的参数调用其中任何一个,我们将得到一个URIError。

    2.6K10

    Node.js 的错误处理机制

    ERROR简介 Node.js 的错误分为四类: 标准 JavaScript 错误,如 EvalError,SynctaxError,RangeError,ReferenceError,TypeError...和异步API Node.js的API主要有两种风格,同步和异步,如何区分呢,大部分异步API一般都有一个回调函数 callback 作为其参数,而大部分同步API则不会,例如: // 异步 API const...风格的回调 Node.js 大部分的异步方法都接受一个回调函数作为参数,我们通过该回调函数的第一个参数来判断是否发生了错误,如果是 null,则没有发生错误,如果不是 null,则调用该方法出现了错误...,则该参数会在追踪栈信息中隐藏: function MyError() { Error.captureStackTrace(this, MyError); // MyError会在结果中隐藏 } new...追踪栈信息 try { Error.stackTraceLimit = 15; const m = z++; } catch (e) { console.log(e.stack); } // ReferenceError

    2.1K40

    ReferenceError: x is not defined*:变量 `x` 未定义的完美解决方法

    ReferenceError: x is not defined*:变量 x 未定义的完美解决方法 摘要* 大家好,我是默语,今天我们要讨论的是一个常见但容易让人头疼的错误——ReferenceError...这是开发者在JavaScript中经常遇到的问题,通常意味着我们在代码中引用了一个未定义的变量。本文将深入分析这个错误的成因,并提供一些实用的解决方案,帮助大家快速排查并解决这个问题。 1....引言* 在JavaScript开发中,ReferenceError*是一个非常常见的错误,特别是在处理变量时。通常情况下,这个错误表明你在代码中引用了一个未定义的变量,也就是变量x。...例如: function example() { let y = 10; } console.log(y); // ReferenceError: y is not defined 在这个例子中...2.3 使用了尚未初始化的变量* 即使变量已经声明,但如果在它初始化之前就尝试访问它,也会导致 ReferenceError: console.log(z); let z = 5; 在这段代码中,由于z

    45610

    javaScript代码飘红报错看不懂?读完这篇文章再试试!

    若要快速解决项目开发过程中遇到的各种刁钻Error,首先要快速识破它的本质!而不是一味的依赖第六感去猜测,更不该盲目凭借自身的幸运值去不断尝试解决!...variable[ˈveəriəbl] 变量 二、带你领略JS常见的四种Error类型 1、ReferenceError(引用错误):使用了未定义的变量。...// 1、变量未定义便直接使用 console.log(my); // 报错:Uncaught ReferenceError: my is not defined // 翻译:my未定义 // 2、将变量赋值给一个无法被赋值的东东...、TypeError(类型错误):变量或参数不是预期类型,或调用对象不存在的属性方法。...// 1、变量不是预期类型,比如对字符串、布尔值、数值等原始类型的值使用new命令。

    5.5K20

    你必须掌握的 7 种 JavaScript 错误类型

    从浏览器控制台到运行Node.js的计算机终端,我们到处都会看到错误。 这篇文章重点介绍了在JS开发过程中可能遇到的 7 种错误类型。...dog ^ ReferenceError: dog is not defined 每当我们创建或定义变量时,变量名称都会写入环境记录中。...调用尚未定义的函数。 现在,当我们创建或定义一个没有赋值的变量时。 该变量以键作为变量名称写入环境记录,但该值将保持未定义状态。...can't find it 注意:未定义的变量不会抛出ReferenceError,因为它存在于环境记录中只是它的值尚未设置。...如果我们使用错误的参数调用它们中的任何一个,我们将得到URIErro decodeURI("%") ^ URIError: URI malformed encodeURI,获取URI的未编码版本。

    4.2K10
    领券