使用For循环时,Javascript值未定义

时间:2015-02-17 17:52:01

标签: javascript for-loop encode

我的服务器需要加密方法。所以,我决定使用Javascript和PHP创建一个。 现在,你可能会说我在浪费时间,但请尊重我并告诉我为什么javascript编码器处理的第一个字符会返回一个未定义的错误。 这是我的javascript代码。

function encryptText() {
  var user = document.getElementById("username").value;
  var password = document.getElementById("password").value;
  var encryptionkey = 589;

  // In the code, PHP generates an integer between 1 and 65536 to encode
  var userencrypted;
  var passencrypted;
  var i;
  var x;
  var code;

  for (x = 0; x < user.length; x++) { 
    code = user.charCodeAt(x);
    code = code * encryptionkey;

    if(userencrypted === null) {
      userencrypted = code;
    }
    else {
      userencrypted = userencrypted + "." + code;
    }
  }

  var code2;

  for (i = 0; i < password.length; i++) { 
    code2 = password.charCodeAt(i);
    code2 = code2 * encryptionkey;

    if(auth358encrypted === null) {
      passencrypted = code2;
    }
    else {
      passencrypted = passencrypted + "." + code2;
    }
  }

  // for tesing purposes, the encrypted values are written in a paragraph on 
  // the main page
  document.getElementById("2").innerHTML = passencrypted;
  document.getElementById("1").innerHTML = auth749encrypted;
};

我运行该功能时遇到的唯一问题(在Chrome 40中)是第一个字符未编码并显示为“未定义”。请提出问题,谢谢。

1 个答案:

答案 0 :(得分:2)

它是未定义的,因为在JavaScript中默认情况下未指定的变量是未定义的,因此您使用===运算符来检查null,因此您的变量名为userencrypted未定义,因此它将转到else部分,因此未定义。