TypeScript - Boolean: руковод ru(Русский) языкомbeginner's Guide to Truth and Falsehood in Programming
Здравствуйте, будущий супер-программист! Готовы окунуться в fascинирующий мир булевых значений в TypeScript? Не волнуйтесь, если вы никогда не писали ни строчки кода - мы начнем с самого начала и пройдем этот путь вместе. К концу этого руководства вы станете мастером булевых значений, способным использовать true и false как программист-волшебник!
Что такое булево значение?
Прежде чем углубиться в детали, давайте поговорим о том, что такое булево значение на самом деле. В программировании булево значение - это тип данных, который может принимать только два значения: true или false. Это как выключатель света - он либо включен, либо выключен, без中介ного состояния.
Представьте, что вы спрашиваете друга, хочет ли он пойти в кино. Его ответ может быть только "Да" (true) или "Нет" (false). Именно так работают булевы значения в программировании!
Синтаксис: как писать булевы значения в TypeScript
В TypeScript писать булево значение так просто, как написать true
или false
. Вот пример:
let isHappy: boolean = true;
let isSad: boolean = false;
В этом коде мы создали две переменные: isHappy
и isSad
. Переменная isHappy
установлена в true
, а isSad
- в false
.
Анонсы типов: сообще TypeScript, что ожидать
Вы, возможно, заметили часть : boolean
в нашем предыдущем примере. Это называется анонс типа. Это как putting a label on a box, чтобы сказать всем, что внутри. Когда мы пишем : boolean
, мы говорим TypeScript: "Эй, эта переменная будет булевой!"
Вот еще один пример:
let isRaining: boolean;
isRaining = true;
// isRaining = "Yes"; // Это вызвало бы ошибку!
В этом случае мы объявили isRaining
как булево значение, но еще не присвоили ему значения. Позже мы присваиваем ему true
, что совершенно нормально. Однако, если бы мы попытались присвоить ему строку, такую как "Yes", TypeScript бы выдал ошибку, так как "Yes" не является булевым значением.
Truthy и falsy значения: когда не-булевы значения ведут себя как булевы
Теперь, где事情 становятся интересными! В TypeScript (и JavaScript) некоторые не-булевы значения могут treated как если бы они были булевыми. Мы называем их "truthy и falsy значениями.
- Falsy значения включают:
false
,0
,''
(пустая строка),null
,undefined
иNaN
. - Все остальное считается truthy.
Давайте посмотрим это в действии:
if (1) {
console.log("1 is truthy!");
}
if ("") {
console.log("This won't be printed because an empty string is falsy.");
}
В этом примере первый оператор if
будет выполнен, так как 1
является truthy, но второй не будет, так как пустая строка является falsy.
Преобразование не-булевого значения в булево
Иногда вам может понадобиться преобразовать не-булево значение в булево. Есть несколько способов сделать это:
- Используя функцию
Boolean()
:
let num = 5;
let boolValue = Boolean(num);
console.log(boolValue); // Выводит: true
- Используя оператор двойного отрицания (
!!
):
let str = "Hello";
let boolValue = !!str;
console.log(boolValue); // Выводит: true
Оба этих метода преобразуют truthy значения в true
и falsy значения в false
.
Булевы операции:_combining Booleans
Теперь, когда мы знаем, как создавать булевы значения, давайте узнаем, как с ними работать. Есть три основные булевы операции:
- AND (
&&
): Возвращаетtrue
, если оба операндаtrue
. - OR (
||
): Возвращаетtrue
, если хотя бы один операндtrue
. - NOT (
!
): Переворачивает булево значение.
Давайте посмотрим это в действии:
let isAdult = true;
let hasLicense = false;
console.log(isAdult && hasLicense); // false
console.log(isAdult || hasLicense); // true
console.log(!isAdult); // false
В этом примере isAdult && hasLicense
будет false
, так как хотя isAdult
и true
, hasLicense
является false
. isAdult || hasLicense
будет true
, так как хотя бы один из них (isAdult
) является true
. !isAdult
будет false
, так как это相反 true
.
Условные выражения с булевыми значениями
Булевы значения часто используются в условных операторах для принятия решений в нашем коде. Вот пример:
let age: number = 20;
let canVote: boolean = age >= 18;
if (canVote) {
console.log("You can vote!");
} else {
console.log("Sorry, you're too young to vote.");
}
В этом коде мы проверяем, превышает ли age
18. Если да, то canVote
будет true
, и человек может голосовать. Если нет, то canVote
будет false
, и он не может голосовать.
Разница между TypeScript Boolean и boolean
Иногда вы можете видеть Boolean
(с заглавной буквы B) в коде TypeScript. Это относится к объекту Boolean, который отличается от примитивного типа boolean
, который мы использовали.
let primitiveBoolean: boolean = true;
let objectBoolean: Boolean = new Boolean(true);
В общем, рекомендуется использовать примитивный тип boolean
,除非 у вас есть конкретная причина использовать объект Boolean
.
Свойства и методы булевых объектов
Хотя примитивный тип boolean
не имеет свойств или методов, объект Boolean
имеет их. Вот несколько из них:
Свойство/Метод | Описание |
---|---|
Boolean.prototype.toString() |
Возвращает "true" или "false" |
Boolean.prototype.valueOf() |
Возвращает примитивное значение булева объекта |
Вот как вы можете использовать их:
let boolObj = new Boolean(true);
console.log(boolObj.toString()); // Выводит: "true"
console.log(boolObj.valueOf()); // Выводит: true
И вот и все! Вы только что прошли экскурсию по булевым значениям в TypeScript. Помните, булевы значения могут показаться простыми, но они являются строительными блоками логики в программировании. Каждый раз, когда вы используете оператор if
или цикл, вы работаете с булевыми значениями за кулисами.
Пока вы продолжаете свое путешествие в программирование, вы найдете булевы значения везде. Они как тайные агенты мира программирования - малы, discretely, но incredibly powerful. Так что в следующий раз, когда кто-то спросит вас "true или false?", вы можете улыбнуться, зная, что понимаете глубокие, existentielle implikationen этого вопроса в мире программирования.
Продолжайте практиковаться, оставайтесь любопытными и помните: в мире булевых значений нет "может быть" - только true или false. Счастливого кодирования!
Credits: Image by storyset