使用严格相等运算符未定义,但正常相等运算符未定义


function sym(...args) {
let arr = [...args];
while(!arr.length === 0) {
arr.pop();
console.log(arr.length);
}
}
console.log(sym([1,2,5],[2,3,5],[3,4,5]));

我正试图解决一个问题,但另一个问题出现了。有人能给我解释一下为什么这个日志没有定义吗?严格相等运算符记录未定义,但正常相等运算符不记录,即使arr.length返回一个数字。

!的运算符优先级高于===

while(!arr.length === 0) {

等价于

while((!arr.length) === 0) {

将布尔值与数字进行比较永远不会与===一起工作,但有时会与==一起工作-但无论哪种方式,这都不是您想要的。用!== 0代替。

function sym(...args) {
let arr = [...args];
while(arr.length !== 0) {
arr.pop();
}
return arr;
}
console.log(sym([1,2,5],[2,3,5],[3,4,5]));

最新更新