Sobes.tech
Middle

Чаро дар JavaScript имкон дорад ба сатрҳои ибтидоӣ ҳамчун объект муроҷиат кард?

sobes.tech AI

Ҷавоб аз AI

Дар JavaScript, вақте ки ба сатрии ибтидоии string (на String) муроҷиат мекунед, автоматӣ табдил (boxing/пӯшиш) ба объект String сурат мегирад. Ин объекти муваққатӣ мебошад, ки методҳо ва хосиятҳоро барои сатрҳо дар бар мегирад (масалан, .length, .toUpperCase(), .indexOf()). Пас аз иҷрои амалиёт дар ин объекти муваққатӣ, он нобуд мешавад.

Масалан:

// сатрии ибтидоӣ
const myString = "hello";

// Дастрасӣ ба хосияти .length дар сатрии ибтидоӣ
// Автоматӣ ба объект `String { "hello" }` пӯшонида мешавад
// Пас, хосияти .length дар ин объекти муваққатӣ даъват мешавад
console.log(myString.length); // 5

// Дастрасӣ ба усули .toUpperCase() дар сатрии ибтидоӣ
// Автоматӣ ба объект `String { "hello" }` пӯшонида мешавад
// Пас, усули .toUpperCase() дар ин объекти муваққатӣ даъват мешавад
console.log(myString.toUpperCase()); // "HELLO"

// Пас аз иҷрои амалиёт, объекти муваққатӣ нобуд мешавад.
// myString боқӣ мемонад як сатрии ибтидоӣ.
console.log(typeof myString); // "string"

Ин рафтор кори бо сатрҳои ибтидоӣро осонтар мекунад, бо иҷозат додан ба истифодаи синтаксиси объектӣ барои дастрасӣ ба функсионалӣ, бе ниёз ба эҷоди объектҳои пӯшишӣ.

Мувофиқати байни сатрии ибтидоӣ ва объект String:

Хусусият Сатрии ибтидоӣ ("string") Объект String (new String("string"))
Навъ string object
Мувофиқати бо === Ба арзиш Ба истинод
Умумӣ Беҳтар иҷро мекунад Камтар иҷро мекунад
Истифода Тавсия дода мешавад Ҳаргиз истифода накунед, агар зарур набошад