tôi đang tìm kiếm tại đầu ra của một số công cụ từ UglifyJS và xảy ra trên một số mã như sau:Tại sao JavaScript này hoạt động?
var a = 0;
var b = function() {
return function() {
a++;
}(), 'Hello, World'
}();
Sau khi chạy mã a
là 1
và b
là chuỗi Hello, World!
.
Thoạt nhìn, có vẻ như b
sẽ là undefined
vì có vẻ như kết quả của hàm không có giá trị trả về được trả về, nhưng sau đó là dấu phẩy và chuỗi ký tự.
Tại sao tính năng này hoạt động?
Và tại sao UglifyJS chỉ thực hiện chức năng ẩn danh và sau đó trả lại Hello, World!
làm tuyên bố tiếp theo?
Câu hỏi hay hơn có thể là lý do tại sao bạn (hoặc bất kỳ ai) viết javascript theo cách này? Mã nên rõ ràng. –
@CoreyOgburn nó không rõ ràng nếu bạn biết những gì các nhà điều hành dấu phẩy làm. – AD7six
'var a = (" rofl "," nhưng lol của nó! "); ' – jAndy