2011-10-11 25 views
32

JSLint có một số thông báo thú vị, chẳng hạn như eval is evil. khi bạn sử dụng câu lệnh evalWeird relation. khi so sánh hai chữ, ví dụ: 1 == 2.Làm cách nào bạn có thể kích hoạt "Cái quái gì thế này?" Thông báo JSLint?

tôi đang tìm kiếm thông qua một danh sách các JSLint messages, và nhận thấy cái này ở dưới cùng của danh sách:

Cái quái gì thế này?

Tôi nhìn qua JSLint source và tìm thấy mã này:

if (stack.length === 0) { 
    error("What the hell is this?", nexttoken); 
} 

Tôi đã cố gắng trong một thời gian, nhưng không thành công, để viết mã kích hoạt này. Không có gì tôi đã đọc về các cuộc nói chuyện của JSLint về thông báo lỗi này, tại sao nó tồn tại hoặc nguyên nhân gây ra nó. Tôi đã kiểm tra ngắn gọn mã, nhưng tôi thực sự không thể hiểu được ngăn xếp là gì, nó được điền như thế nào hoặc những gì có thể khiến nó trống.

Ai đó có thể viết mẫu mã sẽ khiến JSLint hét lên What the hell is this? hoặc giải thích điều gì ngăn điều này xảy ra?

+1

Tôi không có mã như vậy ... nhưng kiểm tra đoạn mã bạn đã đăng Tôi nghi ngờ JSLint sử dụng ngăn xếp nội bộ có kích thước (được xác định trước) và chỉ hiển thị thông báo này khi ngăn xếp trống ở vị trí không nên (kiểm tra XML) ... thông báo này chỉ xảy ra nếu một nơi nào đó dọc theo cách một lỗi JSLint dẫn đến một ngăn xếp trống trong khi phần còn lại của hàm tin rằng có một mã thông báo lồng nhau để xử lý ... – Yahia

+3

Có thể đó là lỗi nên/có thể không bao giờ xảy ra ... chỉ là một ý nghĩ. –

+0

Tôi muốn nói rằng có một cơ hội tốt mà nó được viết để sử dụng nội bộ khi phát triển công cụ. Nếu nó gặp phải một số điều kiện không mong đợi, nó sẽ xuất ra thông báo đó và nhà phát triển sẽ điều tra thêm. Chỉ cần đoán thôi. – riwalk

Trả lời

16

Dường như giống như "can't happen" check (dạng defensive programming). Nếu vậy, có thể không có cách nào để kích hoạt nó trong thực tế.

+13

Điều này sẽ rất đáng thất vọng với tôi nếu đó là sự thật. Tất cả cuộc sống của tôi, tôi đã mơ ước có JSLint trực tiếp xúc phạm mã của tôi. –

+7

@Peter Ít nhất bạn sẽ luôn có Visual Studio gọi cho nhà phát triển một công cụ. – millimoose

Các vấn đề liên quan