Федеральная Служба Опасности (malaya_zemlya) wrote,
Федеральная Служба Опасности
malaya_zemlya

Category:

О Джаваскрипте и Юникоде

Глобализация не останавливается на минуту, а вот уже оказывается, что последнее поколение браузеров поддерживает Юникод не только в тексте, но даже в именах джаваскриптовских переменных. Теперь программист запросто может писать
ಠ_ಠ=12;


Целью нововведения, без сомнения, является повышение читабельности, потому что код:
хуй=12;
хуй=хуй+1;
alert(хуй==хуй);

при запуске напечатает false

Почему? Потому, что буква й в юникоде может быть представлена либо как символ U-0439 (Cyrillic Small Letter Short I), либо два символа U-0438(Cyrillic Small Letter I) и U-0306 (Combining Breve). Визуально оба варианта выглядят идентично, но с точки зрения джаваскрипта это две совершенно разные буквы.

Особенно богатые пласты читабельности вскрываются при использовании арабского и еврейского алфавитов, которые пишутся справа налево.
var א=1

Элементарно?

Тогда вот вам простой тест:
Что выдаст данный скрипт?
alert(י_י=1<<16)//(׳_׳)


Надеюсь, что все правильно ответили 65536.


posted on dreamwidth [comment count unavailable comments]
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 20 comments