Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.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 - Fatal编程技术网

Javascript比较运算符字符串和数字

Javascript比较运算符字符串和数字,javascript,Javascript,我正在if/else语句中练习比较运算符。我的问题是,我希望窗口会给我一个True警报,但它会给我一个False警报。我认为系统会在执行比较之前将num1强制为97 这是我的密码: var num1 = "a"; var num2 = 99999; if (num1 <= num2) { window.alert("True"); }else { window.alert("False"); } var num1=“a”; var num2=99999; 如果(NUM1我相

我正在if/else语句中练习比较运算符。我的问题是,我希望窗口会给我一个
True
警报,但它会给我一个
False
警报。我认为系统会在执行比较之前将num1强制为97

这是我的密码:

var num1 = "a";
var num2 = 99999;

if (num1 <= num2) {
   window.alert("True");
}else {
   window.alert("False");
}
var num1=“a”;
var num2=99999;

如果(NUM1

我相信你的问题的答案与这里发生的隐式转换有关。请考虑下面的代码行:

console.log(99999 + "a")
这将输出
9999a
,并且它不会将
“a”
字符串转换为数字。假设您的代码片段也发生同样的情况,它将解释观察结果。我们看到的结果与此一致:

var num1=“a”;
var num2=“99999”;

if(num1可以使用
.codePointAt()
获取字符的代码点

var num1 = "a";
var num2 = 99999;

if (num1.codePointAt(0) <= num2) {
   window.alert("True");
} else {
   window.alert("False");
}
var num1=“a”;
var num2=99999;

如果(num1.codepoint)(0)以上条件转换为


if(parseInt(num1)num1=“a”是一个字符串,在比较中num1为什么您认为系统会将
a
计算为数字
97
?num1是一个字符串,因此99999也将转换为字符串。将执行字符串比较。您对num1性质的假设是错误的。JavaScript不支持字符作为基本类型,因此在您的编码它试图将字符串强制为数字,返回NaN。如果有人对此有JavaScript文档的链接,请随意发表评论或编辑答案。嗨,Tim,谢谢你的回答。但是,你已经将我的var num2更改为字符串。由于num1和num2都是字符串,比较结果将为“False”.我的理解是,小写字母大于大写字母,大写字母大于数字。在这种情况下,单个字母大于数字。@VivianP这正是我的答案所说的。你在评论之前读过我的答案吗?在我的原版中会使用类型强制吗nal代码并应用特殊规则?我在某个地方读到,如果一个操作数是一个数字,那么它将尝试强制另一个操作数为一个数字并执行比较。或者因为我的情况是num1包含一个字符,所以它将num2转换为字符串进行比较?这里的问题是它无法强制“a”如果num1=“97”,那么它将按照您希望的方式运行。这里num1将被强制为一个数字,然后执行比较。例如:num1=“97”;num2=999;num1谢谢,Amaresh。这对我来说很有意义。您好,感谢您的输入。我没有使用.codePointAt()功能,但肯定会尝试它。
Number()
parseInt()
parseFloat()
bitwise ~~
var num1="a";
var num2=9999;
if(num1.charCodeAt(0)<=num2){
window.alert("True");
}else{
window.alert("False");
}