断言在JavaScript中是什么意思?

我见过这样的情况:

assert(function1() && function2() && function3(), "some text");

并且想知道assert()方法做什么。


当前回答

其他答案很好:ECMAScript5中没有内置断言函数(例如,JavaScript基本上在任何地方都可以工作),但一些浏览器提供了断言函数或提供了提供该功能的附加组件。虽然最好使用一个完善的/流行的/维护的库,但出于学术目的,“穷人的断言”函数可能是这样的:

const assert = function(condition, message) {
    if (!condition)
        throw Error('Assert failed: ' + (message || ''));
};

assert(1 === 1); // Executes without problem
assert(false, 'Expected true');
// Yields 'Error: Assert failed: Expected true' in console

其他回答

如果第一个属性为假,断言将抛出错误消息,而第二个属性是要抛出的消息。

console.assert(condition,message);

有很多评论说断言在JavaScript中不存在,但console.assert()是JavaScript中的断言函数 断言的思想是找出错误发生的原因/位置。

console.assert(document.getElementById("title"), "You have no element with ID 'title'");
console.assert(document.getElementById("image"), "You have no element with ID 'image'");

在这里,您可以根据消息找到错误是什么。 这些错误消息将以红色显示到控制台,就像我们调用了console.error();

你可以使用断言来测试你的函数,例如:

console.assert(myAddFunction(5,8)===(5+8),"Failed on 5 and 8");

注意,条件可以是!= < >等

这通常用于通过提供一些测试用例来测试新创建的函数是否按预期工作,而不是用于生产。

要查看控制台中的更多函数,请执行console.log(console);

JavaScript本身没有标准的断言。也许你使用的库提供了这样的功能;例如,如果你在使用Node.js,也许你在使用断言模块。(提供实现控制台API的控制台的浏览器和其他环境提供console.assert。)

assert函数的通常含义是,如果传入函数的表达式为false,则抛出一个错误;这是断言检查一般概念的一部分。通常断言(正如它们所称)只在“测试”或“调试”构建中使用,并从生产代码中剥离出来。

假设有一个函数总是接受字符串。你会想知道是否有人用不是字符串的东西(没有像TypeScript或Flow这样的类型检查层)调用了这个函数。你可能会这样做:

assert(typeof argumentName === "string");

...如果条件为假,assert将抛出错误。

一个非常简单的版本是这样的:

function assert(condition, message) {
    if (!condition) {
        throw message || "Assertion failed";
    }
}

更好的是,利用Error对象,它具有收集堆栈跟踪的优点,例如:

function assert(condition, message) {
    if (!condition) {
        throw new Error(message || "Assertion failed");
    }
}

如果断言为假,则显示该消息。具体来说,如果第一个参数为假,则第二个参数(字符串消息)将被记录在开发人员工具控制台中。如果第一个参数是正确的,基本上什么都不会发生。一个简单的例子-我使用谷歌开发工具:

var isTrue = true;
var isFalse = false;
console.assert(isTrue, 'Equals true so will NOT log to the console.');
console.assert(isFalse, 'Equals false so WILL log to the console.');

单词或函数“assert”主要用于应用程序的测试部分。

断言函数是指示程序检查条件(也称为“断言”)的一种简短方式,如果条件不为True,它将抛出错误。

让我们看看它在"普通代码"中是怎样的

If (typeof "string" === "array") { 抛出错误('错误:"string" !== "array"'); }

使用assert你可以简单地写:

Assert (typeof "string" === "array")

在Javascript中,没有本地断言函数,所以你必须使用某个库中的断言函数。

简单介绍,可以查看这篇文章:

http://fredkschott.com/post/2014/05/nodejs-testing-essentials/

我希望这能有所帮助。

Assert()不是原生javascript函数。这是一个自定义函数。你必须在你的页面或文件中寻找它,并将其发布给任何人,以帮助确定它在做什么。