2012-06-19 30 views
9

tôi đã sử dụng Console Chrome để viết một tuyên bố đơn giản:Điều gì sẽ xảy ra nếu giao diện điều khiển console.log (4) không được xác định trong Bảng điều khiển của Chrome?

console.log(4) 

và nhận được Output:

4 

undefined

không báo cáo kết quả xác định có ý nghĩa gì? Tuyên bố không xác định có ngụ ý thực thi chính xác không? Nếu tôi thực hiện báo cáo kết quả thông qua một file html riêng biệt và sau đó nhìn vào giao diện điều khiển, đầu ra chỉ là 4.

+1

bản sao có thể có của [Chrome/Firefox console.log luôn luôn thêm một dòng cho biết không xác định] (http://stackoverflow.com/questions/14633968/chrome-firefox-console-log-always-prepends-a-line-saying -undefined) – Bergi

+0

không chắc chắn rằng điều này có thể là một bản sao nếu nó được yêu cầu trong '12, và một trong những bạn liên kết đã được hỏi trong '13 ... –

+0

Tôi tin rằng 'Chủ đề nào có câu trả lời rõ ràng hơn và rõ ràng hơn cũng là một tiêu chí trong khi đánh dấu câu hỏi là trùng lặp. Đó là một cách củng cố tốt hơn các chủ đề liên quan trên SO. – RBT

Trả lời

10

các undefined là giá trị trở lại của console.log(...).

Bạn có thể thấy điều này bằng cách xác định hai chức năng trong bảng điều khiển, một hàm sẽ trả về nội dung nào đó và người kia không trả lại gì, ví dụ: như thế này:

function f1() { 
    return 1; 
} 
function f2() { 
    return; 
} 

Và sau đó gọi điện cho họ riêng (bằng tay)

f1(); // shows '1' 

f2(); // shows 'undefined' 

Cũng lưu ý các biểu tượng nhỏ trước những chuỗi giá trị trả về.

+0

Rất tuyệt. Tính năng này có được triển khai như vậy cho mục đích gỡ lỗi không? – AnthonyS

+0

thú vị: rõ ràng giao diện điều khiển cung cấp cho bạn giá trị trả lại gần đây nhất, vì vậy nếu bạn gọi f2(); f1(); đầu ra chỉ là 1 – AnthonyS

+0

Bằng cách gọi chúng sau mỗi khác trên cùng một dòng, bạn có hiệu quả loại bỏ kết quả đầu tiên. Bằng cách này, nếu bạn chỉ cần đặt 'var x = f1();', bạn cũng sẽ thấy '1', bởi vì kết quả của biểu thức đó vẫn là' 1'. Đó là lý do tại sao các câu lệnh như 'x = y = z = f1()' hoạt động. – Bart

0

Tôi đã thử nghiệm nó và thậm chí với một biến sẵn nó đã không làm việc trong Safari của tôi:

i = 2; 
console.log(i); 

này dường như để giải thích các lỗi WebKit (động cơ của cả Chrome và Safari) có: Link

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