作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下来自现代 Javascript 练习的简单代码,用于计算球体的体积,它包含一个检查以确保已输入半径值的部分。
我输入了一个负数来测试这个函数,它起作用了,但是我对控制台中显示的内容很感兴趣,所以我检查了。我结束了看到错误在日志中闪烁然后消失 - 太快无法阅读。
这只是当 if 语句的计算结果为 false 时发生的情况吗?为什么这个错误显示然后几乎被清除立即地?我知道我可以使用另一种方法来调试它(也就是使用 console.log 或通过其他方式记录问题),我只是想知道为什么这个错误会消失。
HTML:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Volume of a Sphere Calculator</title>
<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link rel="stylesheet" href="css/styles.css">
</head>
<body>
<!-- sphere.html -->
<form action="" method="post" id="theForm">
<fieldset>
<p>Use this form to calculate the volume of a sphere.</p>
<div>
<label for="radius">Radius</label>
<input type="text" name="radius" id="radius" required></div>
<div>
<label for="volume">Volume</label>
<input type="text" name="volume" id="volume"></div>
<div>
<input type="submit" value="Calculate" id="submit"></div>
</fieldset>
</form>
<script src="js/sphere.js"></script>
</body>
</html>
JS:
function calculate() {
'use strict';
var volume;
var radius = document.getElementById('radius');
if (radius && (radius.value > 0)){
volume = (4/3) * Math.PI * Math.pow(radius.value, 3);
}
volume = volume.toFixed(4);
document.getElementById('volume').value = volume;
return false;
}
function init() {
'use strict';
var theForm = document.getElementById('theForm');
theForm.onsubmit = calculate;
}
window.onload = init;
最佳答案
因为这是针对我的 console.log 输出出现并迅速消失的问题的 Google 最佳匹配项,所以这发生在我身上,因为我要么有一组空的 label 标记错位,要么是没有任何操作的表单。删除这些标签会导致 JavaScript 和 console.log() 正常工作。
关于JavaScript 控制台日志在 if 语句评估为 false 后自行清除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14148903/
我发现以下帖子非常有帮助: How to pickle yourself? 但是,此解决方案的局限性在于,重新加载类时,它不会以其“运行时”状态返回。即它将重新加载所有变量等以及类在转储时的一般状态.
我是一名优秀的程序员,十分优秀!