assert
在JavaScript中是什么意思?
我见过类似这样的事情:
assert(function1() && function2() && function3(), "some text");
并且想知道方法assert()
做什么.
assert
在JavaScript中是什么意思?
我见过类似这样的事情:
assert(function1() && function2() && function3(), "some text");
并且想知道方法assert()
做什么.
JavaScript本身没有标准assert
.也许你正在使用某个图书馆提供一个;例如,如果使用Node.js,也许你用的是assertion module.(浏览器和其他提供实现Console API的控制台的环境提供了console.assert
.)
assert
函数的通常含义是,如果传入函数的表达式为false,则抛出错误;这是assertion checking的一般概念的一部分.通常,断言(它们被称为断言)只在"测试"或"调试"构建中使用,并从生产代码中剥离出来.
假设你有一个函数,它应该接受一个字符串.您可能想知道是否有人用非字符串的东西调用了该函数(没有像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");
}
}