7 месяцев назад
🧐 Пояснение к задаче выше 🧐 Многие выбрали, что в консоли мы получим object, но это не так 😨 В JavaScript Boolean - это функция-конструктор. Когда мы пишем typeof Boolean, мы получаем function, потому что Boolean является функцией. Однако, Boolean также может быть использован как конструктор для создания объектов Boolean и вот тут мы уже получим значение object. console.log(typeof Boolean); // "function" var boolObj = new Boolean(true); console.log(typeof boolObj); // "object" ❕Не забываем, что в JS есть и другие примитивные типы данных: String, Number, Array, Function. // Все они являются функцией-конструктором console.log(typeof String); // "function" console.log(typeof Number); // "function" console.log(typeof Array); // "function" console.log(typeof Function); // "function" console.log(typeof Object); // "function" var strObj = new String("Hello"); var numObj = new Number(42); var arrObj = new Array(1, 2, 3); var funcObj = new Function('x', 'y', 'return x + y;'); var objObj = new Object({ key: "value" }); // А здесь уже объектами console.log(typeof strObj); // "object" console.log(typeof numObj); // "object" console.log(typeof arrObj); // "object" console.log(typeof funcObj); // "function" console.log(typeof objObj); // "object"
Интересный факт о boolean в Java. В Java boolean это примитив который может принимать два значения, true и false. Для хранения состояния истина/ложь достаточно одного бита информации 1 или 0. Но принято считать что boolean занимает 1 байт в Java. Вот что об этом пишет Oracle: "This data type represents one bit of information, but its "size" isn't something that's precisely defined." Это значит что в зависимости от реализации JVM и возможно других параметров(например выравнивания памяти или архитектуры процессора) boolean может занимать больше места в памяти.