Эти типы передаются по значению и являются неизменяемыми (immutable).
let integer = 42;
let float = 3.14;
let infinity = Infinity;
let nan = NaN; // Особый случай: тип number, но "Not a Number"
let name = "Alice";
let template = `Hello ${name}!`; // Шаблонные строки (ES6)
true или false.let isActive = true;
let isAdmin = false;
let x;
console.log(x); // undefined
typeof null возвращает "object" (историческая ошибка JS).let empty = null;
const id = Symbol("uniqueId");
const bigNum = 9007199254740991n;
{ key: "value" }[1, 2, 3]function() {}let user = { name: "Bob", age: 30 };
let colors = ["red", "green"];
function greet() { console.log("Hi!"); }
Важно: Объекты передаются по ссылке:
let a = { value: 10 };
let b = a; // Теперь b ссылается на тот же объект
a.value = 20;
console.log(b.value); // 20
Оператор typeof:
console.log(typeof 42); // "number"
console.log(typeof []); // "object" (а не "array")
console.log(typeof null); // "object" (исторический баг)
Метод Array.isArray() для проверки массивов:
console.log(Array.isArray([])); // true
number, string, boolean, null, undefined, symbol, bigint.object (включая массивы, функции и др.).null ошибочно определяется как "object".typeof, instanceof и Array.isArray().P.S. В TypeScript эти типы расширяются (any, unknown, enum и др.), но в runtime остаются только перечисленные выше.