fromcharcode 对java,fromCharCode疑惑

移位密码也就是密码中的字母会按照指定的数量来做移位。

一个常见的案例就是ROT13密码,字母会移位13个位置。由'A' ↔ 'N', 'B' ↔  'O',以此类推。

写一个ROT13函数,实现输入加密字符串,输出解密字符串。

所有的字母都是大写,不要转化任何非字母形式的字符(例如:空格,标点符号),遇到这些特殊字符,跳过它们。

解:

function rot13(str) { // LBH QVQ VG!

var uni = [];

for(var i =0;i64&&uni[i]<91)

{

uni[i]=str.charCodeAt(i)+13;

if(uni[i]>90)

{uni[i]-=26;}

}

}

var fi = String.fromCharCode.apply(null,uni);

return fi;

}

***********************

疑惑:fromCharCode的用法到底是什么意思?为什么要用apply?apply方法的传值为什么是null和uni呢?

尝试了

fromCharCode(uni)

String.fromCharCode(uni)

结果都是报错,而把变量去掉,随便写一个数字,却能得到输出结果。

那咋整?难道要重新写一个遍历吗???

09d689f2c52a

那么我从头开始分析:

官方文档中是这样的:fromCharCode(num1,...,num n)

是的,变量不是一个数组,而是一组数字。数组是无法传到fromCharCode方法里面的(哭

而且fromCharCode是一个静态方法

静态方法不能被实体调用

举个栗子:varBaseClass =function() {};

BaseClass.prototype.method1 =function(){

alert(' This is a instance method ');

}

varinstance1 =newBaseClass();

instance1.method1();//This is a instance method

弱机我理解的意思就是freeCharCode前面必须加String.

你想arr.freeCharCode()?不存在的。Function.apply(obj,args)方法能接收两个参数

obj:这个对象将代替Function类里this对象

args:这个是数组,它将作为参数传给Function(args-->arguments)

比如String.freeCharCode(obj,args),obj是String里面一个this对象,可有可无(但当obj有具体参数时,obj当然要有的),而args里面的值会逐个传给String

可能说得不是很清楚,等以后回头再想想。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值