JavaScript странный / it-юмор :: geek (Прикольные гаджеты. Научный, инженерный и айтишный юмор)

it-юмор geek 

JavaScript странный

banana
a' + + 'a'
' а ' ).toLowerCase(),it-юмор,geek,Прикольные гаджеты. Научный, инженерный и  айтишный юмор
Подробнее
banana a' + + 'a' ' а ' ).toLowerCase()
it-юмор,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор
Еще на тему
Развернуть
Нужен кэп
ktulhu74 ktulhu74 13.08.201921:21 ответить ссылка -0.2
Пытается привести 'a' к числу, получает NaN, приводит его к строке и склеивает.
в js преобразование "нечисловой" строки в число дает NaN - not-a-number, особое числовое значение, которое числом вроде не является в силу логики и одновременно является, в силу того, что было получено в результате численных операций. `+буква` - как раз и является неочевидным преобразованием в число. Но одновременно, `+` - оператор конкатенации(склеивания) строк. Так что картинка выглядит для интерпретатора, как:
(буква(b) +(склеить) буква(а) +(склеить) +(преобразовать в число) буква(а) +(склеить) буква(а)).вНижнийРегистр
=>
('ba' +(склеить) NaN +(склеить) 'a').toLowerCase
=>
('baNaNa').toLowerCase
fouko fouko 13.08.201921:28 ответить ссылка 17.3
То-есть, два плюса ставит человек, а странный - JavaScript? Ладно бы уже что-то недокументированое показывать, но пример выше сродни удивлению от факта, что в плюсах `int a[]={1,3};printf("%d", *(a+1));` выдает 3.
fouko fouko 13.08.201921:30 ответить ссылка -0.3
насколько я помню С (не очень, если честно), то тут все норм, "printf("%d", *(a+1))" выводит значение по его адресу *(a+1) т.е. на 1 ячейку от начала массива a..., С-куны поправьте если не так.
всё так
Конец прочитал как сыкуны поправьте)))
loed01 loed01 15.08.201900:17 ответить ссылка 1.8
только не на ячейку, сдвиг идет по размеру типа указателя, то, что это след. "ячейка" массива, просто частный случай, указатель может быть и не на элементе массива.
oloth oloth 15.08.201901:20 ответить ссылка 0.4
JS: true.false === false.true
Абсолютно ничего удивительного, указатели работают вполне ожидаемым образом. А JS позволяет выстрелить себе в ногу простой опечаткой.
жаваскрипт придумали чтобы обезьянка на страничке танцевала, ничего удивительного в том что он странный
от того что 95% людей идиоты он более нормальным не становится
Пиздец странно, ну. Это как русские туристы приезжают с Польшу или Чехию и угарают с того, что местные слова похожи на русские, но другие.
Mars53 Mars53 13.08.201921:54 ответить ссылка 7.0
medelect medelect 13.08.201922:30 ответить ссылка -1.0
Наслаждайтесь. Ворнинг, у чувствительных возможны судорожные припадки.
Вот здесь в конце про NaN веселее. https://www.destroyallsoftware.com/talks/wat

Но на самом деле это уже скучно. Народ внезапно понял, что это неустранимая проблема слаботипизированных языков, которые пытаются приводить всё ко всему по мудрёным правилам. Как не старайся - всегда будут странные пограничные случаи.
pda0 pda0 14.08.201902:06 ответить ссылка 1.7
> ['10', '10', '10'].map(parselnt)
<• ► (3) [10j NoNj 2]
wasd123i wasd123i 14.08.201913:20 ответить ссылка 1.8
У parseInt второй параметр - основание системы счисления, так что всё работает согласно документации. Хотя новичков пугать таким поведением можно
lailune lailune 14.08.201917:59 ответить ссылка -0.7
То, что .map передаёт в функцию ещё какие-то параметры, помимо самих элементов - нихрена не очевидное поведение.
А спецификацию мы читаем глазами
Чего человека минусят? Всё правильно говорит. Читаем документацию жопой - получаем неожиданный результат.
И кстати:
['10', '10', '10'].map(str => parseInt(str))
Таки да.
iluxa1810
it-юмор geek
JavaScript странный
Preserve log
G Selected context only Й Group similar

>	console.log(('b' + 'a' + + 'a' + 'a1).toLowenCase()) banana
<• undefined
>	I
> ( 'b’ + 'a' + + 'a' + 'a' ) .tol_owerCase() "banana"
Это и без проверки было очевидно. Вообще ничего странного не вижу.
gleb_kun gleb_kun 14.08.201922:19 ответить ссылка -1.0
Прикольно. Тестовая задачка?
Tony001 Tony001 14.08.201921:54 ответить ссылка -0.8
Ага. Если тебе предлагают ее на собеседовании, то компания тест не проходит.
Wolfdp Wolfdp 14.08.201922:58 ответить ссылка 1.8
Можно было бы и адаптировать под русскоязычного читателя =)
> 'b'+'а'+ +'а
<• "baNaN"
> ('Ь' + 'аЧ + ' а ' ). toLowerCase( ) <• "banan"
LexaR2D2 LexaR2D2 15.08.201903:09 ответить ссылка -0.3
для ленивых, но любопытных:
('b' + 'a' + + 'a' + 'a' ).toLowerCase()
aspereen aspereen 15.08.201911:38 ответить ссылка 0.0
(String.fromCodePoint(new Date(410227200 * 1000).getYear(), Math.sqrt(6241), 's'.charCodeAt()) + Object.getPrototypeOf(Object.prototype)).toLowerCase();
Raz0r Raz0r 15.08.201914:01 ответить ссылка 0.0
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
e* \
; -s Tomasz is building cloudash.dev 1d
^ npm install esllnt-conflg-airbnb
'••'.K r
Q 31 tn 683	5 023 ¿j ‘3’-’1’=
Traceback (most recent call last) File "<pyshell#2>"1 line 1, in <mo •3-T
TypeError: unsupported operand type(s) for 'str' and s ¡ndex.js
JavaScript Moment
1	console log(018 == '018');
2	console log(017 == ‘017');
3
■ Default: node index.js
true
false » 4 in l <- false
Programmer Memes
@iammemeloper
Without a doubt, the best programming language
11:09 PM -Sep28, 2023 121.6K ¡ews
» let l = [1,2,3,4]
<- undefined
» 0 in l <- true
» "0" in l <- true
подробнее»

javascript языки программирования программирование geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор javascript programming languages programming geek

» 4 in l <- false Programmer Memes @iammemeloper Without a doubt, the best programming language 11:09 PM -Sep28, 2023 121.6K ¡ews » let l = [1,2,3,4] <- undefined » 0 in l <- true » "0" in l <- true