Sobes.tech
Middle

JavaScript-də primitiv sətirə niyə obyekt kimi müraciət etmək mümkündür?

sobes.tech Süni İntellekt

AI-dan cavab

JavaScript-də, primitiv sətirə string (String deyil) müraciət edərkən, avtomatik çevirmə (boxing/ambalajlama) String obyektinə həyata keçirilir. Bu, müvəqqəti obyekt olub, sətirlər üçün əlçatan metodlar və xüsusiyyətlər ehtiva edir (məsələn, .length, .toUpperCase(), .indexOf()). Bu müvəqqəti obyekt üzərində əməliyyat həyata keçirildikdən sonra, o, məhv edilir.

Məsələn:

// primitiv sətir
const myString = "hello";

// .length xüsusiyyətinə giriş
// Avtomatik olaraq { "hello" } obyektinə paketlənir
// Sonra bu müvəqqəti obyektin .length xüsusiyyəti çağırılır
console.log(myString.length); // 5

// .toUpperCase() metoduna giriş
// Avtomatik olaraq { "hello" } obyektinə paketlənir
// Sonra bu müvəqqəti obyektin .toUpperCase() metodu çağırılır
console.log(myString.toUpperCase()); // "HELLO"

// Əməliyyat sonrası müvəqqəti obyekt məhv edilir.
// myString primitiv sətir olaraq qalır.
console.log(typeof myString); // "string"

Bu davranış, primitiv tiplərlə işləməni asanlaşdırır, obyekt yönümlü sintaksis istifadə edərək onların funksionallığına çıxış imkanı verir, açıq obyektlər yaratmağa ehtiyac olmadan.

Primitiv sətir və String obyekti arasındakı müqayisə:

Xüsusiyyət Primitiv sətir ("string") String obyekti (new String("string"))
Tip string object
=== ilə müqayisə Qiymətə görə Referansa görə
Ümumilikdə Daha performanslı Daha az performanslı
İstifadə Tövsiyə olunur Qaçınılmalı, yalnız açıq ehtiyac olduqda