Javascript의 논리 할당 연산자

8931 단어 javascript
Ada beberapa operator baru yang sangat praktis digunakan untuk mempersingkat kodingan Javascript kamu. Proposal nya sudah sampai tahap stage 4 yang artinya akan dimasukkan pada versi ECMAScript berikutnya(ES2021). Ini juga berarti sekarang sudah bisa digunakan karena sudah support oleh 브라우저-브라우저 모던 버전 업데이트 tanpa menggunakan 변환기. Tapi tentu saja untuk kompatibilitas yang lebih tinggi disarankan kamu tetap menggunakan transpiler seperti Babel 아타우 멩구나칸 Typescript .

에이다3 사업자 양마숙 달람 proposal logical assignment 이니:
  • 논리적 OR 할당 ||=
  • 논리적 AND 할당 &&=
  • 논리적 무효 할당 ??=

  • 논리적 OR 할당 ||=



    연산자 ini berguna untuk case mengganti 값 sebuah 변수 jika valuenya adalah falsy.

    Misal untuk mengganti 값 변수 a jika 값 sebelumnya adalah falsy, tanpa 논리적 OR 할당 kamu melakukannya lebih kurang dengan cara-cara seperti ini:

    // cara 1
    if (!a) {
      a = 'new value';
    }
    
    // cara 2
    a = a || 'new value';
    


    Dengan 논리 OR 할당 menjadi lebih singkat:

    a ||= 'new value';
    


    Kode diatas akan ditranspilasi oleh Babel 멘자디:

    a || (a = 'value');
    


    논리 AND 할당 &&=



    운영자 ini adalah kebalikan dari 운영자 sebelumnya. Yaitu untuk case mengganti value sebuah variable jika valuenya adalah truthy.

    Tanpa 논리 AND 할당, untuk mengganti 값 변수 a jika value sebelumnya adalah truthy kamu melakukannya lebih kurang dengan cara-cara seperti ini:

    // cara 1
    if (a) {
      a = 'new value';
    }
    
    // cara 2
    a = a && 'new value';
    


    구문 diatas bisa dipersingkat dengan menggunakan 논리적 AND 할당:

    a &&= 'new value';
    


    Hasil transpilasinya 올레 Babel 멘자디:

    a && (a = 'new value');
    


    논리적 무효 할당 ??=



    Kalau sebelumnya 연산자 논리 OR 할당 berguna untuk mengecek nilai falsy yang di dalamnya termasuk nullundefined , 연산자 ini spesifik untuk 케이스 값 null 아타우 undefined 사자.

    Tanpa menggunakan 논리적 무효 할당, untuk mengecek 값 null 아타우 undefined 단 멘간티냐 덴간 밸류 바루, 카무 멜라쿠칸냐 레비 쿠랑 뎅간 카라-카라 베리쿠트 이니:

    // cara 1
    if (a == null || a == undefined) {
      a = 'new value';
    }
    
    // cara 2
    a = a ?? 'new value';
    


    Akan menjadi lebih singkat dengan menggunakan 논리적 무효 할당:

    a ??= 'new value';
    


    Kode diatas akan ditranspilasi oleh Babel 멘자디:

    var _a;
    
    (_a = a) !== null && _a !== void 0 ? _a : (a = 'new value');
    




    참고:
  • https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_OR_assignment
  • https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_AND_assignment
  • https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_nullish_assignment
  • 좋은 웹페이지 즐겨찾기