Javascript 使用slice();实现算术运算的方法
我的目标是使用单个输入来收集数字和字符串,然后使用它来确定数学运算。 例如,我解析值,例如√64打算求64的平方根。知道这不是有效的javascript,所以我决定获取结果为[0]的第一个字符;那是√ 然后用result.slice1将剩余的值切掉;也就是64,那么当结果[0]=√ 则Math.sqrtsliceVal为true。这看起来很完美,在移动编辑器中运行良好,但在任何web浏览器中都无法运行Javascript 使用slice();实现算术运算的方法,javascript,Javascript,我的目标是使用单个输入来收集数字和字符串,然后使用它来确定数学运算。 例如,我解析值,例如√64打算求64的平方根。知道这不是有效的javascript,所以我决定获取结果为[0]的第一个字符;那是√ 然后用result.slice1将剩余的值切掉;也就是64,那么当结果[0]=√ 则Math.sqrtsliceVal为true。这看起来很完美,在移动编辑器中运行良好,但在任何web浏览器中都无法运行 function actn() { var input = document.get
function actn() {
var input = document.getElementById("input").value;
var display = document.getElementById("display");
var result = input.toString();
var firstVal = result[0];
if (firstVal == "√") {
var sliceVal = result.slice(1);
display.innerHTML = Math.sqrt(sliceVal);
}
}
我不知道为什么它没有在您的终端运行,但它完全按照您的要求工作,我测试了上述代码:
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
function actn() {
var input = document.getElementById("test").value;
var result = input.toString();
var firstVal = result[0];
if (firstVal == "√") {
var sliceVal = result.slice(1);
alert(Math.sqrt(sliceVal));
}
alert("No match found");
}
</script>
</head>
<body>
<input type="text" id="test" />
<button type="button" onclick="actn()">Test</button>
</body>
</html>
检查ASCII值而不是字符比较应该有效
<html>
<body>
<input type="text" id="input" />
<button type="button" id="sqrRoot">Square Root</button>
<h1 id="display"></h1>
<script>
function actn() {
var input = document.getElementById("input").value;
var display = document.getElementById("display");
var result = input.toString();
var firstVal = result[0];
/* Ascii value for √ is 8730 */
if (firstVal.charCodeAt(0) === 8730) {
var sliceVal = result.slice(1);
display.innerHTML = Math.sqrt(sliceVal);
}
}
document.getElementById("sqrRoot").addEventListener("click", function () {
actn();
});
</script>
</body>
</html>
好的,我看到您默认返回了函数,但我希望用户输入自己选择的值。是的,ASCII值检查按预期执行。现在更清楚的是,使用ASCII值是比较符号的有效方法