---------------------------------------------------------- Базовый обзор типов данных ----------------------------------------------- 00:01:34 Number (integer / float) 00:02:11 String 00:02:15 Boolean 00:02:16 Object 00:03:08 Array 00:04:20 Метод array.push 00:04:31 Метод array.unshift 00:04:50 Метод array.shift 00:05:17 Метод array.pop 00:05:55 Оператор typeof 00:08:33 Метод Array.isArray 00:10:06 Оператор instanceof 00:10:48 Undefined 00:11:12 Null 00:11:55 NaN 00:14:18 Infinity --------------------------------------------------------------------------------------------------------------------------------------------------------------- 00:14:48 Тернарный оператор 00:16:15 Функция paseInt 00:24:23 Функция paseFloat 00:27:15 Удаление переменных 00:33:25 Побитовые операторы (Bitwise operators) 00:34:38 Побитовые операции 00:44:30 BigInt 00:56:30 Операторы сравнения 01:01:20 Очередность операторов (Operator precedence) 01:13:25 Оператор Switch
@LimonES2685 жыл бұрын
раз пять начинал изучать язык, и все по нулям Теперь понимаю, что когда его преподают линейно, ничего ни с чем нестыкуется, просто вылетает большая часть информации по дороге Наконец-то в ваших лекциях видна модель языка, и гибкость системы Вам уважение и блогадарность от всех нас!
@vasyapupkin9972 жыл бұрын
ну и че выучил? 🤣
@sir_alist2 жыл бұрын
?
@ВладиславСавельев-ы8и4 жыл бұрын
Для сортировки массива с, содержащего элементы типов `number` и `BigInt`, требуется использование функции сравнения и явного приведения типов, например, `[5n, 4, 1n, 14, -5, -1, 0, 12n, -8, -18n, 25].sort((x, y) => BigInt(x) - BigInt(y))`. Получаем ожидаемый результат: `[ -18n, -8, -5, -1, 0, 1n, 4, 5n, 12n, 14, 25 ]`.
@maksymleonidov70595 жыл бұрын
20:40 - стало интересно, почему parseInt(0.0000005) парсится в 5. Eсли у parseInt аргумент не строка, то он преобразует его к строке. При этом число с 5-ю нулями после запятой остается "как есть" - (0.000005).toString() => "0.000005", а уже начиная с 6 нулей после запятой число приводится к такому виду - (0.0000005).toString() => "5e-7". Соответсвенно parseInt("5e-7") => 5
@antonparhom12513 жыл бұрын
Спасибо вам Тимур Гафарович за интересную лекцию!
@dosxanzada5 жыл бұрын
первая лекция было как то трудновато к пониманию, но, очень информативно! мое уважение!) удачи во всем!
@volodfast6 жыл бұрын
Для тех кому интересно почему на 1:08:00 именно такой результат - learn.javascript.ru/logical-ops TLDR: В js операторы && и || возвращают результат операнда на котором закончилось вычисление - каким он был до преобразования в булевой тип.
@ИльгизШарафутдинов-ю4ц5 жыл бұрын
можете подробнее описать? для чайников
@AlexChechel-f2e5 жыл бұрын
@@ИльгизШарафутдинов-ю4ц Особенность JS - операторы && и || возвращают значение последнего вычисления (как написал автор поста выше). Это очень часто используемая особенность у практиков JS. Примеры использования: || - возворащает первое не false значение let value; let value2 = 3; v = value || 33; // v === 33 v = value2 || 33; // v === 3 v = value || value2 || 33 // v === 3 положит в переменную v либо значение value (если оно есть и в приведении к булеану выдаст true) либо 33. оператор || прекращает свою работу при первом же значении, которое конвертируется в true. (так как любое количество false и хотя бы одно true всегда вернут true) && - вернет последнее значение только в том случае, если все предыдущие значения будут true let canRun = true; let value = 'Hello'; let someFn = () => 3; let v = canRun && value && someFn(); v будет иметь значение 3 только в случае когда canRun и value приведутся к true. очень хорошо читается, кстати, так что пользуйтесь по возможности
@Max-kr4ie4 жыл бұрын
@@AlexChechel-f2e спасибо.
@КотикПушок-д1щАй бұрын
Спасибо, что дали ссылку на learnJavaScript. Очень хороший и структурированный учебник с примерами и подробным объяснением, как устроен js. 👍
@TimaGixe2 жыл бұрын
Дякую! Чудовий матеріал, працюємо далі! 🚀
@ВикторГорбачев-в4в3 жыл бұрын
Ну, а в общем, классные уроки, особенно если сам прописываешь параллельно у себя в коде. Надеюсь осилю все 89)) Спасибо за труд!
@vasyapupkin9972 жыл бұрын
ну и как осилил?
@СкандальныеПереписки4 жыл бұрын
Если мы не передаём в sort() функцию сравнения, по дефолту сортирует как строку, поэтому и ошибка
@dmitrijponkin6 жыл бұрын
Обалденные лекции!!! Спасибо Вам))
@evgenysmirnov47625 жыл бұрын
С && и || это крутая особенность js, способная запутать даже такого крутого специалиста)
@timashoff2 жыл бұрын
28:04 небольшая неточность переменные объявленные через let так же не получится удалить оператором delete
@alexrain18453 жыл бұрын
на 1:12:50 путаница с оператором && (И) - там всё правильно, т.к. он и должен возвращать один из операндов, а не boolean тип
@TrancePartyVideo4 ай бұрын
Спасибо, посмотрел 👍
@DeLetSHift Жыл бұрын
37:50 пришлось загуглить. Символ "^" всё-таки имеет своё название - ка́рет
@zaverden6 жыл бұрын
21:12 почему так происходит - у вас неверный вывод Как вы сказали чуть раньше, первый параметр приводится к строке. если выполнить [0.5,0.05,0.005,0.0005,0.00005,0.000005,0.0000005,0.00000005].map(f => `${f}`), то видно, что в определенный момент применяется експоненциальная запись ("5e-7"), которая парсится до первого невалидного символа
@user-bn9rw7fx6x2 жыл бұрын
Объясните мне пожалуйста, в конце занятия приводится пример стрелочных функций getDayWichoutSwich и getDayNumber, Почему в первом случае тело функции оборачивается в круглые скобки (), а во втором случае в фигурные {} ? Как узнать, когда используются обычные а когда фигурные скобки?
@TimurShemsedinov2 жыл бұрын
() это выражение, а {} это блок кода. Вот тело функции может быть или выражением или блоком. Блок - более частый случай, он может состоять из многих операторов, выражений и других блоков, а выражение сводится к вычислению одного значения, например, правая часть оператора присвоения, та, что до знака = или if () содержит выражение в скобках
@user-bn9rw7fx6x2 жыл бұрын
@@TimurShemsedinov Спавибо вам огромное за ответ!
@ВикторГорбачев-в4в3 жыл бұрын
01:10:00 - возвращает 'year < nextYear' корректно. Оператор && не возвращает true/false, он возвращает false, если встречает ложное значение, либо последнее истинное значение. Оба значения истинные, поэтому он возвращает значение последнего истинного 'year < nextYear'. И даже если в тернарном операторе до ? будет ложное утверждение, то значение в скобках всё равно будет преобразовано в true, так как там будет содержаться строка, что при преобразовании в boolean будет возвращать true (это в данном примере). А операнды = как раз возвращают true либо false
@takedaheroku3 жыл бұрын
Доброго времени суток, подскажите пожалуйста, где могут в реальных кейсах применяться побитовые операторы?
@TimurShemsedinov3 жыл бұрын
Везде, например для base64 и другого кодирования, для шифрования, для парса бинарных файлов, плотного хранения флагов по 8 в байте и много-много где
@cobwowcobwow63315 жыл бұрын
Спасибо за урок!
@husniddinqurbonboyev26345 жыл бұрын
А где могут быть полезно в практике эти бинарные операции?
@yarikleto55154 жыл бұрын
Самое очевидное: нужно реализовать какой-либо алгоритм шифрования. Помню использовал их для оптимизации математики (где это было критично), так как они (побитовые операторы) исполняются быстрее, чем методы обьекта Math, например.
@КосмоЁжик-е7т2 жыл бұрын
Не услышал какой тип сравнения используется в swicth (просматривал бегло - может не заметил). Для программистов, пришедших из PHP, важно знать, что JavaScript здесь использует строгое равенство (в отличие от PHP).
@TimurShemsedinov2 жыл бұрын
Если что-то пишете про конкретный кусок кода, то добавляйте таймкод в сообщение, а то не удут же люди пересматривать видео, чтоб найти код
@TimurShemsedinov2 жыл бұрын
А так да, типы не приводятся автоматически в свиче, более того, если значение объект, даже методы типа valueOf и toString не вызываются для скрытого приведения.
@ВикторГорбачев-в4в3 жыл бұрын
Для сортировки массивов со смешанными типами number и bigInt можно прописать в колбеке метода sort правила сортировки и тогда сортируется правильно arr.sort((a, b) => Number(BigInt(a) - BigInt(b))); Можно конечно и так arr.sort((a, b) => Number(a) - Number(b));, но так есть вероятность, что числа будут очень большими и не получится сделать корректное вычитание
@TimurShemsedinov3 жыл бұрын
Да, но таких массивов ни где не должно быть
@auvarov3 жыл бұрын
Спасибо
@jorgenUA6 жыл бұрын
отлично, спасибо. Кантора по побитовым не понял - здесь дошло)
@TimurShemsedinov6 жыл бұрын
Я то вообще думал, что эти первые лекции не вышли, а только темы посложнее можно нормально смотреть )
@Doox9116 жыл бұрын
Сколько const n при многократном вызове функции getDayNumber() будет хранится в памяти?
@TimurShemsedinov6 жыл бұрын
До следующего return, т.е. до выхода из функции. Расширенный ответ: этот идентификатор не попадает в замыкание и он скалярного типа number, т.е. хранится он в стеке и после выхода из функции будет удален даже без сборщика мусора, а сразу.
@Doox9116 жыл бұрын
@@TimurShemsedinov Спасибо.
@КонстантинСуркин-ь9ч4 жыл бұрын
1:12:54 Оператор && возвращает первое ложное значение (именно значение), если не находит такое то последнее значение. Подробнее - learn.javascript.ru/logical-operators
@Antares198716 жыл бұрын
Спасибо за лекцию. Очень классно что вы взялись за такое дело и пишите эти лекции. В битовых плаваете, вывод, они не особо и нужны, рассказали для галочки?
@smspivak6 жыл бұрын
В орфографии и пунктуации плаваете, грамотность особо и не нужна, так, для галочки?
@АндрейБочарников-х5ъ6 жыл бұрын
@@smspivak к чему ты это написал? Пропустил одну запятую, боооже, всем плевать, кроме тебя, типа умного человека. Выпендрежник ты сраный
@smspivak6 жыл бұрын
@@АндрейБочарников-х5ъ Орфография и пунктуация - это не только одна запятая. Сраный был твой родовой канал, когда тебя папа на свет высирал.
@qburanp5 жыл бұрын
@@smspivak человек на видео учит людей, а комментируют те, кто учится. Чувствуешь разницу?
@smspivak5 жыл бұрын
@@qburanp Рыба с жабрами, а пиво холодное. Чувствуешь разницу?
@myroslavtkachenko32895 жыл бұрын
44:51 "Очень большую цифру" резануло слух. Может Вы имели в виду число? Напомню, что цифра - это знак, с помощью которого записываются числа.
@TimurShemsedinov5 жыл бұрын
Да, конечно, оговорка, я сам люблю спросить студентов о том, какого типа цифра, а ведь chat char или строка)))
@martDKNY5 жыл бұрын
1:01:21 Precedence js operator
@АлександрВоронцов-г5л6 жыл бұрын
Как также vim настроить ? )
@TimurShemsedinov6 жыл бұрын
dnf install mc
@АлександрВоронцов-г5л6 жыл бұрын
Спасибо.
@qburanp5 жыл бұрын
Это нано а не вим
@oleksiilamzin98885 жыл бұрын
@@qburanp mcedit
@jgblack57605 жыл бұрын
1:12:37 нет чего писать такие длинные выражения :D :D :D
@АндрейФилиппов-з3и4 жыл бұрын
необычный подход к типам данных undefined и null, мол 1 к скаляру, а 2 к объекту, задумался на какое то время, НО логично было бы тогда, чтобы undefined приводился к 0, однако выдает ошибку) про null вообще где то читал, что это закравшаяся ошибка в языке, которую из за легаси кода уже не исправят, но к объектному (ссылочному) типу кажется относить не правильно, мало логики в этом. Для себя решил, что null это "пусто", очень с 0 похоже, и к тому же приводится к 0, а undefined это что то системное и больше к логике (boolean: false), и перевожу его как "ничего", я вкладываю разные понятия интуитивно, но для правильного применения нужен опыт, которого пока очень мало) в общем мне кажется вряд ли когда то понадобится идентификатору присваивать undefined, чего не скажешь о null) Спасибо за лекцию!
@Vllad_Ko4 жыл бұрын
delete удаляет только в объектах, let также как и const удалить delete низзя
@TimurShemsedinov4 жыл бұрын
Да, даже var нельзя удалить. Удаление переменных было доступно только в древние времена и для плохого кода, когда еще не было strict mode, а присвоение name = 5 создавало поле на глобальном контексте и из него можно было ужалить делитом. Но это все лучше забыть.
У меня почему-то ни в браузере ни в Node удалить переменную, объявленную через let нельзя. Но на 28 минуте говорится, что это можно сделать.
@TimurShemsedinov6 жыл бұрын
let переменные тоже нельзя удалять, это я ошибся, delete вообще использовать плохо и я его на практике не применяю, раньше delete использовался для удаления полей из глобального контекста (их просто спутать с переменными), но эта практика еще ужаснее.
@АлександрВоронцов-г5л6 жыл бұрын
@@TimurShemsedinov Теперь все встало на свои места. Спасибо.
@zatokeran3 жыл бұрын
👍
@airdropking59734 жыл бұрын
kzbin.info/www/bejne/p5KQiZ-bpqZjgLc получается 'year < nextYear' в результате сравнения приходит true далее выполняется логическое && справа тоесть тернарная инструкция, которая возвращает текст, все логично
@thalwho6 жыл бұрын
developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators несколько дополнит про битовые операции
@ВиталийУлыбин-д4б6 жыл бұрын
На 41 минуте начинается полная охенея. Правильно: >> - Сдвиг битов вправо с сохранением знака; >>> - Сдвиг битов вправо с заполнением нулями.
@ДенисПашков-к8х6 жыл бұрын
Это говорит о том, что лектор этим пользуется мало и это на практике мало кому необходимо.
@oleglagoda39316 жыл бұрын
@@ДенисПашков-к8х А && он тоже редко пользуется?
@МихаилОхотников-д8ч2 жыл бұрын
kzbin.info/www/bejne/p5KQiZ-bpqZjgLc - символ называется "Карет" ru.wikipedia.org/wiki/%D0%9A%D0%B0%D1%80%D0%B5%D1%82