No video

Логические операторы в javascript

  Рет қаралды 555

Ай Владос

Ай Владос

Күн бұрын

В JavaScript есть четыре логических оператора: || (ИЛИ), && (И) и ! (НЕ), ?? (Оператор нулевого слияния). Здесь мы рассмотрим первые три!

Пікірлер: 6
@ukraine_on_fire526
@ukraine_on_fire526 Жыл бұрын
Обьяснил просто наклонённые кавычки. Я их раньше не понимала.
@ukraine_on_fire526
@ukraine_on_fire526 Жыл бұрын
Я думала наклонённые кавычки для HTML в Джаваскрипте.
@demimurych1
@demimurych1 Жыл бұрын
Вы не корректно обьясняете то каким образом работают логические операторы в JS. *LogicalOrEpression* ( Expression1) || (Expression2) 1. Пусть _LVal_ будет равен результату вычисления Exression1 2. Пусть _LBool_ будет равен результату вычисления ToBoolean( LVal ) 3. ЕСЛИ _LBool_ === true ТОГДА ВЕРНУТЬ lval 4. Пусть _RVal_ будет равен результату вычисления Exression2 5. Вернуть _RVal_ Как видите, в вычислениях правая часть участвует тогда и только тогда, когда левая часть, после приведения ее к Boolean не будет равна true. Или если перефразировать: Результатом вычисления LogicalOrExpression будет результат вычисления его левой части, если приведение к Boolean этого результата даст true. И правой части, в противном случае. То есть когда результат вычисления левой части при приведении его к Boolean даст false. Еще проще можно описать это как: Правая часть будет выполнена только тогда, когда результат toBoolean от левой части будет равен false Схожим образом работает и *LogicalANDEpression* ( Expression1) && (Expression2) 1. Пусть _LVal_ будет равен результату вычисления Exression1 2. Пусть _LBool_ будет равен результату вычисления ToBoolean( LVal ) 3. ЕСЛИ _LBool_ === false ТОГДА ВЕРНУТЬ lval 4. Пусть _RVal_ будет равен результату вычисления Exression2 5. Вернуть _RVal_ *ИГОГО* В языке JavaScript во главу угла ставиться понятие ВЫРАЖЕНИЕ и понятие ВЫЧИСЛЕНИЕ ВЫРАЖЕНИЯ. Каждая операция представляет из себя одно или более выражений, которые вычисляются. Бинарные логические выражения, это способ организации цепочки вычислений, где правая часть вычисляется только тогда когда левая часть удовлетворяет определенному условию в соответсвии с качеством выражения. Для случая OR - чтобы произошло вычисления правой части, левая часть должна дать ToBoolean(LVal) === false. Для случая AND левая часть должна дать ToBoolean(LVal) === true. Почему важно понимать это именно таким образом? Потому что я описал выше - JS это язык выражений. Иными словами мы можем написать expr1 && expr2 || expr3 && expr4 || expr5 Что согласно описанию данному выше очень легко понять и разобрать: ToBool( expr1) === false ЕСЛИ ДА = вернуть результат expr1 ЕСЛИ НЕТ перейти к вычислению expr2 ToBool( expr2) === true ЕСЛИ ДА = вернуть результат expr2 ЕСЛИ НЕТ перейти к вычислению expr3 И так далее.
@js_games_for_dummies
@js_games_for_dummies Жыл бұрын
Если ты такой умный -- найди ошибку в коде. Змея растёт не поевши. Snake Game body{ background: linear-gradient(rgba(0, 0, 0, 0.4), transparent 1px), linear-gradient(90deg, rgba(0, 0, 0, 0.4), transparent 1px); background-size: 32px 32px; } canvas{ display: block; width: 608px; height: 608px; border: 1px solid black; margin: 32px 23px; } const cvs = document.getElementById("snake"); const ctx = cvs.getContext("2d"); const box = 32; ctx.fillStyle = 'black'; ctx.fillRect(0, 94, 608, 1); let snake = []; snake[0] = {x : 9 * box, y : 10 * box }; let food = { x : Math.floor(Math.random() * 17 + 1 ) * box, y : Math.floor(Math.random() * 15 + 3 ) * box }; let score = 0; let d; document.addEventListener('keydown', direction); function direction(event){ if(event.keyCode == 37 && d != 'right') {d = 'left'; } if(event.keyCode == 38 && d != 'down') {d = 'up'; } if(event.keyCode == 39 && d != 'left') {d = 'right'; } if(event.keyCode == 40 && d != 'up') {d = 'down'; } } function drawGame(){ for(let i = 0; i < snake.length; i++){ ctx.fillStyle = 'green'; ctx.fillRect(snake[i].x, snake[i].y, box, box); } ctx.fillStyle = 'red'; ctx.fillRect(food.x, food.y, box, box); let snakeX = snake[0].x; let snakeY = snake[0].y; snake.pop(); if(d == 'left') snakeX -= box; if(d == 'up') snakeY -= box; if(d == 'right') snakeX += box; if(d == 'down') snakeY += box; let newHead = { x : snakeX, y : snakeY }; snake.unshift(newHead); } let game = setInterval(drawGame, 100);
@demimurych1
@demimurych1 Жыл бұрын
@@js_games_for_dummies У Вас ужасный код. Так нельзя писать. У Вас не растет змея не поевши. У Вас хвост змеи не стирается
@js_games_for_dummies
@js_games_for_dummies Жыл бұрын
@@demimurych1 А что ужасного то? Вы лучше скажите почему хвост не стирается?
Цикл for в JavaScript как он работает
7:50
Ай Владос
Рет қаралды 200
Running With Bigger And Bigger Feastables
00:17
MrBeast
Рет қаралды 157 МЛН
Meet the one boy from the Ronaldo edit in India
00:30
Younes Zarou
Рет қаралды 18 МЛН
白天使选错惹黑天使生气。#天使 #小丑女
00:31
天使夫妇
Рет қаралды 14 МЛН
Оператор нулевого слияния в JavaScript / Nullish coalescing operator
11:54
Игорь Антонов — про JavaScript и разработку
Рет қаралды 2,1 М.
Основы JavaScript. Логические операторы
13:13
Эмоциональный робот
Рет қаралды 763
Dogday arona dance 🐕😾@bree_animation - Piano Cover
0:11
Piwano
Рет қаралды 1,6 МЛН
Уроки Javascript / Логические операции ИЛИ, НЕ, И
16:49
Изучаем мир ИТ / Олег Шпагин / Программирование
Рет қаралды 7 М.
Что такое сео оптимизация? #shorts #seo #it
1:00
небольшой баг мышления #shorts #мышление
0:55
Ай Владос
Рет қаралды 1,2 М.