javascript - tugasan lalai penyusunan tatasusunan ES6
滿天的星座
滿天的星座 2017-06-07 09:24:42
0
3
1053

Apabila saya melihat tutorial ES6 Ruan Yifeng tentang memusnahkan tugasan dan nilai lalai, saya tidak begitu memahami bahagian ini.
Pautan asal

Perhatikan bahawa ES6 menggunakan pengendali kesaksamaan yang ketat (===) secara dalaman untuk menentukan sama ada kedudukan mempunyai nilai. Oleh itu, Jika ahli tatasusunan tidak sama dengan yang tidak ditentukan, nilai lalai tidak akan berkuat kuasa.

function f() {
  console.log('aaa');
}

let [x = f()] = [1];

Buku mengatakan bahawa kod di atas adalah bersamaan dengan kod berikut

let x;
if ([1][0] === undefined) {
  x = f();
} else {
  x = [1][0];
}

Maaf, dari mana asalnya [1][0] ini? Bukankah sepatutnya begini?

let x;
if (1 === undefined) {
  x = f();
} else {
  x = 1;
}
滿天的星座
滿天的星座

membalas semua(3)
学习ing

Apabila menyahbina tatasusunan, prinsipnya adalah seperti berikut: masukkan satu atau lebih pembolehubah ke dalam tatasusunan A, dan kemudian jadikan tatasusunan ini A sama dengan tatasusunan B yang lain. Kemudian semasa penstrukturan, nilai kedudukan tertentu dalam tatasusunan A akan sama dengan kedudukan tatasusunan yang sepadan B. nilai.

let [x = f()] = [1];

Maksud kod ini adalah untuk mula-mula mencipta tatasusunan A. Item pertama dalam tatasusunan A ialah x, dan kemudian ada tatasusunan B, B = [1].
Kemudian biarkan A = B. Kesan akhir ialah A[ 0] = B[0], iaitu x=B[0],也即x=[1][0].
Jadi apabila menilai sama ada ia sama dengan undefined, lakukan ini

if([1][0] === undefined)
Ty80

1 dalam [1] di sebelah kanan

sepadan dengan x, iaitu, [1][0] sepadan dengan x

学霸

Dekonstruk, dekonstruk, dekonstruk. . . Jadi tujuannya adalah untuk membuka ikatan di sebelah kanan tanda sama, jadi kita mesti membuka ikatan [1].

Jadilet [x]=[1],那么x就是[1][0],也就是1。所以其实x的赋值是根据[1][0] datang untuk menilai.

Saya tidak tahu sama ada saya faham apa yang saya katakan, tetapi lebih baik saya berikan anda dokumentasi:

https://developer.mozilla.org...

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan