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