var x = String.fromCharCode(65);
console.log(x); //returns "A"
它接受一个整数并返回相应的字符(字符串),但该字符的代码与输入完全相同!
这里的引擎盖下会发生什么?它真的只是返回它接受的东西吗?还是有任何额外的逻辑?
var x = String.fromCharCode(65);
console.log(x); //returns "A"
它接受一个整数并返回相应的字符(字符串),但该字符的代码与输入完全相同!
这里的引擎盖下会发生什么?它真的只是返回它接受的东西吗?还是有任何额外的逻辑?
我相信它只是维护一个 ASCII 代码字典并为输入整数 {key} 返回字符 {value}
fromCharCode
用于将 Unicode 数字转换为字符。Unicode65
是字符A
。所以String.fromCharCode(65)
返回A
。
What happens under the hood here?
实现可能是HashMap
键值对,其中 Unicode 值映射到相应的字符,或者它可能是接受和返回switch
的语句。Unicode
character
使用伪代码实现switch
:
function fromCharCode(*args)
{
return args.map(unicodeToChar).join('')
}
function unicodeTochar(unicode)
{
switch(unicode)
{
//something
case 65:
return 'A'
case 66:
return 'B'
//something
}
}