Siz foydalanadigan dasturlash tilida ob'ektni satrga aylantirish qanday amalga oshiriladi?
sobes.tech AI
AIdan javob
JavaScriptda ob'ektni satrga aylantirish quyidagi usullarda amalga oshiriladi:
-
Nimaga aylantirish: JavaScript avtomatik ravishda ob'ektni satrga aylantiradi, satr operatorlaridan foydalanilganda yoki satrni kutadigan kontekstlarda (masalan,
alert(), orqaga tırnaklar bilan satr interpolatsiyasi ``) bu holdatoString()metodini chaqiradi, agar mavjud bo'lmasa yoki u primitiv bo'lmagan qiymatni qaytarsa,valueOf()chaqiriladi. -
Aniq aylantirish:
toString()metodi: ob'ektning satr ko'rinishini olish uchun chaqiriladi.String()funksiyasi: qiymatni aniq satrga aylantiradi.- Bo'sh satr bilan qo'shish operatori (
"" + ob'ekt): shuningdek, avtomatik aylantirishni boshlaydi.
Ob'ektni satrga aylantirishda, standart chaqirish tartibi: toString() -> valueOf(). Agar toString() primitiv qiymatni qaytarsa, u ishlatiladi. Agar qilmasa yoki toString() mavjud bo'lmasa, valueOf() chaqiriladi. Agar valueOf() ham primitiv bo'lmagan qiymatni qaytarsa, TypeError xatosi chiqariladi.
// O'ziga xos `toString` va `valueOf` metodlariga ega ob'ekt
const myObject = {
name: 'test',
value: 123,
toString: function() {
return `Object(${this.name})`;
},
valueOf: function() {
return this.value;
}
};
// Nimaga aylantirish (toString chaqiriladi)
console.log(`Ob'ekt satr sifatida: ${myObject}`); // Natija: Ob'ekt satr sifatida: Object(test)
// Aniq aylantirish String() yordamida (toString chaqiriladi)
console.log(String(myObject)); // Natija: Object(test)
// toString() yordamida aylantirish
console.log(myObject.toString()); // Natija: Object(test)
// `valueOf` chaqiriladigan misol
const anotherObject = {
value: 456,
valueOf: function() {
return this.value;
}
};
console.log(String(anotherObject)); // Natija: 456 (chunki `valueOf` primitivni qaytardi)
// Standart ob'ekt, ustiga metodlar yozilmagan
const standardObject = {};
console.log(String(standardObject)); // Natija: [object Object]
Ob'ektlarni JSON satriga aylantirish uchun JSON.stringify() ishlatiladi, u o'zining qoidalariga muvofiq ishlaydi, toString() va valueOf() ni e'tiborga olmaydi va faqat ko'rsatiladigan xususiyatlarni serializatsiya qiladi.