Самые странные особенности языков программирования

Статус
В этой теме нельзя размещать новые ответы.

newARTix

Новичок
Самые странные особенности языков программирования

Пролетело тут на Хабре:
http://stackoverflow.com/questions/1995113/
большая часть конечно давно всем известна и just for fun. Но меня впечатлила вот эта особенность JavaScript:

Код:
parseInt('06') -> 6 
parseInt('07') -> 7 
parseInt('08') -> 0 
parseInt('09') -> 0 
parseInt('10') -> 10
-~{}~ 13.08.10 23:14:

гы. а почему когда я пишу JаvaSсript он заменяется на java script? :confused:
пасхалка на форуме? :)
 

Вурдалак

Продвинутый новичок
Re: Самые странные особенности языков программирования

Автор оригинала: newARTix
Но меня впечатлила вот эта особенность JavaScript
— octal?

Автор оригинала: newARTix
а почему когда я пишу JаvaSсript он заменяется на java script? :confused:
пасхалка на форуме?
— защита от XSS?
 

dimagolov

Новичок
newARTix, какая нафиг особенность? ну разве что для идиотов, которые не знают 8-ричной системы счисления и не удосужились прочиатать самое начало мана где описывается представление чисел, ну и ман по самой parseInt, у нее есть 2-й параметр.
для всех остальных это ожидаемое поведение.

п.с. что же эти недоумки не поудивлялись над результатом parseInt('018') и т.п.?
 

newARTix

Новичок
dimagolov
по-умолчанию считать число восьмеричным, это нормально? Ты всегда в восьмеричной системе считаешь? :)
Да, ни одной книги по JS я не читал, но, как тут повелось в одной теме, "есть же здравый смысл" :)
 

fixxxer

К.О.
Партнер клуба
не по умолчанию.

записи восьмеричных чисел в форме 0ххх больше лет чем тебе.

выполни php-код: $a = 010; var_dump($a); и удивись второй раз ггг
 

newARTix

Новичок
вот именно что по-умолчанию, я же не указываю никакого основания, а JS услужливо мне меняет систему счисления. Что за бред? Какие языки еще поступают так же?
Про шестнадцатиричную систему понятно, там однозначная запись, а с "предположительно восьмеричной системой" по-моему перегиб. Впрочем, обсуждать тут нечего, хорошо что всем это давно известно :)

-~{}~ 14.08.10 00:03:

Про php это некорректная аналогия, выполни код:
var_dump(intval('010'));

-~{}~ 14.08.10 00:10:

Так что, просто я узнал про еще одну особенность еще одного языка.
Будем теперь обрезать нулики. Напоминает ситуацию с magic_quotes в PHP. Перебдили.
 

vovanium

Новичок
newARTix
Хватит бредить, 0 в начале числа, во всех нормальных языках программирования означает, что число восьмиричное...
То что всякие кулхацкеры не читают маны это их проблемы.

Я вообще предпочитаю вместо parseInt юзать '010'*1
 

Вурдалак

Продвинутый новичок
Есть функция, есть её описание. Кто-то не прочитал это описание и теперь считает результат неожиданным. Чьи это проблемы?
 

Духовность™

Продвинутый новичок
какая нафиг особенность? ну разве что для идиотов, которые не знают 8-ричной системы счисления и не удосужились прочиатать самое начало мана где описывается представление чисел, ну и ман по самой parseInt, у нее есть 2-й параметр.
Ок. Тогда объясните, почему

alert(018)

возвращает 18, а не 1?
 

Ragazzo

TDD interested
ну как бэ в 8ричной , всего лишь 0-7...
Чисто предположения, первая мысль так сказать...)
 

Вурдалак

Продвинутый новичок
triumvirat, неортогональность в языке. Точно такая же, как с 018 и intval('018') в PHP.
 

Ragazzo

TDD interested
fixxxer
я вроде как упоминал ))
Если кто ходил по ссылке которую давал, то там на 18 возвращается 1 как раз таки
 

Ragazzo

TDD interested
fixxxer
Хз...посмотрев на статус "сторожило" и количество сообщений в 1909 у человека, кажется что это я скорей могу затупить)
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху