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
Համեմատություն === Արժեքով Հղումով
Ընդհանուր Ավելի արդյունավետ Ավելի քիչ արդյունավետ
Օգտագործում Առաջնահերթ Պետք է խուսափել, եթե բացարձակապես անհրաժեշտ չէ