Javascript 使用charCodeAt转换时,我遇到一个NaN错误
如果警报的Javascript 使用charCodeAt转换时,我遇到一个NaN错误,javascript,string,char,Javascript,String,Char,如果警报的加密值为NaN,如何解决此问题 function Encrypt() { var Plaintext = document.getElementById("txt").value; var Key = Math.floor(Math.random() * 26) + 1; var Chaesarshifted = caesarShift(Plaintext,Key);//i just didn't paste Chaesarshift code
加密
值为NaN
,如何解决此问题
function Encrypt() {
var Plaintext = document.getElementById("txt").value;
var Key = Math.floor(Math.random() * 26) + 1;
var Chaesarshifted = caesarShift(Plaintext,Key);//i just didn't paste Chaesarshift code
var Encrypted;
alert(Chaesarshifted);
for (let index = 0; index < Chaesarshifted.length; index++) {
Chaesarshifted.toLowerCase();
//till here everything works fine
Encrypted += Chaesarshifted.charCodeAt(index) - 96;
}
alert(Encrypted);// Alert says NaN
}
函数加密(){
var Plaintext=document.getElementById(“txt”).value;
var Key=Math.floor(Math.random()*26)+1;
var Chaesarshift=caesashift(纯文本,键);//我只是没有粘贴Chaesarshift代码
var加密;
警报(Chaesarshifted);
for(让index=0;index未设置加密的的初始值。因此,当您试图对其执行+=
操作时,它不知道如何处理该操作
对于起始值,您应该将加密的
初始化为空字符串“
”
然后,在for循环中,chaesashifted.toLowerCase()代码>不设置值,但必须存储
此外,您的逻辑已关闭,无法附加加密的
文本。您需要将该字符更改回unicode字符。或者甚至可能构建一个数组以便以后连接
最后,您应该以小写字母开始变量名,以遵循约定
总而言之:
function Encrypt() {
var plaintext = document.getElementById("txt").value;
var key = Math.floor(Math.random() * 26) + 1;
var chaesarshifted = caesarShift(plaintext,Key); //missing chaesarshift code
var encrypted = "";
alert(chaesarshifted);
chaesarshifted = chaesarshifted.toLowerCase();
for (let index = 0; index < chaesarshifted.length; index++) {
//missing code
encrypted += String.fromCharCode(chaesarshifted.charCodeAt(index) - 96);
}
alert(encrypted);// Alert will show garbled text (offset values from chaesarshift str)
}
函数加密(){
var plaintext=document.getElementById(“txt”).value;
var key=Math.floor(Math.random()*26)+1;
var chaesarshift=caesashift(明文,键);//缺少chaesarshift代码
var=”;
警报(chaesarshifted);
chaesashifted=chaesashifted.toLowerCase();
for(让index=0;index
编辑:谢谢你让我更多地思考这个问题。你确定他想做加法而不是串联吗?谢谢你的回答,我一回到家就试试!(如果我在努力学习更多英语时犯了错误,请纠正我)如果你必须在你的问题中添加填充文本,这意味着你没有很好地解释这个问题。他们不允许你发布几乎全是代码的问题是有原因的。加密值应该是什么而不是NaN
?chaeshifted.toLowerCase()代码>什么都不做。它返回Chaesarshifted
的小写副本,但您不会将其存储在任何位置。它不会就地修改字符串(JavaScript字符串是不可变的)。