Dòng mã này đánh giá một biểu thức và sau đó gọi một phương thức dựa trên giá trị được trả về.
Biểu thức ('b' + 'a' + + 'a' + 'a')
chỉ bao gồm các chuỗi ký tự và toán tử cộng.
- Chuỗi ký tự "Một chuỗi ký tự là 0 hoặc nhiều ký tự được đặt trong dấu ngoặc đơn hoặc dấu ngoặc kép."
- Toán tử bổ sung (+) "Toán tử bổ sung thực hiện nối chuỗi hoặc cộng số."
Một hành động ngầm được thực hiện là gọi ToNumber trên chuỗi
- ToNumber được áp dụng cho Loại chuỗi "ToNumber được áp dụng cho Chuỗi áp dụng ngữ pháp cho Chuỗi đầu vào. Nếu ngữ pháp không thể hiểu Chuỗi là một bản mở rộng của StringNumericLiteral, thì kết quả của ToNumber là NaN."
Trình thông dịch có các quy tắc về cách phân tích biểu thức, bằng cách chia nó thành các thành phần của biểu thức tay trái và tay phải.
Bước 1: 'b' + 'a'
Biểu thức bên trái: 'b'
Giá trị bên trái: 'b'
Toán tử: + (một trong các mặt của biểu thức là một chuỗi, do đó, nối chuỗi)
Biểu thức đúng: 'a'
Giá trị đúng: 'a'
Kết quả: 'ba'
Bước 2: 'ba' + + 'a'
Biểu thức bên trái: 'ba'
Giá trị bên trái: 'ba'
Toán tử: + (một trong các mặt của biểu thức là một chuỗi, do đó, nối chuỗi)
Biểu thức đúng: + 'a'
(điều này đánh giá Giá trị toán học của ký tự 'a' giả sử rằng đó là số dương từ dấu + - dấu trừ cũng sẽ hoạt động ở đây chỉ ra số âm - kết quả là NaN)
Giá trị đúng: NaN (vì toán tử là nối chuỗi, toString được gọi trên giá trị này trong quá trình nối)
Kết quả: 'baNaN'
Bước 3: 'baNaN' + 'a'
Biểu thức bên trái: 'baNaN'
Giá trị bên trái: 'baNaN'
Toán tử: + (một trong các mặt của biểu thức là một chuỗi, do đó, nối chuỗi)
Biểu thức đúng: 'a'
Giá trị đúng: 'a'
Kết quả: 'baNaNa'
Sau đó, biểu thức nhóm đã được đánh giá và toLowerCase được gọi là lá chuối cho chúng ta.
+"a"
làNaN
.