断言在JavaScript中是什么意思?

我见过这样的情况:

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

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


当前回答

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

其他回答

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

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);

assert()是JavaScript中的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

如果使用现代浏览器或nodejs,则可以使用console。断言(表情,对象)。

欲了解更多信息:

Chrome API参考 Firefox Web控制台 Firebug控制台API IE控制台API 歌剧蜻蜓 Nodejs控制台API

如果你使用webpack,你可以只使用node.js断言库。尽管他们声称它“并不是一个通用的断言库”,但它对于特别的断言似乎已经足够了,而且在Node领域似乎没有竞争对手(Chai是为单元测试而设计的)。

const assert = require('assert');
...
assert(jqXHR.status == 201, "create response should be 201");

你需要使用webpack或browserify才能使用它,所以很明显,这只在那些已经在你的工作流中才有用。