Немного JavaScript вам в ленту

Немного JavaScript вам в ленту Скриншот, Комментарии на Пикабу, Комментарии, IT юмор, IT, Javascript, Языки программирования

#comment_145966287

Скриншоты комментов

56K постов39.9K подписчиков

Добавить пост

Правила сообщества

В сообществе можно размещать ЛЮБЫЕ скрины (комментов) с любого сайта!!



ПРИКРЕПИТЬ ССЫЛКУ НА КОМЕНТ ЕСЛИ ОН С Пикабу желательно, но не обязательно!!!

Если скрин не с пикабу, а со стороннего сайта( Твиттер,. Вк, Одноклассники и т.д.) то ссылка не обязательна.

Для сообщества подходит любой скрин, набранный на клавиатуре, даже если это не диалог (под вид Твита) Так же подходит скрин с картинкой и хотя бы одним комментарием под ним, с любого источника.

Вы смотрите срез комментариев. Показать все
6
Автор поста оценил этот комментарий

: Разрешите поинтересоваться в целях повышения образованности — О чём это вы все так оживлённо беседуете?

раскрыть ветку (33)
20
Автор поста оценил этот комментарий

Какая-то ошибка в обработке данных. NaN - not a number - букв. "не число" - ошибка интерпретатора языка джава скрипт. Возникает, когда программа ждёт число, но получает что-то другое.


[object] - собственно, объект - тип данных. Скорее всего, программой ожидались какие-то строковые или числовые данные, но пришел объект. Например объект, содержащий данные пользователя, будет выглядеть примерно так: user = { name: 'Вася', age: 25 }, если мы захотим вывести, скажем имя пользователя, то нам нужно будет обратиться к соответствующему свойству объекта user, примерно так: user.name. Если же попытаться вывести объект целиком, то как раз и получим "ошибку" [object]


undefined - какие-то отсутствующие, не назначенные данные. Возникает при попытке обратиться к каким-то несуществующим данным. Если брать объект из примера выше, то user.nickName выведет undefined, потому что у нашего объекта нет такого свойства.

раскрыть ветку (26)
4
Автор поста оценил этот комментарий
то как раз и получим "ошибку" [object]
Это не ошибка, это объект после преобразования в строку посредством Object.prototype.toString()
раскрыть ветку (2)
3
Автор поста оценил этот комментарий

Потому и написал в кавычках. Это не ошибка с точки зрения программы, но ошибка с точки зрения пользователя.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Ну если ты в таком смысле, тогда ок

1
Автор поста оценил этот комментарий

А мне интересно, почему js спокойно разршает работать с undefined, NaN, а какой-нибудь c++ сразу начнет ругаться? Просто включаю на фон видосики разные для общего развития и слышал фразу "Тут мы делаем проверку на нулл" довольно часто.

раскрыть ветку (21)
3
Автор поста оценил этот комментарий

Че-то все пишут какую-то чушь.


JS, как язык, имеет слабую динамическую типизацию, это значит что одни типы могут превращаться на лету в другие, что называется неявным приведением типов (гуглить type casting).


Это была фишка языка, но сейчас все стараются на крупных проектах использовать надстройки со статической типизацией, например такие штуки как flowtype или typescript

1
Автор поста оценил этот комментарий

Потому что JS - язык с динамической типизацией, а плюсы со статической.

Поэтому в JS в переменной может оказаться всё что угодно (например,  такого поля может вообще не существовать и мы получим undefined, хотя ожидаем число или объект), и это выяснится только во время исполнения программы, а в плюсах типы заранее определены и проверка на типы выполняется при компиляции. Но и тут мы не защищены от того, что в переменной вместо экземпляра класса будет null, а в плюсах ещё и указатель может указывать в никуда.

1
Автор поста оценил этот комментарий

Js тоже ругается. Но все ошибки выводятся в консоль браузера и вы их не видите

1
Автор поста оценил этот комментарий

Вот такой вот он язык. Многие его за это ругают. Для меня это первый яп, сравнивать мне особо не с чем, так что для меня это не проблема. Особенно с линтером и проптайпсами. Ещё тайпскрипт есть, но лично у меня на работе его не используют.

6
Автор поста оценил этот комментарий

потому что изначально js разрабатывался как язык для непрофессионалов

раскрыть ветку (7)
12
Автор поста оценил этот комментарий

Ниче ты говна в вентилятор вкидываешь)

раскрыть ветку (6)
6
Автор поста оценил этот комментарий

Но это ведь правда, он же написал «изначально». JavaScript, как и многие ставшие популярными сейчас языки, придумывался как «язык для домохозяек» с минимальным порогом вхождения. Это сейчас он используется повсеместно и имеет весь тулинг для полноценной профессиональной разработки крупных приложений. Но изначально это было не так и с тех времён осталось много проблем и компромиссов для обратной совместимости

раскрыть ветку (4)
3
Автор поста оценил этот комментарий

Спасибо, хоть кто-то меня понял))

Автор поста оценил этот комментарий

JavaScript придумывался как вариант Lisp

раскрыть ветку (2)
Автор поста оценил этот комментарий

Откуда вы это взяли?) Два совершенно не связанных языка.

раскрыть ветку (1)
1
DELETED
Автор поста оценил этот комментарий

профессионально)))

Хотя он прав, порог вхождения минимальный (меньше только у PHP), отсюда и куча шутников на джаваскриптовом.

2
Автор поста оценил этот комментарий

1) JS не является строго-типизированным языком программирования. Тип данных хранящийся в переменной определяется уже в процессе исполнения.

2) Проверять на null полезно даже в строго типизированных языках, так как обозначает отсутствие ссылки на объект.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Строгой типизации не существует, есть сильная/слабая и статическая/динамическая

2
Автор поста оценил этот комментарий
Проверка на null - это на самом деле проверка на nullptr, то есть, на нулевой указатель. И естественно c++ на такое ругается, потому что это значит, что указатель указывает в никуда, и программа не знает как разименовать ничего (это если совсем просто объяснять). А при написании программ на js, программист не имеет прямого доступа к памяти и интерпретатор просто сообщает программисту, что у него что-то не так с типизацией.
В общем, такая разница напрямую следует из идеологии (не знаю как это назвать) языка. C++ язык высокого уровня, но позволяющий напрямую обращаться к памяти, а js - скриптовый язык, и памятью при исполнении js кода распоряжается интерпретатор.
1
Автор поста оценил этот комментарий

Потому что js выполняется внутри "виртуальной машины", а с++ исполняется процессором практически "напрямую". И если внутри виртуальной машины можно спокойно обработать нестандартные ситуации, то ошибки в инструкциях процессора обычно ведут к остановке выполнения всего блока инструкций.
Ну и как любят на пикабу пример из жизни:
Возьмём для примера движение как исполнение инструкций)
Мальчик(код) едет на трёхколёсном велосипеде (js) по палубе плывущего корабля (виртуальная машина). Чтобы не случилось с мальчиком или велосипедом(мальчик сломается, велосипеду надоест катать мальчика и т.д.), корабль все равно будет продолжать движение и мальчик никак на него не может повлиять (условно конечно же, вариант что мальчик заложит 20кг взрывчатки возле двигателя мы не рассматриваем).
Мужик(код) плывёт на вёсельной лодке(с++) по морю (скомпилированный байткод исполняемый процессором посредством ядра операционной системы). Если что-то случится с мужиком или с лодкой - движение остановится.
Примерно как-то так.

раскрыть ветку (5)
4
Автор поста оценил этот комментарий
В следующий раз не пойду на форумы по кодингу, а попробую схохмить на Пикабу по теме. Кажется, пользы будет больше.
2
Автор поста оценил этот комментарий

Лол, ага, конечно, остановится. И виртуальная машина тут тоже не причем, не вводите людей в заблуждение.


Суть в типизации, у C++ она статическая, это значит что компилятор сразу знает всё о типах сущностей и делает проверки на этапе компиляции; а у js — динамическая, это значит что мы не знаем ничего о типе сущности пока код в этом месте не начнёт исполняться, соответственно нужно проверять типы во время исполнения.

раскрыть ветку (2)
1
Автор поста оценил этот комментарий

Чувак, он вообще-то прав. Ты тоже прав, но ты говоришь про следствие от того, что описал он. Не тоороопись, подумоой

раскрыть ветку (1)
Автор поста оценил этот комментарий

Да какое следствие, это архитектура и задумка языка, типизация это вещь на которой базируются языки, а не «неожиданный поворот». Под язык пишутся компиляторы, а не наоборот. То о чем он пишет — как раз таки неверная попытка отписать следствие

Автор поста оценил этот комментарий

Вообще-то нет.

На плюсах можно спокойно написать программу с утечкой памяти.

Всё дело в типизацией языков.

Автор поста оценил этот комментарий

Спасибо!

2
Автор поста оценил этот комментарий

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

Ничё интересного, короч.

раскрыть ветку (3)
Автор поста оценил этот комментарий

А ничего,что я в этом поучаствовал?

раскрыть ветку (2)
3
Автор поста оценил этот комментарий

Ничего, вдруг и ты со злости захочешь выучить JS, что бы обосрать кого то

1
Автор поста оценил этот комментарий

Так и я поучаствовал. Пикабу ж для этого и придумали.

1
Автор поста оценил этот комментарий

Ловите пользователя!!!

раскрыть ветку (1)
Автор поста оценил этот комментарий
Лови Грибоедова!
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку