Рубрика «javascript» - 541

В прошлый раз мы попытались разобраться со следующими вещами:

  • 1. Не смотря на расхожее мнение «всё в JS является объектами» — это не так, мы выяснили, что из 6 доступных программисту типов данных аж 5 является примитивами и лишь один представляет тип объектов.
  • 2. Про объекты мы узнали, что это такая структура данных, которая содержит в себе пары «ключ-значение». Значением может быть любой из типов данных (и это будет свойство объекта) или функция (и это будет метод объекта).
  • 3. А вот примитивы – это не объекты. Хотя с ними и можно работать как с объектом (и это вызывает заблуждение что примитив – это объект), но…
  • 4. Переменные можно объявить как по простому (литерально) (var a = ‘str’), так и через функцию-конструктор (обёртка)(var a = new String(‘str’)). Во втором случае мы получим уже не примитив, а объект созданный конструктором String(). (что за магический оператор new и что такое функция-конструктор мы узнаем дальше).
  • 5. Узнали, что именно за счёт создания обёртки над примитивом (new String(‘str’)) c ним можно работать как с объектом. Именно эту обёртку создаёт интерпретатор вокруг примитива, когда мы пытаемся работать с ним как с объектом, но после выполнения операции она разрушается (поэтому примитив никогда не сможет запомнить свойство, которое мы ему присвоим a.test = ‘test’- свойство test исчезнет с обёрткой).
  • 6. Узнали, что у объектов есть метод toString() который возвращает строковое представление объекта (для типа number valueOf() – вернёт числовое значение).
  • 7. Поняли, что при выполнении операций конкатенации или математических операциях примитивы могут переопределить свой тип в нужный. Для этого они используют функции-обёртки своих типов, но без оператора new (str = String(str)).(в чём разница и как это работает, поговорим дальше)
  • 8. И наконец, узнали, что typeof берёт значения из жёстко зафиксированной таблицы (вот откуда ещё одно заблуждение, основанное на typeof null //object).

Читать полностью »

Читаем с экрана красиво

Лирика

Желаю доброго дня уважаемому Хабра-сообществу.

Вот и прошло первое сентября. Отпел первый звонок, обмякли праздничные шарики, спрятаны в шкаф белые банты. Отшумели утренние линейки, гулким эхом пробежала по прилегающим дворам и, многократно отразившись от стен домов, растворилась в теплом осеннем небе песенка «Учат в школе». Осыпались душистые букеты на столах учителей, цветы опустили головы в разные стороны, не смотря на аспирин, добавляемый в воду ежедневно.

Пришли будни, серые, монотонные, скрасить их немного может лишь тот факт, что сегодня пятница. Первая пятница тяжелой недели первого месяца осени.

Видимо ностальгия ударила по мне, а может хроническая лень на секунду отпустила, но загорелся я идеей улучшить качество чтения различной литературы с монитора. Конечно каждый скажет – да кто сейчас читает-то с экрана? Вон устройств каких только не понавыпускали, пользуйся да ни о чем не волнуйся. Однако есть моменты, когда почитать хочется именно сию секунду, а качество оформления текста удручает.
Читать полностью »

image
Заглянем на новую и очень мощную библиотеку такая как Dojo. Сначало определение. Dojo — свободная модульная библиотека на JavaScript. Это подобие движка jQuery, только теперь работающий на много быстрей. На данный момент разработчики выпустили новую версию — 1.8.0
Читать полностью »

Добрый день. Наша команда (без ссылок, это не важно) решила попробовать новый инструмент-компилятор Saltarelle в разработке своего проекта и, так как Хабр часто нам помогал полезной информацией, решили внести и свой скромный вклад в его копилку знаний и перевести запись в блоге разработчика.
Читать полностью »

Предисловие

В последнее время у меня часто случались моменты, когда я открывал кучу (30+) вкладок Хабра из своего RSS-ридера и постепенно все читал.
Выглядело это так:
image

Но одно меня немного раздражало — некоторые посты оказывались в черновиках и лишь отнимали ресурсы у ОЗУ и процессора (на самом деле нет, мне просто надоедало видеть «Пост перенесен в черновики»).

DraftIcon

И тут я подумал — а почему бы не воспользоваться единственным имеющимся средством (при огромном количестве вкладок) для информативности? Почему бы не закрывать сразу посты, которые не актуальны?

Окей, сказано — сделано. Написал я расширение под незамысловатым названием DraftIcon, которое меняет favicon, если пост находится в черновиках. Выглядит это так:
image

Скачать и установить

Исходный код доступен на Гитхабе и является простым (в прямом смысле, в минифицированной версии он занимает ровно одну строчку + мета-теги) юзерскриптом.
Читать полностью »

В проектах с небольшим фронтэндом бывает не всегда разумно использовать тяжелые фреймворки вроде backbone, ember или knockout. Тем не менее потребность использовать модели, наследование и качественное взаимодействие между ними остается. Предлагаю вашему вниманию фреймворк Neutrino, который делает все вышеперечисленное, при этом его размер не превышает 100 строк кода.
Читать полностью »

16-я версия браузера Firefox, релиз которй намечен на 9 октября, содержит серьёзное обновление движка JavaScript. Сборщик мусора перейдёт от стратегии «stop-the-world», когда на время уборки полностью замораживается работа скриптов, к инкрементальной стратегии, когда сборка мусора происходит в несколько этапов. Хотя в целом работа сборщика мусора будет отнимать немного больше времени, отзывчивость браузера существенно улучшится, так как элементы интерфейса, анимация и игры не будут больше подвисать на несколько сотен миллисекунд на время уборки.
Читать полностью »

Мы рады представить новую библиотеку, разработанную силами Google – Wicked Good XPath, реализацию спецификации XPath для DOM Level 3. Мы уверены, что на сегодня эта библиотека является самой быстрой из всех существующих.

Чтобы начать ее использовать, достаточно скачать файл wgxpath.install.js и включить его на вашей странице
<script src="wgxpath.install.js"></script>
Читать полностью »

Здравствуйте, уважаемые читатели.

Так случилось, что в ходе разработки моего игрушечного веб-приложения я решил сделать в интерфейсе чекбоксы в стиле iPhone. Так как вся клиентская часть разрабатывается на Twitter Bootstrap, то я решил поискать реализацию таких чекбоксов, но не нашел. Тогда я решил сделать форк вот этого проекта,
взял его за основу, перерисовал картинки, подправил css и в итоге получил примерно вот такой чекбокс
iPhone Style чекбокс для Twitter Bootstrap

Читать полностью »

CSS3-транзишены — чертовски полезная штука. По сравнению с javascript-анимацией они:

  1. Обеспечивают более плавные переходы;
  2. Потребляют меньше ресурсов;
  3. Открывают новые возможности. Например, автоматическую обработку матричных преобразований (CSS-transforms);

Конечно, наш с вами любимый IE их не поддерживает даже в 9 версии.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js