为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

森林海 2022-11-03 14:58:40
我有这个代码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") 诀窍
查看完整描述

1 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

TLDR

x !== ("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


如果使用了错误的术语,我们深表歉意。


查看完整回答
反对 回复 2022-11-03
  • 1 回答
  • 0 关注
  • 142 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号