javascript - 这个 Bin 到 Dec 脚本有什么问题?

标签 javascript

我正在 JS 中制作一个 bin-to-dec 脚本(我知道 js 有它自己的函数来完成它)作为我的作业,但它不起作用 - 它返回 NaN 值。有人可以解释一下我在这里做错了什么吗?

function binToDec(bin){
    var x=bin.length;
    for (i=0; i<bin.length ; i++){
        var r=Math.pow(parseInt(bin.charAt(i),10)*2, x-1);
        x-=1;
        y+=r;   
    }
    return y;
}
var bin=prompt('input a bin number');
var y=binToDec(bin);
alert('this number in dec is: '+y);

最佳答案

问题是 y 未在您的函数中声明,因此您实际上正在尝试将 r 添加到 undefined,结果是 NaN

这似乎有效:

function binToDec(bin){
    var x=bin.length;
    var y = -1;//Define y here
    for (i=0; i<bin.length ; i++){
        var r=Math.pow(parseInt(bin.charAt(i),10)*2, x-1);
        x-=1;
        y+=r;   
    }
    return y;
}
var bin=prompt('input a bin number');
var y=binToDec(bin);
alert('this number in dec is: '+y);

请注意,y 默认设置为 -1,因为当我尝试 0 时,您的结果似乎总是比应有的结果多 1 code> (我还没有完全理解你的逻辑来了解确切的原因,我只知道你需要解释它)

关于javascript - 这个 Bin 到 Dec 脚本有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22639165/

相关文章:

javascript - 使用 JQueryRotate 逆时针旋转图像

javascript - JavaScript 中可调用对象的构造函数

javascript - 使用 Angular 和 Symfony 进行路由

javascript - Jquery,防止重定向,验证然后提交表单

javascript - 如何在 javascript 函数内部访问外部函数变量?

javascript - 为什么比较结果不一样?

javascript - 为什么我的事件没有为两个订阅者触发?

javascript - 将文本从文本框传递到 jsp 中的 href 调用的按钮

javascript - 终止 Node.js 服务器请求的正确方法是什么?

javascript - 三个JS拖动控件Uncaught TypeError : Cannot set property 'x' of undefined