2012-05-08 30 views
5

NaN, đối tượng hoặc nguyên thủy là gì?JavaScript: NaN, Object hoặc nguyên thủy là gì?

NaN - Không phải số

+0

NaN là thuộc tính của lớp Số – rsplak

+1

'typeof NaN ==" number "' –

+1

NaN giống như NULL. bạn có thể tham khảo này [SO bài viết] [1] [1]: http://stackoverflow.com/questions/559792/what-is-the-reserved-keyword-for-nan -in-javascript –

Trả lời

4

NaN là giá trị Số nguyên thủy. Giống như 1, 2, v.v.

1

NaN là thuộc tính của đối tượng chung.

Giá trị ban đầu của NaN không phải là số A - giống như giá trị của Số.NaN. Trong các trình duyệt hiện đại, NaN là thuộc tính không thể định cấu hình, không thể ghi. Ngay cả khi điều này không đúng, hãy tránh ghi đè.

Khá hiếm khi sử dụng NaN trong chương trình. Nó là giá trị trả về khi hàm Math thất bại (Math.sqrt (-1)) hoặc khi một hàm cố gắng để phân tích cú pháp một số không thành công (parseInt ("blabla")).

Reference

8

Đó là một nguyên thủy. Bạn có thể kiểm tra theo một số cách:

  • typeof NaN cho "số", không phải "đối tượng".

  • Thêm thuộc tính, biến mất. NaN.foo = "hi"; console.log(NaN.foo) // undefined

  • NaN instanceof Number cho sai (nhưng chúng tôi biết đó là số, do đó, nó phải là nguyên thủy).

Nó sẽ không thực sự có ý nghĩa cho NaN là một đối tượng, vì biểu hiện như 0/0 cần phải dẫn đến NaN, và các hoạt động toán học luôn dẫn đến nguyên thủy. Có NaN như một đối tượng cũng có nghĩa là nó không thể hoạt động như một giá trị falsey, mà nó có trong một số trường hợp.

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