Ну а чего нет. Мб, тут именно такой ответ был нужен...
2+0=20 проверяем: 20-0=2
6+6=66 проверяем: 66-6=6
Всё правильно!
6+6=66 проверяем: 66-6=6
Всё правильно!
Буквальная арифметика?
Вдруг это сыквельщики и обращаются они к чаровым графам?
Звучит как еще один предмет для изучения.
Так, я долго терпел, но больше не могу. Чому JS такой постоянный объект шуток?
JS - язык с нестрогой типизацией (даже не динамической строгой, как у Питона, а совсем нестрогой), все данные могут иметь множество представлений: число может быть числом, числом с плавающей точкой, строкой. Взаимопревращения типов иногда происходят интуитивно непонятным образом, вроде сортировки массива чисел в алфавитном порядке или не всегда очевидных превращений чисел в строку с последующим склеиванием символов вместо складывания значений. Всё это можно освоить и заучить, но неочевидность правил многих бесит, а представителей других языков заставляет ловить лулзы.
Но тут то все очевидно - пока в сложении нет строки считается как сложение чисел.
А ты поди докажи, что в нем не будет строки. Типизация-то динамическая!
'6' + '6' = '66'
6 + 6 = 12.
Тип строки задается кавычками, без кавычек - числа. В данном случае все крайне просто, кавычек нет, значит не строка.
6 + 6 = 12.
Тип строки задается кавычками, без кавычек - числа. В данном случае все крайне просто, кавычек нет, значит не строка.
Минусят. Не принимают. Мозги у людей не включаются если не объявить каждую переменную и ее тип.
Ну ты и соня... Пост от 4 ноября 2018 года.
Потому что он самый распространенный язык, и шутки о нем наиболее понятны. Но это не точно.
Потому что среди людей много долбоебов, не знающих, что в JS 2+0 == 2 всегда, но дружно поддерживающих стереотипный мем, созданный рукожопами.
P.S.: Кстати, в JS есть еще и форсирование числового контекста - Number. Но рукожопы конечно же и об этом не знают.
P.S.: Кстати, в JS есть еще и форсирование числового контекста - Number. Но рукожопы конечно же и об этом не знают.
рукожопы знают очень о многом(включая эту хуйню), но рукожопы в рот ебали необходимость костылить динамическую типизацию, чтобы быть уверенным, что уж тут-то они получат то, что надо, а не что получится. JS как тот молчаливый джун в углу - нихуя ни у кого не спрашивал, и хуй бы с этим, но у гугла он тоже не спрашивал, и в итоге сделает так, что охуеет даже онотоле.
Ну тогда рукожопы огребут проблемы почти со всеми языками с нестрогой типизацией. А в языках с условно-строгой они огребут те же самые проблемы, но уже внутри какого-нибудь Object-а. Да и со строгой типизацией у них будет не все гладко - type casting-то никто не отменял.
"почти все языки с нестрогой типизацией" - говно
а js втройне говно, потому что это говно безальтернативно является одним из столпов вэба, и было запилено на коленке
а js втройне говно, потому что это говно безальтернативно является одним из столпов вэба, и было запилено на коленке
Пиши на тайпскрипт
Вот как это понять, [1] равен 1, "1", да даже true, - но не равен самому себе
[1] !== [1], потому что [1] и [1] это два разных объекта пусть и с одинаковым наполнением, а объекты сравниваются по ссылке, поэтому любой объект равен только себе самому, по моему все логично.
Но ведь "1" - это тоже другой объект, а ведь приводят же тип почему-то. Какая-то непоследовательная логика.
в JS все объекты делят на простые и сложные.
Простые - строки, числа, булевы значения, undefined, null.
Сложные - все остальные, в т.ч. сами объекты, массивы, функции.
Простые передаются в функции, в другие объекты по значению, сложные - по ссылке.
Например, можно сделать бесконечную матрёшку лулзов ради (браузер не зависнет):
var a = [];
a[0] = a;
При сравнении переменных разных типов они автоматически приводятся к одному типу (вот тут да, неочевидно - к какому из). Строки могут преобразовываться в числа при сравнении с числом. Число может преобразоваться в строку, если строка, с которой сравнивают, в число не хочет преобразовываться. Абсолютно всё может преобразоваться в булевый тип (принудительное преобразование - двойная инверсия, !!55), при этом все сложные типы преобразовываются всегда в true, в т.ч. пустые массивы и объекты. False дают только 0, пустая строка, null, NaN, undefined.
Простые - строки, числа, булевы значения, undefined, null.
Сложные - все остальные, в т.ч. сами объекты, массивы, функции.
Простые передаются в функции, в другие объекты по значению, сложные - по ссылке.
Например, можно сделать бесконечную матрёшку лулзов ради (браузер не зависнет):
var a = [];
a[0] = a;
При сравнении переменных разных типов они автоматически приводятся к одному типу (вот тут да, неочевидно - к какому из). Строки могут преобразовываться в числа при сравнении с числом. Число может преобразоваться в строку, если строка, с которой сравнивают, в число не хочет преобразовываться. Абсолютно всё может преобразоваться в булевый тип (принудительное преобразование - двойная инверсия, !!55), при этом все сложные типы преобразовываются всегда в true, в т.ч. пустые массивы и объекты. False дают только 0, пустая строка, null, NaN, undefined.
ну и 2 + 0 == '2', кроличья нора много глубже
яваскрипт создавался для того чтобы заставить обезьянку танцевать на страничке
https://softwareengineering.stackexchange.com/questions/221615/why-do-dynamic-languages-make-it-more-difficult-to-maintain-large-codebases/221658#221658
https://softwareengineering.stackexchange.com/questions/221615/why-do-dynamic-languages-make-it-more-difficult-to-maintain-large-codebases/221658#221658
вспомнился один ролик
там есть сабы
там есть сабы
Напомнило (3:40)
Продвинутые. Нам про конкатенацию ни в школе не рассказывали, ни в ВУЗе.
Это кстати оxуенно и учитель должен поxвалить ребенку за интересное и нестандартное мышление, но затем попросив решить данную задачу иным путем без использования нулей. А девочка молодец
Да ладно, в нормальной школе дадут леща и поставят двойку
В российской школе, если быть точнее. Меня за свое мнение об произведение, на уроке лит-ры, из кабинета выгнали.
Сегодняшняя тема урока математики - "строки".
Чтобы написать коммент, необходимо залогиниться