2013-03-05 41 views
10

Tôi đã xem qua đoạn này trong kriskowal/q:Tại sao sử dụng từ khóa void?

/** 
* Applies the promised function in a future turn. 
* @param object promise or immediate reference for target function 
* @param args  array of application arguments 
*/ 
Q.fapply = fapply; 
function fapply(value, args) { 
    return dispatch(value, "apply", [void 0, args]); 
} 

điểm của việc sử dụng từ khóa void là gì? Tại sao không chỉ viết [undefined, args]?

+8

Vì toàn cầu 'undefined' có thể được định nghĩa lại; nó không phải là một từ dành riêng, như 'null'. – raina77ow

+0

..có thể được định nghĩa lại, nhưng bắt đầu bằng JavaScript 1.8.5, không xác định là không thể ghi, theo đặc tả ECMAScript 5. – epascarello

+5

'void 0' là 3 ký tự nhỏ hơn' undefined'. –

Trả lời

9

Từ MDN Docs of void

Cú pháp

void expression 

Sử dụng

Toán tử này cho phép chèn biểu thức sản xuất tác dụng phụ vào những nơi mà một biểu thức đánh giá để xác định là mong muốn.

Nhà điều hành khoảng trống thường được sử dụng chỉ đơn thuần là để có được những không xác định nguyên thủy giá trị, thường sử dụng "void (0)" (tương đương với "void 0"). Trong những trường hợp này, biến toàn cục không xác định có thể được sử dụng thay vì (giả sử nó không được gán cho một giá trị không mặc định).

Và tại sao? Xem MDN Undefined

Trong phiên bản cũ hơn của JavaScript undefined có thể bị ghi đè, nhưng khi bắt đầu trong JavaScript 1.8.5, không xác định là không thể ghi, theo đặc tả ECMAScript 5.

+2

Ok, vì vậy nó chỉ là một cách an toàn hơn để viết 'undefined'? –

+0

có, đó là lý do. – epascarello

+0

@Rosarch: Để rõ ràng, toàn cầu 'undefined' là không thể ghi. Bạn vẫn có thể đổ bóng nó trong một phạm vi biến cục bộ. Nhưng hãy đảm bảo bạn không cho phép bất kỳ mã nào xác định lại 'không xác định' và rất an toàn để sử dụng. –

1

Khoảng trống là từ khóa quan trọng trong JavaScript có thể được sử dụng như một toán tử đơn nhất xuất hiện trước toán hạng đơn, có thể thuộc bất kỳ loại nào.

Toán tử này chỉ định biểu thức được đánh giá mà không trả về giá trị. Cú pháp của nó có thể là một trong số following

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