“不等于值或类型”,无法正常工作:Javascript

我有这个代码


function myFunction() {

    var randomNumber = Math.floor(Math.random() * (1000-1+1))+1;


    

    if ((String(randomNumber).substring(-1) !== "7") || (String(randomNumber).substring(-1) !== "8") || (String(randomNumber).substring(-1) !== "9")) {

        alert(randomNumber);

    }

    else{

        myFunction();

        return;

    }

}

输出应使 7、8 和 9 不能是最后一位,如果是,则跳过。但这似乎不起作用,7、8和9经常是整数中的最后一个数字。有人可以帮我完成这项工作吗?


编辑: (String(randomNumber).substring(String(randomNumber).length-1) !== "7") 诀窍


森林海
浏览 144回答 1
1回答

胡子哥哥

TLDRx !== ("0" || "8" || "9")如果比较的目的是“x 不是 '0' 或 '8' 或 '9',则需要将其拆分为不同的比较。x !== "0" || x !== "8" || x !== "9"原始比较中发生了什么?括号()是分组"0" || "8" || "9",导致"0".===由于运算符优先级,此组在 之前首先进行比较。小组的结果是怎么来的"0"?逻辑 OR 运算符检查左侧参数是否为“真” 。如果是,则返回,如果否,则返回右侧参数。例如:let variable = A || B如果A为真,A则分配给variable,否则B分配给variable。如果使用了错误的术语,我们深表歉意。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript