javascript - 为什么while循环以字符串停止,而不是整数?
问题描述
我花了很多时间搜索和调试,但是当我的变量是一个字符串时,我无法弄清楚为什么 while 循环会在“猜测”时停止......
const myName = 'Daniel';
let guess = prompt("Guess my name!");
while (guess !== myName) {
guess = prompt("That's incorrect. Guess again!");
}
console.log("Congrats! You guessed my name!")
...但不是当它是一个整数时。
const myAge = 28;
let guess = prompt("Guess my age!");
while (guess !== myAge) {
guess = prompt("That's incorrect. Guess again!");
}
console.log("Congrats! You guessed my age!")
即使我输入了正确的答案,弹出窗口也会不断出现。我究竟做错了什么?
(我知道我可以只制作 28 个字符串,但我仍然不明白为什么第二个片段不起作用。)
解决方案
因为!==
包括类型检查,而您只是将字符串“28”与整数 28 进行比较,这是不一样的。将您的值比较更改为!=
,将整数转换为字符串 - so ,或者如果您确定要验证整数输入,则const myAge = '28';
使用将用户的输入转换为整数。parseInt()
您将从用户输入中获得一个字符串。总是。不是整数。
推荐阅读
- mysql - 键值列需要在 mySQL/mariaDB 中进行旋转(没有存储过程)
- python - Python:查找所有以文本结尾的单词(re.findall)
- sql - 在 BigQuery 的列名中包含特殊字符?
- java - 布局与屏幕尺寸
- c# - 除了 blazor 中的当前页面之外,我无法从其他页面访问 protectedSessionStore
- carto-mobile - Carto Mobile SDK:比例线宽
- django - 想在 django 中执行左连接
- php - 如果产品属于特定类别,则按用户 ID 查询唯一的 WooCommerce 销售额
- haskell - 无法创建提供会话 cookie 的经过身份验证的仆人客户端
- python - 表达式 (0==0<1<2<3>2>1>0==0) 在 python 中的计算结果如何?