Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在我的基本javascript计算程序中使用断言?_Javascript_Html_Exception Handling_Assertions - Fatal编程技术网

如何在我的基本javascript计算程序中使用断言?

如何在我的基本javascript计算程序中使用断言?,javascript,html,exception-handling,assertions,Javascript,Html,Exception Handling,Assertions,我试图在我的程序中实现断言(该程序使用用户输入的维度计算一个盒子的体积),以检查表达式,例如用户输入是否真的是一个数字,以及它是否大于零。我创建了一个函数assert,它接收要测试的表达式和它需要显示的消息(如果有错误,但它对我不起作用)。我将编写调用assert函数的代码行,比如assert((typeof length=='number'),'thelength必须是一个数字');但是当我这么做的时候,这个程序就根本不起作用了。如果我添加console.assert((typeof leng

我试图在我的程序中实现断言(该程序使用用户输入的维度计算一个盒子的体积),以检查表达式,例如用户输入是否真的是一个数字,以及它是否大于零。我创建了一个函数assert,它接收要测试的表达式和它需要显示的消息(如果有错误,但它对我不起作用)。我将编写调用assert函数的代码行,比如assert((typeof length=='number'),'thelength必须是一个数字');但是当我这么做的时候,这个程序就根本不起作用了。如果我添加console.assert((typeof length=='number'),'长度必须是数字',程序运行,但它不执行我需要它执行的错误检查。我才刚刚开始学习如何处理js异常,所以我甚至不确定我是否正确地实现了这一点

函数计算(){
"严格使用",;
//声明用于计算长方体体积的变量
风险价值量;
//子弹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.');