比方说下面这段代码:
var arr = [0,1,2,3,4,5]
for (var i = 0; i < arr.length; i++) {
if(arr[i] = 0){
arr.splice(i , 1)
}
}
console.log(arr); //结果是[ 0, 0, 0, 0, 0, 0 ]
而如果把条件的右边换成其他数,比方说5或者8,只要不是0就可以,结果如下:
var arr = [0,1,2,3,4,5]
for (var i = 0; i < arr.length; i++) {
if(arr[i] = 5){
arr.splice(i , 1)
}
}
console.log(arr); //结果是[ 1, 3, 5 ]
我想知道if语句的括号里面发生了什么,我试着用一个小demo去理解,发现只要是等式成立,那么返回的结果都可以被转换成true,我的demo如下,在控制台的显示是:
var a = 1 //undefined
Boolean(a = 3) //true
请问怎么理解上面的代码呢,为什么if语句赋值恒为true不是删完所有的数组项呢?输出结果有些让人匪夷所思。
Qyouu
呼如林
慕码人8056858
慕森卡
猛跑小猪
相关分类