JavaScript 中的断言

2025 年 3 月 2 日 | 6 分钟阅读

什么是 JavaScript 中的断言?

在 JavaScript 中,断言是检查给定条件是否为真的语句。它通常用于调试和测试目的,以确保关于代码的某些条件或假设是有效的。

简单来说,通过使用断言,我们可以包含指示行和单词的开始和结束的边界,以及其他模式,这些模式帮助我们以某种方式指示匹配是可能的,其中包括先行断言、后行断言和条件表达式。

什么是 JavaScript 中的 console.assert()?

JavaScript 中,console.assert() 是一个用于为用户写入消息的方法。在 JavaScript 中,这些方法被写入控制台。

简单来说,JavaScript 中的 console.assert() 方法用于在“检查元素”下的控制台中,当某个条件不匹配或表达式返回布尔值 False 时,显示错误消息或特定消息。这很有用,因为已经有 alert 函数用于在网页 UI 中显示错误。

在 JavaScript 中,console.assert() 仅在该方法中给定的表达式为 false 时才打印消息。它有两个参数:第一个是表达式,第二个是消息。

语法

JavaScript console.assert() 方法的语法是

参数

JavaScript 中的 console.assert() 方法有两个参数,分别是

表达

在 JavaScript 中,表达式是此方法的必需参数。它也代表任何可以被求值的表达式。当我们在任何程序中运行此方法时,一旦执行到达表达式参数,表达式会首先被求值,然后根据结果,进一步的消息将被写入用户控制台。

使用此表达式,我们只能得到布尔值结果。如果表达式的结果为 true,则不会打印消息;如果表达式的结果为 false,则会将消息打印到控制台。

信息

在 JavaScript 中,消息也是 console.assert() 方法的必需参数。它包含需要打印到控制台的内容。

在 JavaScript 中,一旦执行到达消息参数,此参数会根据表达式参数的结果工作。现在,如果表达式的结果为 true,则不会打印消息;如果表达式的结果为 false,则会将消息打印到控制台。

示例

说明

如您在上面的示例中所见,我们定义了一个简单的 H1 标签和一个 H2 标签,这将帮助我们显示断言。在 style 标签中,我们定义了各种标签的颜色、字体和文本对齐方式。

现在,让我们看看 script 部分;我们首先定位了 MyElement ID,并检查该 ID 是否存在于 DOM 中。如果不存在,我们将打印一个简单的断言语句,显示目标 ID 不在 DOM 中。我们可以使用 console.assert() 方法来处理某件事是否完成的情况。

输出

Assertion in JavaScript

示例 2

说明

正如我们在上面的示例中看到的,我们定义了一个简单的 h1 和 h2 标签来显示断言。在 style 标签中,我们定义了各种标签的颜色、字体和文本对齐方式。

在 script 部分,我们定位了 MyDemo id,并验证了它在 DOM 中的存在。它为消息参数返回一个布尔值(true 或 false)。我们还初始化了一个名为 MyElement 的对象,其中包含两个键值对:产品及其类型。之后,我们验证了 ID 是否在 DOM 中存在,如果不存在,我们不采取任何行动。否则,我们使用 JavaScript console.assert() 方法打印该对象。

输出

Assertion in JavaScript

JavaScript 中的断言类型

边界类型断言

输入边界开始断言

在 JavaScript 中,脱字符号 (^) 用于匹配输入的开始。当启用多行标志时,它也可以匹配紧跟在换行符之后的位置。例如,如果我们使用 /^A/,它不会匹配 "an A" 中的 "A",但会匹配 "An A" 中的第一个 "A"。

输入边界结束断言

它严格匹配输入的结尾。当启用多行标志时,它也严格匹配紧接在换行符之前的位置。例如,/t$/ 绝不会匹配 "eater" 中的 "t",但会明确地匹配 "eat" 中的 "t"。

单词边界断言

单词边界是一个位置,其中一个单词字符之前或之后没有另一个单词字符,例如字母和空格之间。需要注意的是,匹配的单词边界不包含在匹配结果中,这意味着其长度为零。

示例

非单词边界断言

它匹配非单词边界。这是一个前一个字符和后一个字符类型相同的位置:要么两者都必须是单词字符,要么两者都必须是非单词字符,例如,在两个字母之间或两个空格之间。

字符串的开始和结束被认为是非单词字符。同样,匹配的非单词边界也不包含在匹配结果中。

其他断言

先行断言(Lookahead assertion)

它仅在 x 后面跟着 y 的情况下匹配 x。例如,/Rohit (?=Spart)/ 仅在 Rohit 后面跟着 Spart 时才匹配 Rohit。/Rohit(?=Spart|Frost)/ 仅在 Rohit 后面跟着 Spart 或 Frost 时才匹配 Rohit。

示例

负向先行断言(Negative lookahead assertion)

它仅在 x 后面不跟着 y 的情况下匹配 x。例如,/\d+(?!\.)/ 仅在数字后面不跟小数点时才匹配该数字。/\d+(?!\.)/.exec('3.141') 会匹配 141 而不是 3。

后行断言(Lookbehind assertion)

“它仅在 'x' 前面是 'y' 的情况下匹配 'x'。例如,/(?<=Rohit)Spart/ 仅在 'Spart' 前面是 'Rohit' 时才匹配 'Spart'。/(?<=Rohit|Tom)Spart 仅在 'Spart' 前面是 'Rohit' 或 'Tom' 时才匹配 'Spart'。然而,'Rohit' 和 'Tom' 都不是匹配结果的一部分。”

在 JavaScript 中使用断言的优势

  • 在 JavaScript 中,断言帮助我们减少调试代码的时间。
  • 在 JavaScript 中,如果开发时考虑到重用性,它可以在多个项目中重复使用。
  • 它还有助于我们提高错误检测能力。
  • 在 JavaScript 中,断言可以更好地监控设计,并有助于更轻松地调试测试失败。
  • 我们可以将断言用于 JavaScript 设计的动态仿真和形式验证。

结论

总而言之,JavaScript 的 console.assert() 是 JavaScript 语言中的一个方法,用于为用户写入消息。这些消息被写入控制台。console.assert() 方法有两个参数。第一个参数是表达式,第二个参数是消息。这两个参数对于 console.assert() 方法在 JavaScript 中的正常工作都是必需的。

JavaScript assert 方法的表达式参数包含一个条件,该条件在求值后提供一个布尔值,即 true 或 false。消息参数是一个字符串或一个对象,它被写入控制台。有多种现代浏览器支持 console.assert() 方法,例如 Internet Explorer、Mozilla Firefox、Microsoft Edge、Google Chrome 浏览器、Safari 和 Opera 浏览器。