Этот ваш Java Script

Jul 02, 2015 10:28

просто какая-то поделка обкурившегося студента перед неожиданной сдачей диплома ( Read more... )

шиза, ит

Leave a comment

Comments 36

orleanz July 2 2015, 07:48:52 UTC
В реальной жизни это не мешает. Если человек потратил пару недель на изучение языка то все описаные вещи не являются сюрпризом. Ну например я не стану пытаться конкатенировать массивы плюсом потом что для этого есть другой способ который все знают и все прекрасно используют.

Зато в js почти нет тошноторного джавного бойлерплейта и избыточности.

Reply

krocodl July 2 2015, 08:22:23 UTC
да, но в любой момент массив может вывалиться в операцию сложения из какой-нибудь переменной...
Не знаю, меня раздражает подобная небрежность проектирования языка

Reply

orleanz July 2 2015, 09:18:54 UTC
никто не спорит тем, что JS был разработан небрежно. Вы кстати в курсе как это конкретно происходило? Даже если знаете, напишу тут кратко, может кто другой не знает, кто читает этот топик. А именно, Брендану Айху была дана 1 неделя на разработку языка, и была сказано, что если не он не сделает ЧЕГО-ТО, то вообще ничего не будет, браузер выйдет такой фичи. Ну, он (физик по образованию), быстренько накидал нечто, взяв за основу синтаксис Си, кложуры / first class functions из Скима и прототипическое наследование из малоизвестного языка Селф. Коктейль из трех составных частей ( ... )

Reply

krocodl July 2 2015, 09:32:32 UTC
За книгу спасибо - посмотрю.
Что же касается энтерпрайз разработки, то тут я скептик. Чтобы большой проект на основе скриптового языка, который одновременно интенсивно пишется значительным количеством не супер-профессиональных разработчиков, не разваливался на ходу его необходимо обложить таким количеством тестирующего кода, что стоимость разработки взлетит до небес, а болтливость джавы покажется скромным цветочком.

Reply


orleanz July 2 2015, 09:47:32 UTC
" 'abc' || 'cde' это в результате не true, а 'abc'

это не недоработка, это фича

например, я хочу прочитать из локал сториджа браузера параметр userAge, но я не знаю, есть ли там вообще чего-то

пишем

var userAge = localStorage.getItem("userAge") || 20; // take stored value, if not available, set userAge to default value 20

или скажем так

var userAge = localStorage.getItem("userAge") || localStorage.getItem("defaultUserAge") || 20;

кристальная простота и ясность, ни малейшей лишней ботвы, это именно пример того за что любим js

Reply

krocodl July 2 2015, 09:54:46 UTC
да, плюс дефолтные значения в функциях, я уже оценил возможность применения.

Reply

(The comment has been removed)

orleanz July 11 2015, 21:16:17 UTC
неплохая идея кстати помечать умерших юзеров значением Фолс в поле возраста

Reply


erra July 4 2015, 10:12:59 UTC
поведение в части || и && полностью соответствует unix shell )

Reply

krocodl July 4 2015, 10:35:27 UTC
ну да, есть ощущение как от shell переростка

Reply

ext_1684112 July 13 2015, 10:17:15 UTC
Так физик же писал.

Reply


elfadmin July 6 2015, 07:44:36 UTC
Вообще то ситуация со сравнением value!== value такая же как и в джаве :
Java Language Specification (JLS) says:

Floating-point operators produce no exceptions (§11). An operation that overflows produces a signed infinity, an operation that underflows produces a denormalized value or a signed zero, and an operation that has no mathematically definite result produces NaN. All numeric operations with NaN as an operand produce NaN as a result. As has already been described, NaN is unordered, so a numeric comparison operation involving one or two NaNs returns false and any != comparison involving NaN returns true, including x!=x when x is NaN.

Ну а по поводу Boolean('false')- ну еврейский язык ( ЗОГ ага) как по анекдоту про раввина - И ты прав..
'2' * '3' это 6, а '2' + '3' это '23' - опять же OOP классический + для строк определен а * нет, почти джава

Reply

krocodl July 6 2015, 07:59:32 UTC
В джаве нельзя переопределять операторы

Reply

elfadmin July 6 2015, 10:29:09 UTC
Я в курсе про операторы. Но здесь и нет речи об определении своего оператора - + идет из стринга, если бы был autoboxing из String в Integer - ты бы получил ровно тот же еффект. Я собственно это имел ввиду. А C++ style операторы - зло, с оператором() можно такого наворотить ( и блин воротят) что никто включая автора перла не поймет.... :-)

Reply

krocodl July 10 2015, 07:38:28 UTC
а ты что ли Java занялся??? вроде же работал с чем-то очень низкоуровневым?

Reply


recoder July 9 2015, 17:00:06 UTC
krocodl July 10 2015, 07:37:28 UTC
о да!!!

Reply


Leave a comment

Up
[]