var a = parseInt([0,0,1,0,0].join('')+1) //join()方法将数组转为字符串,并用指定的分隔符进行分割 [0,0,1,0,0].join("") 后变成字符串'00100' 字符串'00100'+1 ,1是number,会将1转变为字符串后拼接 就变为 001001 parseInt后 变成 1001
JS的类型转换规则相当繁杂,主要是变化太多了。
在 JS 中类型转换只有三种情况,分别是:
四则运算和==、条件运算都会隐式类型转换。
但记住常见的就差不多了
加法运算 字符串 + 数字 将数字转为字符串 如111+'222'="111222"
非加法运算 字符串- x / 数字 将字符串转为数字 如'111'-11=100
console.log( [0,0,1,0,0].join('') ) // 00100 console.log( typeof [0,0,1,0,0].join('') ) // string console.log( [0,0,1,0,0].join('') + 1 ) // 001001 console.log( typeof ([0,0,1,0,0].join('') + 1) ) // string console.log( parseInt( [0,0,1,0,0].join('') + 1 ) ) // 1001 console.log( typeof parseInt([0,0,1,0,0].join('') + 1) ) // number