String.fromCharCode()是如何实现的?

时间:2013-03-13 19:11:08

标签: javascript string

var x = String.fromCharCode(65);

console.log(x);  //returns "A"

它接受一个整数并返回相应的字符(字符串),但该字符的代码与输入完全相同!

引擎盖下发生了什么?它真的只返回它接受的内容吗?还是有其他逻辑吗?

3 个答案:

答案 0 :(得分:2)

看看@ spidermonkey源代码

fromCharCode在jsstr.cpp

中定义

它使用unitStringTable进行映射。该表是通过预处理程序指令定义的......

答案 1 :(得分:0)

我相信它只维护一个ASCII码字典,并为输入整数{key}

返回字符{value}

答案 2 :(得分:0)

fromCharCode用于将Unicode编号转换为字符。 Unicode 65是字符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
   }
}