如何在我的基本javascript计算程序中使用断言?
我试图在我的程序中实现断言(该程序使用用户输入的维度计算一个盒子的体积),以检查表达式,例如用户输入是否真的是一个数字,以及它是否大于零。我创建了一个函数assert,它接收要测试的表达式和它需要显示的消息(如果有错误,但它对我不起作用)。我将编写调用assert函数的代码行,比如assert((typeof length=='number'),'thelength必须是一个数字');但是当我这么做的时候,这个程序就根本不起作用了。如果我添加console.assert((typeof length=='number'),'长度必须是数字',程序运行,但它不执行我需要它执行的错误检查。我才刚刚开始学习如何处理js异常,所以我甚至不确定我是否正确地实现了这一点如何在我的基本javascript计算程序中使用断言?,javascript,html,exception-handling,assertions,Javascript,Html,Exception Handling,Assertions,我试图在我的程序中实现断言(该程序使用用户输入的维度计算一个盒子的体积),以检查表达式,例如用户输入是否真的是一个数字,以及它是否大于零。我创建了一个函数assert,它接收要测试的表达式和它需要显示的消息(如果有错误,但它对我不起作用)。我将编写调用assert函数的代码行,比如assert((typeof length=='number'),'thelength必须是一个数字');但是当我这么做的时候,这个程序就根本不起作用了。如果我添加console.assert((typeof leng
函数计算(){
"严格使用",;
//声明用于计算长方体体积的变量
风险价值量;
//子弹4
var length=document.getElementById('length')。值;
assert((typeof length=='number'),'长度必须是数字');
断言((长度>0),“长度必须大于0”);
var width=document.getElementById('width')。值;
assert((typeof width=='number'),'宽度必须是数字');
断言((宽度>0),“宽度必须大于0”;
var height=document.getElementById('height')。值;
assert((typeof height=='number'),'高度必须是数字');
断言((高度>0),“高度必须大于0”);
//计算体积
体积=长度*宽度*高度;
体积=固定体积(2);
assert(!isNaN(volume)),“该卷不是一个数字。”);
//显示音量
document.getElementById('volume')。value=volume;
返回false;
}
//子弹4
函数断言(表达式、消息){
如果(!expression)抛出{name:'assertionexception',message:message};
}
函数init(){
"严格使用",;
document.getElementById('theForm')。onsubmit=calculate;
}
window.onload=init代码>
盒式计算器
使用此表格计算长方体的体积
长度
宽度
高度
卷
断言之前的快速console.log()
将显示任何DOM.value
的类型是字符串
快速修复方法是将Number()
应用于这些字符串(length
、height
和width
),使它们成为数字
注意:将Number()
应用于非Number的字符串会生成类型为Number
的NaN
,因此您还需要更改断言语句。
我建议每项措施采用以下格式:
var length = Number(document.getElementById('length').value);
console.assert(!isNaN(length), 'The length must be a number');
console.assert( (length > 0), 'The length must be larger than 0.');