我试图创建一个从用户那里接收数据并通过串连(如果是字符串的话)或通过将结果求和(如果输入的数据是整数)作为结果来组合这样的数据的函数。我的主要问题是,我不知道如果我对JavaScript使用的if语句根据用户输入的数据执行什么条件。
这是我最后发明的代码来解决此类问题
function GetFullName() {
var first = document.getElementById('FirstName').value;
var last = document.getElementById('LastName').value;
if (first == "string" || last == "string") {
document.getElementById('FullName').value = first + " " + last;
} else {
var first = parseInt(document.getElementById('FirstName').value);
var last = parseInt(document.getElementById('LastName').value);
document.getElementById('FullName').value = first + last;
}
document.getElementById('FirstName').focus();
}
<form>
First Name <input type="text" id="FirstName" />
Last Name <input type="text" id="LastName" />
<input type="button" value="submit" onclick="GetFullName()" />
<input type="reset" value="reset" />
<br />
Full Name <input type="text" id="FullName" />
</form>
当获得元素的值时,它将始终是字符串,
您可以通过typeof first
检查变量类型
对于您的特定问题,如果您想检查用户是否输入了整数,则必须使用isNaN
if(isNaN("123")) {
} else {
//this executes
}
所有新代码将全部是:
if (isNaN(first) || isNaN(last)) {
document.getElementById('FullName').value = first + " " + last;
} else {
document.getElementById('FullName').value = parseInt(first) + parseInt(last);
}
除非JavaScript专门指定输入类型,即<input type="number" >
,否则所有输入值都是JavaScript中的字符串。
如果可以在JavaScript中检查变量的类型,则应使用typeof
运算符。
例如
const bool = true
If(typeof bool === "string") {
console.log("it is a Boolean")
} else {
console.log(`it is not a string it is ${typeof bool}`)
}