gpt4 book ai didi

javascript - 为什么我使用=(单个等于)的相等比较不能正常工作?

转载 作者:行者123 更新时间:2023-11-28 03:52:29 24 4
gpt4 key购买 nike

我正在尝试检查字符串是否为空、小于或等于 9 位数字或最多 10 位数字。但它始终遵循 else if (str.length <= 9) .

if (str = ''){
console.log("The string cannot be blank");
} else if (str.length <= 9) {
console.log("The string must be at least 9 characters long");
} else if (str.length <= 10) {
console.log("The string is long enough.");
}

无论我输入什么,我总是得到 The string must be at least 9 characters long 。为什么?

最佳答案

=始终是作业。相等比较是== (松散,强制类型尝试进行匹配)或 === (无类型强制)。

所以你想要

if (str === ''){
// -----^^^

不是

// NOT THIS
if (str = ''){
// -----^

当你这样做时会发生什么 if (str = '')作业 str = ''完成后,然后测试结果值( '' ),就像这样(如果我们忽略一些细节):

str = '';
if (str) {

''在 JavaScript 中是一个 falsy 值,该检查将为 false,并且会转到 else if (str.length <= 9)步。从那时起,str.length0 ,这就是代码所采用的路径。

关于javascript - 为什么我使用=(单个等于)的相等比较不能正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47867441/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com