Baris kode ini mengevaluasi ekspresi dan kemudian memanggil metode berdasarkan nilai yang dikembalikan.
Ekspresi ('b' + 'a' + + 'a' + 'a')
ini hanya terdiri dari string literal dan operator tambahan.
- String Literals "String literal adalah nol atau lebih karakter yang diapit dengan tanda kutip tunggal atau ganda."
- Operator Penambahan (+) "Operator tambahan melakukan penggabungan string atau penambahan numerik."
Tindakan implisit yang diambil adalah panggilan untuk ToNumber pada sebuah string
- ToNumber Diterapkan ke Tipe String "ToNumber diterapkan ke String berlaku tata bahasa ke String input. Jika tata bahasa tidak dapat menafsirkan String sebagai perluasan dari StringNumericLiteral, maka hasil ToNumber adalah NaN."
Penerjemah memiliki aturan tentang bagaimana mem-parsing ekspresi, dengan memecahnya menjadi komponen-komponen ekspresi kiri dan kanan.
Langkah 1: 'b' + 'a'
Ekspresi Kiri: 'b'
Nilai Kiri: 'b'
Operator: + (salah satu sisi ekspresi adalah string, jadi string concatenation)
Ekspresi Benar: 'a'
Nilai Benar: 'a'
Hasil: 'ba'
Langkah 2: 'ba' + + 'a'
Ekspresi Kiri: 'ba'
Nilai Kiri: 'ba'
Operator: + (salah satu sisi ekspresi adalah string, jadi string concatenation)
Ekspresi Benar: + 'a'
(ini mengevaluasi Nilai Matematika dari karakter 'a' dengan asumsi bahwa itu adalah angka positif dari tanda + - tanda minus juga akan bekerja di sini menunjukkan angka negatif - yang menghasilkan NaN)
Nilai Tepat: NaN (karena operatornya adalah string concatenation, toString dipanggil pada nilai ini selama concatenation)
Hasil: 'baNaN'
Langkah 3: 'baNaN' + 'a'
Ekspresi Kiri: 'baNaN'
Nilai Kiri: 'baNaN'
Operator: + (salah satu sisi ekspresi adalah string, jadi string concatenation)
Ekspresi Benar: 'a'
Nilai Benar: 'a'
Hasil: 'baNaNa'
Setelah ini ekspresi pengelompokan telah dievaluasi, dan toLowerCase disebut yang meninggalkan kita dengan pisang.
+"a"
isNaN
.