Что получится если сложить true false

Как проверить, что знаешь на базовом уровне JavaScript?

Было поставлено задание выучить javascript на базовом уровне. Задача очень абстрактная, и поэтому я не могу сейчас понять, знаю я на базовом или нет. У меня срок до среды. Я просмотрел два целых курса на ютубе + сейчас на https://learn.javascript.ru/ прочитал и сделал пометки до 45 занятия из 83. Сам пытался писать некоторые простые задачи и т.д. и т.п.
Так как всё же определить, есть у меня базовый или нет? Смогу ли я сделать тестовое какое-нибудь задание?

ps напишите пару заданий, которые можно было бы сделать для проверки своих сил.

Простой 2 комментария

Что получится если сложить true false

Хотите задачку? Ловите.

Что получится если сложить true false

Что получится если сложить true false

Что получится если сложить true false

Что получится если сложить true false

Я не знаю, какой идиот составлял этот тест, но он к JS относится посредственно.

Что получится, если сложить true + false?

Получится программист-дурачок, который складывает два булевых значения

Есть ли разница между выражениями?

А в каком контексте? В логическом разницы нет. В задаче это не уточняется

let a = new Array(1,2), b = new Array(3);
alert(a[0] + b[0]);

Надеюсь, выведется «ты дурачок»

Вообще 2, но надеюсь, там тоже где-то кинется ошибка с текстом «хватит говнокодить»

Что получится если сложить true false

Получится программист-дурачок, который складывает два булевых значения

А в каком контексте? В логическом разницы нет. В задаче это не уточняется

Что получится если сложить true false

Что получится если сложить true false

нет ценности просто знать язык, без опыта применения

Что получится если сложить true false

Что получится если сложить true false

Что получится если сложить true false

Что получится если сложить true false

Зачастую об этом умалчивают, считают как бы само собой разумеющимся, но кроме знаний собственно языка надо еще уметь выстраивать и реализовывать алгоритмы, отрабатывать структуры данных, и владеть еще огромной кучей сопричастных знаний и навыков.

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

Если ты знаешь команды JS, можешь рассказать о прототипном наследовании, замыканиях и пр., но не знаешь как работает DOM, Event loop, каррирование и пр. то как бы нет, ты не знаешь языка в должной мере.

По хорошему язык вместе со всеми сопричастными контекстами и нюансами нужно учить пару-тройку лет в разнообразных боевых условиях под присмотром опытных и заботливых товарищей/наставников, тогда будет толк, если ты человек адекватный и это занятие тебе подходит. В остальных случаях печаль-печаль-грусть-тоска.

Вангую что очень часто будет непонятно почему и для чего делается так и эдак, а что делать, чтобы стало понятно, читай выше.

Источник

Основы работы с JavaScript

Учебник JavaScript

Практика

Работа с DOM

Практика

Некоторые продвинутые вещи

Рекомендованное ES6

Некоторые видео могут забегать вперед, тк к этому месту учебника мы прошли еще не весь ES6. Просто пропускайте такие видео, посмотрите потом.

Регулярки

Разное

Работа с канвасом

Практика

Контекст

Drag-and-Drop

Практика по ООП

Ваша задача: посмотрите, попробуйте повторить.

Практика

Promise ES6

Библиотека jQuery

Тк. jQuery устаревает, объявляю эти уроки не обязательными и выношу в конец учебника (так по уровню уроки середины учебника, если что). В перспективе переедет в отдельный учебник по jq.

В этом уроке мы разберем работу с данными на языке JavaScript.

Строки и числа

Самыми простыми типами данных в JavaScript являются строки и числа.

Переменные

Одним из самых главных и распространенных объектов в программировании является переменная.

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

В JavaScript при объявлении переменной обязательно должно быть написано ключевое слово var:

Операция присваивания

Очень важным элементом программирования является операция присваивания. Пример присваивания:

Комментарии

В коде JavaScript, так же, как и в HTML и CSS, можно оставлять комментарии. Они могут быть многострочными и однострочными:

Комментарии игнорируются браузером при выполнении кода, в них можно оставлять какие-либо пометки или временно закрывать код от исполнения, чтобы потом его при необходимости вернуть (откомментировать).

Функция alert

В JavaScript существует специальная функция alert, которая позволяет вывести какой-либо текст в окно браузера в виде диалогового окошка.

Следующий код выводит на экран заданный текст:

Нажмите на эту ссылку, чтобы увидеть такое окошко.

А в следующим коде переменной text присваивается фраза, а затем содержимое этой переменной выводится на экран:

Математические операции

В JavaScript между числами можно совершать различные математические операции:

Получение определенного символа строки

В JavaScript можно получить доступ к определенному символу строки по его номеру таким образом: a[n] – n-ный символ строки (учтите, что нумерация идет с нуля):

Сложности с операцией присваивания

Очень часто новички не понимают, что присваивание отличается от обычного равенства. Посмотрите следующий пример:

С точки зрения математики запись a = a + 2 абсурдна, но не с точки зрения программирования.

Операции инкремента и декремента

Операция a++ или ++a – увеличивает переменную a на единицу. Эта операция называется инкремент.

Операция a— или —a – уменьшает переменную a на единицу. Эта операция называется декремент.

Давайте посмотрим, в каких случаях проявляется разница между ++a и a++.

Пусть у нас есть код alert(++a) и код alert(a++).

Мы уже рассматривали код, который демонстрирует сложности с операцией присваивания:

В данном случае мы присваиваем переменной a ее текущее значение, увеличенное на 2. Однако JavaScript позволяет записать этот код еще короче с помощью оператора +=:

Специальные значения

Значения undefined и null

Значение null обозначает ‘ничего’. К примеру, мы можем присвоить переменной значение null в знак того, что там ничего не лежит.

Значения true и false

К примеру, на вопрос ‘вам уже есть 18 лет?’ в можете ответить да, то есть true, или нет, то есть false.

Значение NaN

Функция prompt

Кроме функции alert, которая выдает диалоговое окошко, существует функция prompt, которая не только выдает окошко с текстом, но и позволяет получить от пользователя какой-либо текст.

Этот текст можно записать в переменную и затем выполнить над ним какие-либо операции.

В следующем примере мы спросим имя пользователя, запишем его в переменную name и с помощью функции alert выведем на экран:

Нажмите на эту ссылку, чтобы запустить код примера.

Функция confirm

Эта функция вызывает окошко с вопросом, на который нужно ответить пользователю, и двумя кнопками для ответа: с кнопкой ‘ОК’ и с кнопкой ‘Отмена’.

В следующем примере функция confirm выведет диалоговое окно с вопросом ‘Вам уже есть 18 лет?‘.

Нажмите на эту ссылку, чтобы запустить код примера.

Типизация переменных

Что будет, если попробовать перемножить, к примеру, число и строку, вот так: 3 * ‘3’? В результате вы получите число 9. Это значит, что JavaScript автоматически осуществляет преобразование типов при необходимости, вам не нужно за это переживать.

Однако, есть нюанс: если мы попытаемся сложить строку и число, то JavaScript сложит их как строки, а не как числа, вот так: ‘3’ + 3 получится строка ’33’, а не число 6.

В случае, например, с умножением JavaScript понимал, что нельзя перемножить строки, поэтому строки переводил в числа и перемножал их. А случай со сложением можно трактовать двояко: складывать как строки или как числа (плюс-то используется как для сложения строк, так и чисел).

Второй вариант такой: можно сказать яваскрипту, что мы хотим явно преобразовать строку к числу. Это делается с помощью функции Number, вот так: Number(‘3’) + 3. В результате получится 6, а не ’33’.

К числам могут преобразовываться не только строки, но и любые другие типы данных, например true тоже можно преобразовать к числу таким образом: Number(true).

Можно преобразовывать и к другим типам с помощью функций Boolean, String и других подобных.

Что вам делать дальше:

Приступайте к решению задач по следующей ссылке: задачи к уроку.

Источник

Есть ли примеры, когда мат. операции с True и False реально полезны?

В python есть такая фича — були (True и False) можно складывать, вычитать, в общем производить над ними мат. операции.

Есть ли реальная польза от этой фичи, когда, например, это:
— повышает производительность
— делает код более лаконичным (не теряя скорости)
и тд?

Помечаю вопрос как сложный, т.к. пока не нашел положительного ответа, а тем временем эта фича присутствует как во 2-ом, так и в 3-ем python’е

Простой 2 комментария

Что получится если сложить true false

Что получится если сложить true false

Что получится если сложить true false

This PEP proposes the introduction of a new built-in type, bool, with two constants, False and True. The bool type would be a straightforward subtype (in C) of the int type, and the values False and True would behave like 0 and 1 in most respects (for example, False==0 and True==1 would be true) except repr() and str(). All built-in operations that conceptually return a Boolean result will be changed to return False or True instead of 0 or 1; for example, comparisons, the «not» operator, and predicates like isinstance().

Источник

Логика — Python: Основы

Логический тип

Список операций сравнения:

Эти операции применимы не только к числам. Например, с помощью оператора равенства можно сравнить строки: password == text — это сравнение идентичности строк, записанных в разных переменных.

Наряду со строками ( str ) и целыми и рациональными числами, тип bool (булев) — это один из примитивных типов данных в Python.

Попробуем написать простую функцию, которая принимает на вход возраст ребёнка и определяет, младенец ли он. Младенцами считаются дети до года:

Пользуемся тем фактом, что любая операция — это выражение, поэтому единственной строчкой функции пишем «вернуть то значение, которое получится в результате сравнения age ». В зависимости от пришедшего аргумента, сравнение будет либо истинным ( True ), либо ложным ( False ), а return вернёт этот результат.

А теперь проверим ребенка, которому полгода:

Предикаты

Функция is_infant() — это функция-предикат (или функция-вопрос). Предикат отвечает на утвердительный вопрос «да» или «нет», возвращая значение типа bool. Предикаты во всех языках принято именовать особым образом для простоты анализа. В Python предикаты, как правило, начинаются с префикса is или has :

Комбинирование операций и функций

Логические операции — это выражения. Значит, логические операции можно комбинировать с другими выражениями. Например, мы хотим проверить чётность числа, то есть кратность двум. В программировании используют такой подход: проверяют остаток от деления на 2:

Остаток от деления — простая, но очень важная концепция в арифметике, алгебре, и даже в теории чисел и криптографии. Идея проста: нужно разделить число на несколько равных групп, и если в конце что-то останется — это и есть остаток от деления.

Делим конфеты поровну между людьми:

Оператор % вычисляет остаток от деления (не путайте с делением):

Скомбинируем в одном выражении логический оператор == (проверка равенства) и арифметический оператор % и напишем функцию проверки чётности:

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

Что получится если сложить true false

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты.

Нашли опечатку или неточность?

Выделите текст, нажмите ctrl + enter и отправьте его нам. В течение нескольких дней мы исправим ошибку или улучшим формулировку.

Что-то не получается или материал кажется сложным?

Загляните в раздел «Обсуждение»:

Об обучении на Хекслете

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно.

Наши выпускники работают в компаниях:

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Источник

Что получится если сложить true false

Эта статья посвящена особенностям работы механизмов приведения типов в JavaScript. Начнём мы её со списка выражений, результаты вычисления которых могут выглядеть совершенно неожиданными. Вы можете испытать себя, попытавшись найти значения этих выражений, не подглядывая в конец статьи, где будет приведён их разбор.

Проверь себя

Вот список интересных выражений, о которых мы только что говорили:

Тут полно такого, что выглядит более чем странно, но без проблем работает в JS, задействуя неявное приведение типов. В подавляющем большинстве случаев неявного приведения типов в JS лучше всего избегать. Рассматривайте этот список как упражнение для проверки ваших знаний о том, как работает приведение типов в JavaScript. Если же тут для вас ничего нового не нашлось — загляните на wtfjs.com.

Что получится если сложить true false
JavaScript полон странностей

Неявное преобразование типов и явное преобразование типов

Неявное преобразование типов — палка о двух концах: это источник путаницы и ошибок, но это и полезный механизм, который позволяет писать меньше кода без потери его читабельности.

Три вида преобразования типов

Первая особенность работы с типами в JS, о которой нужно знать, заключается в том, что здесь есть только три вида преобразований:

Примитивные типы данных

▍Преобразование к типу String

Все примитивные типы преобразуются в строки вполне естественным и ожидаемым образом:

В случае с типом Symbol дело несколько усложняется, так как значения этого типа можно преобразовать к строковому типу только явно. Здесь можно почитать подробности о правилах преобразования типа Symbol.

▍Преобразование к типу Boolean

Обратите внимание на то, что операторы, вроде || и && выполняют преобразование значений к логическому типу для внутренних целей, а возвращают значения исходных операндов, даже если они не являются логическими.

▍Преобразование к типу Number

Неявное приведение значения к числовому типу — тема более сложная, так как оно применяется, пожалуй, чаще чем преобразование в строку или в логическое значение. А именно, преобразование к типу Number выполняют следующие операторы:

Вот как в числа преобразуются примитивные значения:

Вот два особых правила, которые стоит запомнить:

При применении оператора == к null или undefined преобразования в число не производится. Значение null равно только null или undefined и не равно ничему больше.

Значение NaN не равно ничему, включая себя. В следующем примере, если значение не равно самому себе, значит мы имеем дело с NaN

Преобразование типов для объектов

Вот псевдо-реализация метода [[ToPrimitive]] :

В целом, работа алгоритма выглядит следующим образом:

Вот пример поведения Date при преобразовании типов:

Стандартные методы toString() и valueOf() можно переопределить для того, чтобы вмешаться в логику преобразования объекта в примитивные значения.

Метод Symbol.toPrimitive ES6

Разбор примеров

Вооружённые теорией, вернёмся к выражениям, приведённым в начале материала. Вот каковы результаты вычисления этих выражений:

Разберём каждый из этих примеров.

▍true + false

Оператор + с двумя операндами вызывает преобразование к числу для true и false :

▍12 / ‘6’

▍«number» + 15 + 3

▍15 + 3 + «number»

▍[1] > null

Оператор сравнения > выполняет числовое сравнение [1] и null :

▍«foo» + + «bar»

▍’true’ == true и false == ‘false’

▍[] + null + 1

Логические операторы || и && в процессе работы приводят значение операндов к логическому типу, но возвращают исходные операнды (которые имеют тип, отличный от логического). Значение 0 ложно, а значение ‘0’ истинно, так как является непустой строкой. Пустой объект <> так же преобразуется к истинному значению.

▍[1,2,3] == [1,2,3]

Этот пример лучше объяснить пошагово в соответствии с порядком выполнения операций.

▍new Date(0) — 0

▍new Date(0) + 0

Итоги

Преобразование типов — это один из базовых механизмом JavaScript, знание которого является основой продуктивной работы. Надеемся, сегодняшний материал помог тем, кто не очень хорошо разбирался в неявном преобразовании типов, расставить всё по своим местам, а тем, кто уверенно, с первого раза, никуда не подсматривая, смог решить «вступительную задачу», позволил вспомнить какой-нибудь интересный случай из их практики.

Уважаемые читатели! А в вашей практике случалось так, чтобы путаница с неявным преобразованием типов в JavaScript приводила к таинственным ошибкам?

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *