javascript - 为什么这会给我一个错误?

标签 javascript variables error-handling variable-assignment

为什么这段代码给我以下错误消息?

TypeError: Object 97 has no method 'charCodeAt'

var str = "Caesar Cipher";
str = str.split("");
num = 2;
x = 0;
for (var i = 0; i < str.length; i++) {
    x = 0;
    while (x < num) {
        if (str[i].charCodeAt(0) <= 122 && str[i].charCodeAt(0) >= 97) {
        str[i] = str[i].charCodeAt()+x;
        }
        x++;
    }
}
console.log(str);

如果有人对我的最终结果感兴趣:http://jsfiddle.net/zackarylundquist/8L9b5/

最佳答案

行:

str[i] = str[i].charCodeAt()+x;

将数组中的元素从字符串转换为数字。数字没有 charCodeAt() 方法,因此您会收到错误。使用以下内容:

str[i] = str[i].charCodeAt()+x + "";

这将使元素保持为字符串,并且您仍然可以调用 charCodeAt() 方法。

关于javascript - 为什么这会给我一个错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19760093/

相关文章:

Javascript:通过引用传递对象

java - 在 Java/GWT 中使用 JSLint

R仅检索变量的值

java - 变量可能尚未初始化?

javascript - 我如何确保该函数正确处理错误?

javascript - 对 chartjs 饼图使用透明描边颜色

javascript - Joomla异步脚本加载jdoc头

c++ - 循环完成后,循环内的变量(while 或 for)是否被释放?

javascript - 使用深层嵌套的异步函数进行错误处理

php - Facebook登录卡住空白页