2016-01-08 3 views
5

Я все еще изучаю JavaScript и тренируюсь с получением ввода с клавиатуры. Я только что узнал о String.fromCodePoint, и мне кажется (мне) подобрать все, что делает String.fromCharCode.Можете ли вы использовать String.fromCodePoint так же, как String.fromCharCode

Возможно, String.fromCodePoint поддерживается браузерами и устройствами, и если да, то делает String.fromCharCode устаревшим, или есть причина, по которой вы бы иногда использовали String.fromCharCode?

+2

взглянуть на совместимость браузера http://kangax.github.io/compat-table/es6/#String.fromCodePoint – Apolo

ответ

4

fromCharCode не является устаревшим, но оно было бы, если он будет поддерживаться всеми браузерами. Однако fromCharCode о twice as fast в fromCodePoint

  • String.fromCodePoint() Не поддерживается Internet Explorer и Safari

  • String.fromCharCode() Поддерживается начиная с вечно, в два раза, как быстро

  • Разница:

    Хотя наиболее распространенные значения Unicode могут быть представлены с одним 16-разрядным номером (как ожидается, на раннем этапе при стандартизации JavaScript), а fromCharCode() может использоваться для возврата одного символа для наиболее распространенных значений (то есть значений UCS-2, которые являются подмножество UTF-16 с наиболее распространенными символами), для того чтобы иметь дело со ВСЕМИ законными значениями Unicode (до 21 бит), только изCharCode() недостаточно. Поскольку символы более высокой кодовой точки используют два (более низкие значения) «суррогатных» чисел для формирования одного символа, String.fromCodePoint() (часть черновика ES6) может использоваться для возврата такой пары и, таким образом, адекватно представлять эти более высокозначные символы ,

+0

я не понимал, fromCharCode бы гораздо быстрее ... спасибо за передачу этой ссылки для проверки скорости. На данный момент я придерживаюсь fromCharCode только для базового ввода с клавиатуры. – freginold

4

String.fromCodePoint не поддерживается широко, на самом деле он не поддерживается вообще в Internet Explorer и Safari, и только в Chrome 41 и выше, и Firefox 29 и выше.

Это не значит, что это устарело, это означает, что это новый метод, только определенный в ES2015.
Это также означает, что поддержка браузера будет лучше во времени, поскольку браузеры реализуют все новые функции в 6-м выпуске ECMAScript.

На данный момент это не очень подходит для использования в производстве, если вам необходимо поддерживать все текущие браузеры, но есть полиполк, доступный на MDN, если вам действительно нужен этот метод во всех браузерах.

3

String.fromCharCode поддерживается во всех браузерах:
enter image description here

String.fromCodePoint имеет ограниченную поддержку браузера:
enter image description here

Смежные вопросы