2013-08-09 48 views
5

Thời gian câu hỏi khó xử!độ dài nguyên trong javascript

Tôi biết rằng trong JavaScript bạn phải chuyển đổi các số nguyên cho một chuỗi:

var num = 1024; 
len = num.toString().length; 
console.log(len); 

Câu hỏi của tôi là thế này: Tại sao không có thuộc tính length get cho các số nguyên trong JavaScript? Có cái gì đó không được sử dụng thường xuyên?

+2

Becau se 'length' có độ dài bằng byte và đối với chuỗi, nó có nghĩa là 'chiều dài' thông thường. Số nguyên có độ dài loại dữ liệu chuẩn, do đó không cần tính toán độ dài của chúng. Nếu bạn đang đề cập đến chiều dài chuỗi đại diện của int - rõ ràng là trước tiên bạn nên chuyển đổi nó thành chuỗi. –

Trả lời

9

Vâng, tôi không nghĩ rằng việc cung cấp thuộc tính độ dài cho số sẽ hữu ích. Điểm là độ dài của chuỗi không thay đổi bằng cách thay đổi biểu diễn của nó.

ví dụ bạn có thể có một chuỗi tương tự như sau:

var b = "sometext"; 

và tài sản chiều dài của nó sẽ không thay đổi trừ khi bạn thực sự thay đổi chuỗi riêng của mình.

Nhưng đây không phải là trường hợp có số.

Cùng một số có thể có hai đại diện này:

var a = 23e-1; 
and 
var b = 2.3; 

Vì vậy, với hai đại diện này của nó rõ ràng là cùng một số có thể có nhiều đại diện và vì vậy, nếu bạn có tài sản dài với những con số đó sẽ phải thay đổi với các đại diện của các numb.er

+0

Đúng, giá trị số nguyên và do đó chiều dài phụ thuộc vào cơ số của hệ thống số. – Clergyman

+0

Có thể không * rất * hữu ích. Nhưng, tôi có thể sử dụng nó. Trong khi phân tích cú pháp một dòng văn bản người dùng; Tôi sẽ sử dụng một tính năng như vậy để cho tôi biết khoảng cách mà hàm 'parseInt' được sử dụng từ chuỗi nguồn. Mà không cần phải hoàn nguyên nó trở lại chuỗi chỉ để xem. (ví dụ: phân tích cú pháp 'x + 2464 + y * 42') –

2

bạn phải thiết lập biến toString() đầu tiên, như thế này:

var num = 1024, 
str = num.toString(), 
len = str.length; 

console.log(len); 
Các vấn đề liên quan