Я ^уаБспрЬ разравоггйик Это значит, он не может выполнять простые математические действия^». Что / javascript :: it-юмор :: geek (Прикольные гаджеты. Научный, инженерный и айтишный юмор)

geek it-юмор javascript 
Я ^уаБспрЬ разравоггйик
Это значит, он не может выполнять простые математические действия^».
Что значит
'ЧауаБспр!-
разработчик"?,geek,Прикольные гаджеты. Научный, инженерный и  айтишный юмор,it-юмор,javascript
Подробнее
Я ^уаБспрЬ разравоггйик Это значит, он не может выполнять простые математические действия^». Что значит 'ЧауаБспр!- разработчик"?
geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор,it-юмор,javascript
Еще на тему
Развернуть

Отличный комментарий!

щ Ш
рот свой замолчи
DeletedUser DeletedUser 08.07.201903:07 ссылка
+37.6
17
crkll crkll 08.07.201903:21 ответить ссылка -2.4
но ведь 20
Дети как обычно минусуют, Мои скромные +0,1 от Javascript разработчика.
stozen stozen 08.07.201910:35 ответить ссылка 1.9
А в С/С++ было бы '2'.
nonnname nonnname 08.07.201913:45 ответить ссылка -2.1
50
потому что '2' это символ и его код 0x32 (т.е. 50 в десятичной)

https://ideone.com/qnZLvO
Я одинарные кавычки для кого оставил?
чтоб сложить придется кастить в число. если ты не делаешь руками каст назад то в результате будет число. обратно в символ оно волшебным образом не превратится, но если с натяжкой, то будем считать что и '2' корректно.
Примени оптимизацию к выражению и ты поймёшь, почему я написал именно '2'. Хороший компилятор проигнорирует '2' - '2', а следовательно оставит '2'.
Остальное - вопрос интерпретации.
нет. отпимизация никогда не меняет результат. а результат это и тип в том числе.
даже если оптимизатор уберет лишние операции, то результатом будет число, а не символ.
все верно ) но речь о результате выражения.
в типизированном языке результатом будет комбинация тип+данные.
если ты начинаешь руками кастить результат, то это уже читерство и отсутствует в условиях.
Объясни как считал?
Из чётных чисел путём сложения, вычитания и умножения невозможно получить нечётное число.
Всё просто:
crkll crkll 08.07.201916:15 ответить ссылка 0.6
Шел 2019 год...
< Качество
144р
^ Автонастройка
мне даже стало интересно, 2 записан в виде текста, если сложить 2 текста то будет 22, а если вычесть 2(текст)? то вычтет все 2йки или только одни или вообще пошлет нахрен?
mik1 mik1 08.07.201904:27 ответить ссылка 0.2
Оператор "плюс" не кастит строки к числам, потому складывает как строки. Получается 22.
Оператор "минус" кастит строки к числам, потому сначала он из результата сделает числа, а потом - отнимет. Получится 22-2=20
TheShock TheShock 08.07.201904:40 ответить ссылка 14.8
Но...почему???? Почему плюс и минус не ведут себя одинаково?
'22' - '1'. Жду ответа.
21
We need to go deeper. 'a' - 'b'?
-1
tipoima tipoima 08.07.201908:22 ответить ссылка -0.8
А что если 'a' + 'b' - 'c'?
60
NaN
Ответ - не делать сложение строк плюсом/не делать ничего минусом.

А вообще 21
Лол, не делать сложение строк плюсом. Только не говори это вслух, за такое и убить могут
Да вообще похуй.
Потому что складывать можно и строки и числа, а вычитать только числа, в логике языка
lexas lexas 08.07.201908:07 ответить ссылка 1.0
потому что если один из операндов оператора "+" явл. строкой, то второй тоже преобразуется в строку и выполняется конкатенация.
поэтому нужно писать так:
+'2' + +'2' - '2'
Убрать кавычки религия запрещает?
nonnname nonnname 08.07.201913:47 ответить ссылка -0.8
если пользователь что-то вводит на страничке, то возвращается строка, строка Карл.

например, prompt(), поля и прочие способы взаимодействия с пользователем возвращают строку.
Явный унарный "+" приводит эту строку к числу.
Парс инт?
Тогда уж лучше плюсиком.
nonnname nonnname 09.07.201914:12 ответить ссылка -0.6
Потому что гугли "Приоритет операторов javascript" и "Перегрузка операторов"

Воспринимают код как арифметические выражения, не читают документацию по языку, а потому ноют, какой же он плохой.
malebelk malebelk 08.07.201909:32 ответить ссылка -0.4
Причем тут документация? Если бы тебе запилили язык, где все операторы - иероглифы, ты бы тоже в документацию тыкал?
tipoima tipoima 08.07.201909:38 ответить ссылка -2.3
КуМир без установленной кириллицы.
Да одинаково. Например 'N'+'a'-'N' даст в результате NaN
JS он как поехавший среди языков.
20 же, не?
#ifndef #ifndef 08.07.201904:29 ответить ссылка -0.2
Автор глупый какой-то. При чём тут "простые математические действия"? Это особенности приведения типов. К математике в JS они не имеют отношения, которая вполне стандартна и пользуется тем же стандартом, что и все другие языки.

Кто вообще будет отнимать две строки?
TheShock TheShock 08.07.201904:41 ответить ссылка 0.9
А почему тогда программа не падает если кто-то вычитает две строки? Python примерно так и поступает.
Потому что Java верит в тебя и глубокий смысл происходящего
Нет, джава как и другие нормальные языки, так не делает
Потому что срабатывает приведение типов
heleg heleg 08.07.201907:53 ответить ссылка 0.2
Потому что JS изначально задумывался как скриптовый язык для всяких свисто-перделок на интернет-страничках с минимальным порогом вхождения для того времени. Основной функционал страницы должен был обеспечиваться HTML'ем и CSS'ом. Оттого и проглатывание ошибок. Ну не завелся скрипт с падающими снежинками под Новый год, главное сайт магаза работает, потому что сделан на статичных страницах и формах.
К тому моменту, как народ начал пилить на JS более продвинутый функционал, язык уже был стандартизирован. А это означает, что при всем желании внести правки, нарушающие обратную совместимость языка, крайне затруднительно.
> 0.1*0,1
0.010000000000000002
lexas lexas 08.07.201907:38 ответить ссылка -0.9
IEEE 754
heleg heleg 08.07.201907:54 ответить ссылка 2.7
Таки это стандартный гемор двоичных вычислений
Зависит от применяемого стандарта. Если использовать числа с фиксированной точкой, то таких проблем не бывает.
pda0 pda0 09.07.201901:31 ответить ссылка 0.0
0.0001 + 0.0002 === 0.00030000000000000003
Но js все равно не может в простые арифметические операции. Просто нужно было другой пример привести
Например, 0.1+0.2
Зато для инженерной операции, которой является рисование пикселей на мониторе, такая точность вполне допустима. А ускорение, которое даёт такой подход, бесценно.

Ваши примеры не примеры, за точностью лезьте в NumPy
Почти все языки так себя ведут :) Особенность устройства double.
faiwer faiwer 08.07.201909:57 ответить ссылка 0.7
Не почти все, а вообще все. Ибо стандарт. Только надстройки для точных вычислений решают эту проблему.
но хейтят только JS
Лично я впервые с таким поведением столкнулся именно в JS и был крайне на него зол из-за этого. Понимание того настколько глубока кроличья нора пришло позже. А все почему? А потому что в строгих языках для конвертации double в строку будь любезен использовать функции наподобии sprintf, которая прячет часть проблем. Коменты выше с притензиями к точности явно показывают что я в этом плане совсем не уникален и должно пройти время пока прийдет осознание.
Torrion Torrion 08.07.201913:23 ответить ссылка -0.3
Из-за floating point хейтят или все же из-за других приколов? Те же, кто хейтят JS из-за IEEE 754, не заслуживают писать на чем-либо JS.
Практически весь доеб до JS строится на примерах, которые в реальной разработке не случаются.
Больше 10 лет прогаю в том числе на JS. Самый запоминающийся случай, когда я отхватил проблем выглядел примерно так:
function(){
return
42;
}
Такая функция возвращает undefined, а не 42, как предполагалось. Если написать так:
function(){
return 42;
}
то все работает нормально.
Оптимизация исполнения. Раз return значит return, а что дальше - фиолетово. Это косяк интерпретатора.
Сейчас такой пример работает?
Уже проверил. Исправно не работает.
Это не косяк. Такое поведение задокументировано в спецификации (см. раздел Automatic Semicolon Insertion). Он связано с грамматикой языка, а именно с возможностью не завершать statement специальным символом ";", как этого требует например Си.
Python 2.7 ведет себя таким же образом.
Питон же завершает переносом строки как в Бейсике. Или я что-то не знаю?...
Результат:
func1 = None
func2 = 777
func3 = 34
1
2	def funcl():
3	return
4	42
5
6	def func2():
7	return 777
8
9	def func3():
10	return (
11	34)
12
13	print ,funcl='I funcl()
14	print 'func2 =', func2()
15	print 'func3 =', func30)
16
Практически весь доеб строится на динамической нестрогой типизации. Которая, может, и имеет преимущества для хуяк-хуяк-и-в-продакшн-драйвен-девелопмент, но большом проекте приводит к боли. Потому что у тебя краши в рантайме, а не на этапе компиляции, из-за того, что где-то ты как-то объебался, и пришло не то, что ожидалось, что какого-то поля нет и у тебя undefined, а может ты вообще добавил поле, которого быть не должно. Ну и не только JS, я как-то также плевался, отлаживая руби. Но у жс она максимально всрато нестрогая.

Помимо этого можно добавить такие охуительные вещи, как прототипное наследование. Сука, совсем недавно в язык завезли что-то, хоть более-менее похожее на нормальный ООП. Ну, может там есть еще вагон каких-то приколов, я хз, на жс, к счастью, не пишу.
А я пишу. И довольно много и давно. Чувствую себя нормально.

Я говорю о том, что чистый JS предназначен для хуяк-хуяк-скриптик-снежинки (ну или для тех, кто уверен в своих силах и знаниях по JS). А если кто-то делает большой проект на чистом JS и терпит боль от динамической типизации, то это его головняк. Это как если писать десктопное приложение или серверную логику на ассемблере или на чистом Си и предъявлять им в вину пулеметную стрельбу по ногам. Для каждой задачи свой инструмент. Мне могут возразить, дескать, браузеры могут только в JS. На что я отвечу, уже давно есть трансляторы вроде TypeScript, в которых и статическая типизация, и ООП.
Ну, так, TypeScript - не JS, же, да? Это же другой язык, пусть и транслируется в JS. И тот же Kotlin, вроде, можно в JS даже транслировать. Про тайпскрипт я особо претензий не видел.
Я говорю о том, что нехуй на JS гнать за то, что в нем нет того, чего в нем быть не должно.
Люди пытаются писать большие, сложные проекты. В качестве языка разработки выбирают голый JS. Стреляют себе по ногам из пистолета системы "динамическая нестрогая типизация". Но при этом претензии предъявляют к языку. Не к архитектору или там к руководителю разработки, который выбрал не тот инструмент, а к языку! А давайте десктопные приложения на асме писать будем. А когда эти приложения будут падать из-за ошибок при работе с памятью, будем говорить: "Чего ж ты ассемблер такой небезопасный и вообще в классы не умеешь?!"
Если в каком-то языке есть приведение типов, то лучше-бы тебе сука их изучить перед написанием кода.
Semecky Semecky 08.07.201911:54 ответить ссылка -0.1
© @
R fi] Elements Console Sources Network G I top	▼ I О I Filter
Performance Memory Application Default levels ▼
»
0 23 A 2
X
О
► A par JavaScript contexts ss s^te (i*e> different eTLD+1) script, http://www. google-analvtics.com/ 41092:380 gajs, « XtlVV*\W vxu «ocument.write. The network
rsbn rsbn 08.07.201913:39 ответить ссылка 0.8
Читер
krako krako 08.07.201914:06 ответить ссылка 0.0
казалось бы сделай ты разные операторы для конкатенации и сложения, но нет блядь, давай, сука, решай ебучие ребусы...
SeynTodt SeynTodt 08.07.201914:28 ответить ссылка 0.1
Используй PHP с AJAX. В PHP конкатенация точкой.
та то понятно, но мне теперь блджад каждую операцию на сервер отправлять что ли?
Да. Много ли операций JS производит?
немало, в среднем проекте где аналитика и результаты перепросчитываются налету это боль в жопе каждый раз отсылать и ловить
Для сложения строк лучше использовать конструкцию для форматирования:
var str1 = 'Hello';
var str2 = 'Vasya';

var result = `${str1}, ${str2}!` // result: Hello, Vasya!
Налету - значит и AJAX уже при делах.
Казалось бы, сделай строгую типизацию и перегрузку операторов, как в C#/C++/итп.
Что за херня, почему + и - ведут себя одинаково и тупо приплюсовывают строку???
ueviuuis - juyreaoiur.uu/pubi/owao/ao
I mQH | ♦ | ■
© Not Secure joyreactor.(
IS dev S check ED to r<
, SevnTodt 08.Jul.2019 14:
Используй PHP c AJAX. В
nonnname 08.Jul.201
!аписать коммент
НАПИСАТЬ Картинка
¿] Elements Network Console Sources Performance Memory »	010 A 5
E G | top
▼
bondvt04 bondvt04 08.07.201914:51 ответить ссылка 2.7
С NaN что ни делай - всё NaN.
nonnname nonnname 08.07.201914:56 ответить ссылка -0.8
Batman разве number? Явный NaN.
nonnname nonnname 08.07.201919:02 ответить ссылка -0.1
До слез, спасибо
Было бы 'NaN', а не NaN, я бы тоже завис.
dstwo dstwo 08.07.201916:50 ответить ссылка 0.2
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
mathematics
visualbasic
haskell
rust
clojure
programming
matlab
lua
swift
scala
objectivée
golang
perl
lisp
esharp
sql
epp
python
ruby
java
javascript
php
TTT
IE
~1~1 r
_r r f
I I r
W
1 T
1 E
1 r
I I
I I
I I
W
1 E
1 E
0
I ,	,1
100	150	200
contains word / 100
подробнее»

geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор it-юмор javascript php Это не шутка

mathematics visualbasic haskell rust clojure programming matlab lua swift scala objectivée golang perl lisp esharp sql epp python ruby java javascript php TTT IE ~1~1 r _r r f I I r W 1 T 1 E 1 r I I I I I I W 1 E 1 E 0 I , ,1 100 150 200 contains word / 100
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