Ketika saya mengeksekusi

console.log( (4 + [] + 8) )

Saya mendapatkan hasil 48 dan ketika saya menjalankan [] saja memberikan 0. Bagaimana cara kerjanya?

0
Mostafa Elnaggar 17 Agustus 2017, 19:17

2 jawaban

Jawaban Terbaik

Karena ini adalah jumlah dari number dan array, javascript mengonversi keduanya menjadi string.

Karena itu:

'4' + '' + '8' = '48' (perhatikan bahwa hasilnya adalah string, bukan number)

Jika Anda menambahkan lebih banyak elemen ke array, itu akan berfungsi seperti ini

4 + [1, 2] + 8 = '41,28'

Ini terjadi karena array, secara default, menjadi string dengan menggabungkan nilai dengan ,.

Contoh lain

4 + [1, 2, 3, 4, 5] + 8 = 41,2,3,4,58

Catatan: Jika Anda mencoba menjumlahkan dua arrays keduanya juga akan menjadi string, karena javascript tidak memiliki implementasi asli untuk menjumlahkan array.

[1, 2] + [3, 4] = '1,23,4'

3
Pedro Moreira 17 Agustus 2017, 16:32

Seperti yang dijelaskan di komentar. Saat Anda menggunakan operator + pada larik ke variabel bertipe berbeda, mesin js akan memanggilnya sebagai string melalui [].toString(). Menambahkan angka ke string juga mengubah angka menjadi string.

0
DarkMukke 17 Agustus 2017, 16:25