JavaScript позволяет выполнять преобразование типов. Если это делают намеренно, то перед нами — явное приведение типов (type casting или explicit coercion). В том случае, когда это производится автоматически, при попытке выполнения каких-либо операций над значениями различных типов, это называют неявным приведением типов (coercion или implicit coercion).
Автор материала, перевод которого мы сегодня публикуем, предлагает взглянуть на то, как выглядит явное и неявное приведение типов на низком уровне. Это позволит всем желающим лучше понять процессы, скрытые в недрах JavaScript и поможет дать аргументированный ответ на вопрос о том, почему [1] + [2] — [3] === 9.
Рубрика «Разработка веб-сайтов» - 211
[1] + [2] — [3] === 9!? Исследование внутренних механизмов приведения типов в JavaScript
2018-04-16 в 9:41, admin, рубрики: javascript, Алгоритмы, Блог компании RUVDS.com, разработка, Разработка веб-сайтовПравильные ответы по криптографии: 2018 год
2018-04-16 в 8:44, admin, рубрики: AEAD, aes, AKE, argon2, bcrypt, beast, blowfish, bouncycastle, CBC, chacha20, CRIME, Curve25519, DROWN, ECDHE-TLS, Ed25519, freak, hmac, HSM, KCI, KMAC, KMS, libsodium, Logjam, lucky13, mac, md5, MD6, NaCl, openssl, padding oracle, pbkdf2, Poly1305, poodle, RC4, scrypt, sha-1, SHA-2, SHA-3, sha256, SSL, Tarsnap, TLS, XSalsa20, Блог компании GlobalSign, ГСЧ, Диффи — Хеллман, информационная безопасность, криптография, нонсы, Разработка веб-сайтов, эллиптические кривыеВ литературе и самых сложных современных системах есть «лучшие» ответы на многие вопросы. Если вы разрабатываете встроенные приложения, то предлагают использовать STROBE и модный современный криптографический стек для аутентификации полностью из одиночных SHA-3-подобных функций губки. Советуют использовать NOISE для разработки безопасного транспортного протокола с формированием общего ключа аутентификации (AKE). Говоря об AKE, есть около 30 различных парольных AKE на выбор.
Но если вы разработчик, а не криптограф, то не должны делать ничего такого. Следует придерживаться простых и обычных решений, которые легко поддаются анализу — «скучных», как говорят люди из Google TLS.
Читать полностью »
Angular: оптимизация обработки событий
2018-04-16 в 8:27, admin, рубрики: angular, html5, TypeScript, Блог компании Селектел, Разработка веб-сайтов
Прошла буквально пара недель, как я впервые начал писать на Angular, и сразу же столкнулся с рядом специфических проблем. Из-за малого опыта работы с этим фреймворком, я не уверен, что примененные способы оптимизации — это не стандартная практика. Некоторые признаки указывают, что разработчики предполагают подобные подходы, но делать выводы пришлось по профайлеру, а информацию искать по частям. При этом надо сказать, что решение нашлось очень быстро, когда причины проблем прояснились.
В статье я разберу как оптимизировать обработку часто вызываемых событий: mousemove, scroll, dragover и прочих. Конкретно я столкнулся с проблемами при реализации drag-and-drop интерфейса, поэтому и разбирать буду на примере с перетаскиванием элементов.
Читать полностью »
Дайджест свежих материалов из мира фронтенда за последнюю неделю №310 (9 — 15 апреля 2018)
2018-04-15 в 21:29, admin, рубрики: angular, css, ES6, html, html5, javascript, JS, React, vue, Блог компании Zfort Group, браузеры, дайджест, подкасты, Разработка веб-сайтов, ссылки, фронтендПредлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.
Кстати, на днях дайджесту исполнилось 6 лет. Спасибо, что все еще читаете.
Доброго времени суток, уважаемые Хабровчане.
Решил освежить в памяти особенности верстки по БЭМ, но кроме как официальной онлайн документации ничего не нашел. Вот и подготовил для печати свою выжимку.
Читать полностью »
Противостояние W3C и WHATWG: Apple, Google, Microsoft, Mozilla возражают против DOM 4.1
2018-04-14 в 11:16, admin, рубрики: dom, html, w3c, WHATWG, интерфейсы, Разработка веб-сайтовКак всем известно, существует две спецификации HTML: W3C (консорциум World Wide Web) и WHATWG (компании Apple, Google, Microsoft и Mozilla, де-факто авторы стандарта HTML5). На этой неделе между создателями спецификаций состоялся открытый конфликт.
Ситуация развивалась следующим образом. Началось всё с того, что W3C сделала форк спецификации живого стандарта WHATWG DOM и назвала его DOM 4.1. Затем W3C внесла в неё несовместимые изменения и объявила форк официальной спецификацией, хотя по факту вся важная работа производилась в версии WHATWG.
Прошло некоторое время, и месяц назад стартовало публичное обсуждение предложения W3C сделать спецификацию Кандидатом в рекомендации (после неё существенные изменения по сути уже не вносятся, только уточняются детали дизайна в PR, рекомендация принимается официально). Прочитать это познавательное обсуждение можно на Github по адресу: https://github.com/w3c/dom/issues/175.
Логично предположить, что у некоторых членов W3C возникли вполне обоснованные возражения по поводу несовместимости двух версий DOM. Здесь в вопрос вмешался CEO W3C, который вступил с ними в спор и отклонил все их возражения, продвинув спецификацию до статуса Кандидата в рекомендации (Candidate Recommendation, CR) и объявив призыв к консенсусу.
Разумеется, членам WHATWG такой поворот событий не понравился. После того, как директор W3C отказался изменять спецификации, эти компании несколько дней назад выступили с официальным возражением (Formal Objection) против DOM 4.1, пообещав W3C, что в текущем виде данную спецификацию ни один из движков браузеров реализовывать не собирается — поскольку две несовместимые версии DOM не нужны ни разработчикам, ни пользователям.
Читать полностью »
Drupalgeddon2: началась эксплуатация SA-CORE-2018-002
2018-04-13 в 21:25, admin, рубрики: drupal, drupalgeddon2, атаки, взлом, информационная безопасность, Разработка веб-сайтов, хостингDrupalgeddon2 все-таки пришел к нам.
Что случилось? После безумного анонса «одной из самых страшных уязвимостей Drupal» все замерли в ожидании рабочего эксплойта и через 4 дня даже начали немного грустить, считая, что вся паника была зря, так как никто не мог придумать ничего стоящего. Но стоило только CheckPoint'у сегодня опубликовать рабочий PoC на SA-CORE-2018-002, как армия ботов начала атаковать сайты на Drupal, что называется, «in the wild». Читать полностью »
SEO оптимизация статьи: актуальный план
2018-04-13 в 18:46, admin, рубрики: seo оптимизация, микроразметка, оптимизация статьи, поисковая оптимизация, продвижение сайтов, Разработка веб-сайтов, яндексОсторожно! Лонгрид.
Речь пойдет об оптимизации страницы статьи для поисковых систем. Данный материал больше подходит для продвижения в Яндексе.
Специально для Хабровцев, в заключении есть список всех разделов применимых к Хабрастатьям.
UPD// Эта страница уже в топе Google.
RTCP REMB: подкручиваем настройки видеозвонка в браузере
2018-04-13 в 10:28, admin, рубрики: Go, voip, voximplant, WebRTC, Блог компании Voximplant, Программирование, Разработка веб-сайтов, разработка мобильных приложений
Находчивые ребята из Tribe не только нашли свою нишу на стыке конференсинга и gamedev’а (что само по себе уже интересно), но и хорошо знают, что творится под капотом у WebRTC. Менеджер по продукту Тимотэ Ле Борнье периодически описывает техническую сторону своего детища; мы решили перевести его статью про нестандартную, но очень любопытную функциональность WebRTC. Уверены, вам будет интересно. Ну а пока вы читаете, мы продолжим готовить инсайд про наши обновленные видеоконференции… Но это уже другая история.
Читать полностью »
Операторы ?., ?? и |>: будущие возможности JavaScript, которые вам понравятся
2018-04-13 в 8:43, admin, рубрики: javascript, Блог компании RUVDS.com, разработка, Разработка веб-сайтовДжастин Фуллер, автор материала, перевод которого мы сегодня публикуем, предлагает рассмотреть три новых возможности, появление которых ожидается в JavaScript в обозримом будущем. Сначала он расскажет о процессе развития JS, а после этого представит обзор этих возможностей и покажет примеры их использования. Речь пойдёт об операторах ?.
, ??
и |>
.
О стандарте ECMAScript и развитии JavaScript
Если вы уже знакомы с особенностями деятельности рабочей группы ECMA TC39, с тем, как она осуществляет отбор и обработку предложений о совершенствовании JavaScript, вы вполне можете пропустить этот раздел. Если же вы из тех, кому интересно об этом узнать — вот краткий обзор того, чем занимается TC39.
JavaScript — это реализация стандарта, называемого ECMAScript, который был создан для стандартизации реализаций языка, которые появились в ранние годы существования веб-браузеров.
Существует восемь редакций стандарта ECMAScript и семь релизов (четвёртая редакция стандарта не выходила, после третьей сразу идёт пятая). Разработчики JavaScript-движков приступают к реализации новшеств языка после выхода стандарта. Здесь можно увидеть, что не каждый движок реализует все возможности, при этом некоторым движкам для введения новшеств требуется больше времени, чем другим. Хотя такое положение дел и не идеально, это, всё же, лучше, чем полное отсутствие стандартов.
Читать полностью »