最简单易懂的详细题解!!!
// parseInt() 方法
function base10(str) {
    return parseInt(str, 2); //接受传入的字符,后面跟当前字符的进制数 (当前表示二进制)
}
//split()+reverse()+Math.pow() 方法
function base10(str) {
    let arr = str.split("").reverse(); //先将数据进行处理 将个位翻转到第一个去
    let result = 0;  //定义一个最终返回的结果
    for (let i = 0; i < arr.length; i++) {   //对数据进行遍历(都知道二进制转十进制,是从个位开始运算再依次与后面相加)
        result = result + arr[i] * Math.pow(2, i);  //Math.pow(2, i)  代表求2的i次方 (pow是一个数***算方法,目的是求某个数的次方的值)
    }
    return result;  
}

可以自己举一个简单的例子来验证 (“1000”)转为10进制是8   具体数***算为 0*2^0+0*2^1+0*2^2+1*2^3 (运算是从个位开始的)