Sobes.tech
Middle

От къде идват методите (например, .toString() и т.н.) при примитивните типове данни?

sobes.tech AI

Отговор от AI

Примитивните типове данни в JavaScript (низове, числа, булеви стойности, Symbol, BigInt, null, undefined) всъщност нямат методи. Въпреки това, когато се опитаме да извикаме метод върху примитивна стойност, JavaScript временно я обвива в съответния обект-обвивка (String, Number, Boolean, Symbol, BigInt).

Например, при извикване на .toString() върху низ 'hello', JavaScript създава временен обект new String('hello'), извиква метода toString() на този обект и след това унищожава временния обект. Този механизъм се нарича autoboxing или автоматично опаковане.

Типовете данни null и undefined нямат съответни обект-обвивки и затова не могат да имат методи. Опитът да се извика метод върху null или undefined ще доведе до грешка TypeError.