Tại sao javascript lại muốn trả lại một số String
so với bất kỳ lựa chọn nào khác?trả về Chuỗi so với Số nguyên so với số không được xác định vs null
Hãy xem đoạn mã sau.
var arr = ['Hello1', 'Hello2', 'Hello3'];
Array.prototype.item = function(x) {
return this[x] || null || 'aïe' || 12 || undefined ;
};
console.log(arr.item(43)); // returns aïe
Tôi cố tình gọi là phần tử mảng không tồn tại.
Tuy nhiên tôi không thể hiểu tại sao arr.item(43)
trả về số String
? Tại sao không phải là null
hoặc undefined
hoặc thậm chí 12
?
Chúc mừng! Hoàn toàn rõ ràng :) – Pierre
Chỉ cần một nitpick, '||' trả về biểu thức được đánh giá cuối cùng. Trong trường hợp khi một người * trung thực *, nó sẽ trả về điều đó. – alex
@alex: Hmmm ... có, nhưng biểu thức "trung thực" đầu tiên * là * lần đánh giá cuối cùng. Có lẽ tôi đã không nhấn mạnh ngắn mạch một cách rõ ràng đủ. Tôi sẽ cập nhật. –