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 |