Null-xavfsiz navigatsiya (?.)


? bilan ixtiyoriy qiymatlarni xavfsiz o‘qing. va sukut bo‘yicha ??.


ULASHISH

Null-Xavfsiz navigatsiya (?.) nima?

  • ?. xatolarga yo‘l qo‘ymasdan yetishmayotgan qiymatlarni o‘qiydi.
  • Agar biron bir segment null yoki undefined bo‘lsa, natija undefined bo‘ladi.
  • Shablonlardagi chuqur xususiyat yo‘llari uchun xavfsizlikni yaxshilaydi.

Null-Xavfsiz navigatsiyadan qachon foydalanish kerak

  • Xususiyatlari bo‘lmasligi mumkin bo‘lgan asinxron yoki ixtiyoriy ma’lumotlar.
  • Batafsil tekshiruvlar uchun ?. (va koddagi ixtiyoriy zanjir) dan foydalaning.
  • bilan birlashtiring ?? standart qiymatlarni taqdim etish uchun.

Misol

import { bootstrapApplication } from '@angular/platform-browser';
import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  standalone: true,
  template: `
    <button (click)="toggle()">Toggle user</button>
    <p>Email: {{ user?.profile?.email || '(none)' }}</p>
  `
})
export class App {
  user: { profile?: { email?: string } } | undefined = undefined;
  toggle() {
    this.user = this.user ? undefined : { profile: { email: 'a@example.com' } };
  }
}

bootstrapApplication(App);
<app-root></app-root>

Misolni ishga tushirish »

Misol tushuntirildi

  • Ixtiyoriy zanjirlash (?.): user?.profile?.email elektron pochtani faqat foydalanuvchi va profil aniqlangan taqdirdagina o‘qiydi; aks holda butun ifoda undefined (xato yo‘q).
  • Zaxira qiymat: || '(none)' ifoda falsy bo‘lsa, o‘rinbosar matnni ko‘rsatadi; 0 yoki bo‘sh stringlarni yaroqli qiymat deb hisoblamoqchi bo‘lsangiz, ?? ni afzal ko‘ring.
  • Almashtirish: “Foydalanuvchini almashtirish” tugmasini bosish xavfsiz kirishni ko‘rsatish uchun user undefined va obyekt o‘rtasida almashtiriladi.

Nullish coalescing (??): Agar 0 yoki '' kabi haqiqiy noto‘g‘ri qiymatlarni saqlamoqchi bo‘lsangiz, a ?? b dan a || b dan foydalaning.




W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!