你可以像String.fromCharCode一样使用String.fromCodePoint吗?

时间:2016-01-08 15:48:32

标签: javascript input

我还在学习JavaScript并练习从键盘输入。我刚刚了解了String.fromCodePoint并且(对我而言)似乎接受了String.fromCharCode所做的一切。

浏览器和设备是否广泛支持String.fromCodePoint,如果支持,String.fromCharCode是否已过时,或者您有时会使用String.fromCharCode吗?

3 个答案:

答案 0 :(得分:8)

fromCharCode尚未过时,但如果所有浏览器都支持它。但fromCharCodefromCodePoint

约为twice as fast
  • String.fromCodePoint() Internet Explorer和Safari不支持

  • String.fromCharCode() 永远支持,加倍加速

  • 区别:

      

    虽然大多数常见的Unicode值可以用一个16位数字表示(正如JavaScript标准化早期所预期的那样),而fromCharCode()可用于返回最常见值的单个字符(即UCS-2值)这是UTF-16的子集,具有最常见的字符),为了处理所有合法的Unicode值(最多21位),仅来自theCharCode()是不够的。由于较高的代码点字符使用两个(较低值)“代理”数字来形成单个字符,因此String.fromCodePoint()(ES6草案的一部分)可用于返回这样的一对,从而充分代表这些较高价值的字符

答案 1 :(得分:4)

String.fromCodePoint并未得到广泛支持,实际上它在Internet Explorer和Safari中完全不受支持,仅在Chrome 41及更高版本以及Firefox 29及更高版本中受支持。

这并不意味着它已经过时,这意味着它是一种新方法,仅在ES2015中首次定义。
这也意味着浏览器支持将随着时间的推移而变得更好,因为浏览器实现了第6版ECMAScript中的所有新功能。

目前,如果您需要支持所有当前浏览器,它不太适合生产使用,但如果您确实需要在所有浏览器中都使用此方法,则MDN上可以使用填充。

答案 2 :(得分:4)

所有浏览器都支持

String.fromCharCode
enter image description here

String.fromCodePoint 限制浏览器支持:
enter image description here