Sobes.tech
Junior

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 holda toString() 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.