This repo moved to https://github.com/javascript-tutorial/en.javascript.info
iliakan / javascript-tutorial Goto Github PK
View Code? Open in Web Editor NEWThe Modern JavaScript Tutorial
The Modern JavaScript Tutorial
This repo moved to https://github.com/javascript-tutorial/en.javascript.info
http://learn.javascript.ru/write-unmain-code
Необходимо для новичков добавить комментарий, что данная статья является примером того, что нельзя делать.
Данный текст надо выделить в начале или в конце статьи, т.к. она интересная и смешная для раработчиков, но вводит в заблуждение новичков, которые читают данную книгу.
"bind не похож call/apply"
пропушено "на"
"bind не похож НА call/apply"
В квадратных скобках большинство специальных символов можно использовать без экранирования, если конечно * ни не имеют* какой-то особый смысл именно внутри квадратных скобок.
http://joxi.ru/9E2pMeBi4onGAY
https://learn.javascript.ru/regexp-character-sets-and-ranges#не-нужно-экранирование
Наверно должно было быть Они не имеют
"Понятен ли этот код? Очевидно ли, какой HTML он генерируют методы render, renderItems?"
Слово он лишнее.
На странице https://learn.javascript.ru/mousemove-mouseover-mouseout-mouseenter-mouseleave есть текст "Если посмотреть на 1) и 3), то видно, что то видно, что на #FROM сработает сначала mouseout, а затем с #TO всплывёт mouseover." Что сие значит я так и не понял, надо бы поправить предложение, чтобы понять о чём оно.
https://learn.javascript.ru/task/primitive-conversions-questions
В двух местах нет перевода строки.
В примерах "Два таких вызова работают одинаково:"
var user = {};
// 1. простое присваивание
user.name = "Вася";
// 2. указание значения через дескриптор
Object.defineProperty(user, "name", { value: "Вася" });
Исправьте, пожалуйста, второй пример на
Object.defineProperty(user, "name", { value: "Name", writable : true, configurable : true, enumerable : true });
Т.к. вводит в заблуждение, ведь по умлочанию св-ва false
"В проверке rabbit instanceof Rabbit, совпадение на первом же шаге этго алгоритма, так как: rabbit.proto == Rabbit.prototype." Этго надо бы на этого заменить.
Страница https://learn.javascript.ru/number
ссылка
http://www.klgtu.ru/students/literature/inf_asu/1760.html
Текст ссылки "перевод десятичной дроби в двоичную систему"
https://learn.javascript.ru/call-apply
Uncaught ReferenceError: _errs is not defined 5561d57590f663277600185b.js:2
chrome 43.0.2357.130 m windows 7
Здесь:
http://learn.javascript.ru/metrics#узнать-ширину-полосы-прокрутки
В решении сказано: "Создадим элемент с прокруткой, но без padding. Тогда разница между его полной шириной offsetWidth и внутренней clientWidth будет равна как раз прокрутке:"
Подозреваю, что должно быть "Создадим элемент с прокруткой, но без border ...", ибо padding учитывается в clientWidth, каким бы он не был, а вот border, если он есть, то предложенная в решении формула (var scrollWidth = div.offsetWidth - div.clientWidth;) будет работать некорректно .
Здесь логичнее будет смотреться слово Экспорт вместо Экспортирование
В решении задачи http://learn.javascript.ru/task/find-elements в пункте 5 не совпадает имя формы (в вопросе "search", в ответе "search-person")
Предлагаю заменить на:
Два последних метода не поддерживаются в FF7-, но для них можно добавить эти методы с помощью небольшого полифилла [insertAdjacentFF.js](insertAdjacentFF.js).
http://joxi.ru/Bv297OXh4kyNrG
// А когда они завершатЬся — нужно вызвать одно из:
завершатся
По моему некорректно работает пример http://learn.javascript.ru/ajax-jsonp#полный-пример
Функция httpGet(url) будет возвращать промис, который при успешной загрузки данных с url будет переходить в fulfilled с этими данными, а при ошибке — в rejected с информацией об ошибке:
при успешной загрузкЕ
Код выше не учитывает текущую прокрутку. Он присваивает window.pageYOffset один раз и в дальнейшем, чтобы получить текущую прокрутку, нужно снова обратиться к document.documentElement.scrollTop не меняет его.
Фразу не меняет его нужно переместить перед и в дальнейшем
нет var перед переменными:
// Создаём двух хомяков и кормим первого
speedy = new Hamster();
lazy = new Hamster();
В конце статьи говорится, про то, что при начале драга из внешнего кода запускается onDragStart()
, при этом, в исходных кодах примера его нет, там просто используется вспомогательная функция dragStart()
.
http://learn.javascript.ru/metrics#clientwidth-height
Вероятно опечатка в тексте (не CSS-ширина, а CSS-высота):
"На рисунке выше посмотрим вначале на clientHeight, её посчитать проще всего. Прокрутки нет, так что это в точности то, что внутри рамок: CSS-ширина (!!!) 200px плюс верхнее и нижнее поля padding (по 20px), итого 240px."
В разделе про ES2015 может стоит сделать в конце описания каждой фичи таблицу поддержки браузерами, как это в MDN? ES6-таблица (http://kangax.github.io/compat-table/es6/) это здорово, но часто сложно сопоставить фичу с англоязычной терминологией и понять какая строка в таблице мне нужна. Или хотя бы давать прямую ссылку на конкретную строку в таблице (она так, к счастью, умеет).
height — полная высота документа, её вычисление давно в главе
дано вместо давно?
Скажи пожалуйста, почему тут
https://github.com/iliakan/javascript-tutorial/blob/ru/4-ajax/10-ajax-jsonp/article.md
текст не до конца?
В самом учебнике
https://learn.javascript.ru/ajax-jsonp
не работает последний пример
Браузер подвисает и пишет, что обнаружена циклическая переадресация на странице https://learn.javascript.ru/task/var-window
https://learn.javascript.ru/task/coffeemachine-disable-stop
В этой задаче вместо решения ссылка.
Что-то не вижу, оно там точно есть? Ты, вроде, добавлял, но куда...
Вызов bind(user.sayHi, user) возвращает такую функцию-обёртку, которая привязывает вызовет user.sayHi к контексту user. Она будет вызвана через 1000мс.
Здесь слово "вызовет"лишнее.
Исключением является IE, в котором таймер «застывает» во время выполнения JavaScript.
А так будет выглядить картинка с рекурсивным setTimeout:
третья сверху стрелка должна быть в другую сторону
В решении задачи «Карусель» из главы «Введение в браузерные события» остался ненужный блок кода if – в обработчиках событий carousel.querySelector('.prev').onclick и carousel.querySelector('.next').onclick.
Ты добавлял иллюстрации? Какие?
На странице https://learn.javascript.ru/oop-errors есть предложение "Если же объект ошибки делаем мы, то «по умолчанию» у него такого свойства у него не будет." Надо бы одно "у него" убрать.
Вызов elem.cloneNode(true) создаст «глубокую» копию элемента — вместе с атрибутами, включая подэлементы. Если же вызвать с аргумнтом false, то он копия будет без подэлементов, но это нужно гораздо реже.
Задача http://learn.javascript.ru/task/behavior-nested-tooltip
В решении - лишние функции getCoords(elem) и getPageScroll(), они не используются (т.к. позиционирование производится относительно окна...)
В разделе http://learn.javascript.ru/mixins#примесь-для-событий
пример запускается с ошибкой (и через прямой запуск, и через песочницу) - не добавлен написанный выше код ( var eventMixin = ...)
Свойства clientWidth/Height, если есть полоса прокрутки, возвращают именно ширину/высоту документа, за вычетом прокрутки, а эти свойства — игнорируют её наличие.
Неоднозначно читается текст. Вместо а эти свойства лучше написать название свойств.
Если по mouseover мы что-то показываем, а по mouseout — скрываем, то может получается «мигание».
Это сугубо мое мнение, но попробуйте сами:
При пролистывании блока кода (из примеров) влево, если движение слишком быстрое, происходит переход на следующую страницу раздела (типа Alt + &rarr на десктопе).
В итоге, либо пролистывай "затаив дыхание", либо возвращайся по нескольку раз на предыдущую страницу и ищи место на котором остановился.
Откровенно говоря, это бесит)
date -> data
<li>`data:` -- сообщение, несколько таких строк подряд склеиваются и образуют одно сообщение.</li>
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.