frr*_*lod 255 javascript assert
assertJavaScript 中的含义是什么?
我见过类似的东西:
assert(function1() && function2() && function3(), "some text");
Run Code Online (Sandbox Code Playgroud)
并想知道该方法的assert()作用.
T.J*_*der 353
assert在JavaScript 中没有(但是有关于添加一个的讨论,但它处于早期阶段).也许你正在使用一些提供一个库的库.通常的意思是如果传递给函数的表达式为false则抛出错误; 这是断言检查的一般概念的一部分.通常断言(因为它们被称为)仅用于"测试"或"调试"构建并从生产代码中删除.
假设你有一个应该总是接受字符串的函数.你想知道是否有人用不是字符串的东西调用了那个函数.所以你可能会这样做:
assert(typeof argumentName === "string");
Run Code Online (Sandbox Code Playgroud)
... assert如果条件错误,将在哪里抛出错误.
一个非常简单的版本看起来像这样:
function assert(condition, message) {
if (!condition) {
throw message || "Assertion failed";
}
}
Run Code Online (Sandbox Code Playgroud)
更好的是,Error如果JavaScript引擎支持它,可以使用该对象(实际上可能不支持),这有利于收集堆栈跟踪等等:
function assert(condition, message) {
if (!condition) {
message = message || "Assertion failed";
if (typeof Error !== "undefined") {
throw new Error(message);
}
throw message; // Fallback
}
}
Run Code Online (Sandbox Code Playgroud)
甚至IE8也有Error(虽然它没有stack属性,但现代引擎[包括现代IE] 都有).
小智 153
如果使用现代浏览器或nodejs,您可以使用console.assert(expression, object).
欲获得更多信息:
iX3*_*iX3 27
其他答案都很好: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
Run Code Online (Sandbox Code Playgroud)
如果断言为假,则显示该消息。具体来说,如果第一个参数为 false,则第二个参数(字符串消息)将记录在开发人员工具控制台中。如果第一个参数为真,则基本上什么也不会发生。使用 Google 开发者工具的简单示例 \xe2\x80\x93 I\xe2\x80\x99m:
\n\nvar isTrue = true;\nvar isFalse = false;\nconsole.assert(isTrue, 'Equals true so will NOT log to the console.');\nconsole.assert(isFalse, 'Equals false so WILL log to the console.');\nRun Code Online (Sandbox Code Playgroud)\n
检查一下:http://net.tutsplus.com/tutorials/javascript-ajax/quick-tip-quick-and-easy-javascript-testing-with-assert/
它用于测试JavaScript.令人惊讶的是,在测试时,这段代码只有五到六行,可以为您的代码提供强大的功能和控制能力.
assert函数接受两个参数:
结果:一个布尔值,它引用您的测试是通过还是失败
描述:测试的简短描述.
断言函数然后简单地创建一个列表项,应用"pass"或"fail"类,这取决于您的测试是返回true还是false,然后将描述附加到列表项.最后,将该编码块添加到页面中.这很简单,但效果很好.
| 归档时间: |
|
| 查看次数: |
192901 次 |
| 最近记录: |