Прежде всего, эта история основана на Стивене Кертисе -33 Основы, которые должен знать каждый разработчик Javascript, и вы можете прочитать ее здесь. Поэтому я решил изучить и объяснить эти концепции одну за другой.

№ 2. Примитивные значения

Числа
Строки
Логические значения
Null
Неопределенные
Символы

Я собираюсь объяснить эти типы, кроме символов. если вы хотите узнать о типе символов, вы можете проверить это здесь.

Числа

В отличие от других языков, Javascript имеет только один тип числа. Он включает не только такие числа, как 1 или 1,2, но также включает NaN и Infinity.

Давайте проверим то, что я объяснил, на примере ниже.

console.log(‘1>>>’, typeof 1);
console.log(‘1.2>>>’, typeof 1.2);
console.log(‘Infinity>>>’, typeof Infinity);
console.log(‘NaN>>>’, typeof NaN);
console.log(“‘1’>>>”, typeof ‘1’);

Как видите, все, кроме «1», является числовым типом.
Тогда что такое Infinity и NaN??

console.log(‘1 / 0 >>>’, 1 / 0);
console.log(“1 * ‘d’>>>”, 1 * ‘d’);

Деление числа на ноль приводит к бесконечности, а вычисление числа со строкой приводит к NaN, что является сокращением от Not a Number.
Я думаю, интересно, что Not a Number — это числовой тип. Разве не так??

Струны

Строки — это буквальные значения в Javascript.

console.log(typeof ‘foo’);
console.log(typeof “foo”);
console.log(typeof `foo`);

Javascript неявно преобразует другие типы значений в строку, объединяя их.

console.log(‘foo’ + 77);  
-> console.log(‘foo77’);
console.log(‘foo’ + { name: ‘medium’ });
-> console.log(‘foo{ name: ‘medium’ }’);

Булевы значения

Логическое значение представляет собой логический объект и может иметь два значения: true и false.

if (undefined) console.log(‘hi’);
if (null) console.log(‘hi’);
if (‘’) console.log(‘hi’);
if (0) console.log(‘hi’);
if (NaN) console.log(‘hi’);
if (false) console.log(‘hi’);

Если вы передаете undefined, null, пустую строку, 0, NaN в условный оператор, они считаются ложными, поскольку являются ложным значением.
(истинным значением является все, кроме ложного значения)
В результате, ничего не логируется в консоли.

Нуль против Неопределенного

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

let medium;
console.log(medium);
medium = null;
console.log(medium);

Если мы зарегистрируем носитель перед инициализацией, в консоли будет зарегистрировано значение undefined, поскольку оно еще не определено.
Только после определения носителя как нулевого, в консоли будет зарегистрировано значение null.

undefined — еще не определено, не имеет значения
null — определено как несуществующее, имеет значение (null)

Заключение

Сегодня мы узнали о 5 примитивных типах.
Определенно, знание этой концепции не улучшит ваши навыки javascript в мгновение ока.
Но я думаю, что эти базовые знания помогут вам стать профессиональным разработчиком.
> Надеюсь, вы, ребята, чему-то научились из этой истории!!

ссылки: MDN и flow