2016-10-13 94 views
0

下面的代码是我用来将十六进制转换为二进制的。要打印出二进制文件,我将单个字符串添加到先前声明的空白变量中。但是,这会打印出“未定义的+二进制”。有没有办法来声明一个变量没有值 - 甚至未定义。如果没有,是否有更好的方法来连接for循环中没有先前声明的变量的变量?如何声明一个没有值的变量?

所有帮助将不胜感激!

 var integer = prompt("Insert hex digit"); 
     var userHexDigits = []; 
     var hexDigits = [0, 1,2,3,4,5,6,7,8,9,'a','b','c','d','e','f']; 
     var binaryDigits = ['0000', '0001','0010','0011', '0100','0101','0110','0111','1000','1001','1010','1011','1100','1101','1110','1111']; 
     var hexy = []; 
     var binary 

     for(i = 0; i < integer.length; i++) { 
      digit = i + 1; 
      document.write("Your digit #" + digit + " is: " + integer[i] + "<br/>"); 
      userHexDigits.push(integer[i]); 
     } 

     for (var m = 0; m < userHexDigits.length; m++) { 
      hex = userHexDigits[m]; 

      for(k =0; k < hexDigits.length; k++) { 
       if (hex == hexDigits[k]){ 
        binary += binaryDigits[k] + " "; 
       } 
      } 

     } 

     document.write("<br/><br/>The number " + integer + " in binary is " + binary); 
+0

初始化到空字符串'VAR二进制= '';','然后二进制+ = ...'将正常工作。变量没有类型,它们的值就是这样。它们默认初始化为* undefined *(即赋予* undefined *值)。所以如果你连接到* undefined *,你会得到字符串“undefined”加上你连接的任何东西。 – RobG

回答

1

如果你想只是一个空值的字符串变量:

var binary = "";