2013-08-09 13 views
5

Stoopid question time!integer length in javascript

So che in JavaScript è necessario convertire il numero intero in una stringa:

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

mia domanda è questa: Perché non c'è alcuna proprietà lunghezza get per gli interi in JavaScript? È qualcosa che non viene usato così spesso?

+2

becau se 'length' è la lunghezza in byte e per le stringhe ha un senso come una normale 'lunghezza'. Gli interi hanno lunghezza di tipo di dati standard, quindi non è necessario calcolare la loro 'lunghezza'. Se ti riferisci alla lunghezza della stringa di rappresentazione int - è ovvio che devi prima convertirlo in stringa. –

risposta

9

Bene, non credo che fornire proprietà di lunghezza al numero sia utile. Il punto è la lunghezza delle stringhe non cambia cambiando la sua rappresentazione.

per esempio, si può avere una stringa simile a questo:

var b = "sometext"; 

e la sua proprietà length non cambierà a meno che effettivamente cambiare la stringa stessa.

Ma questo non è il caso con i numeri.

Lo stesso numero può avere queste due rappresentazioni:

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

Quindi, con questi due rappresentazione suo chiaro che lo stesso numero può avere una rappresentanza più e così, se si dispone di proprietà length con i numeri si dovrà cambiare con la rappresentazione della numb.er

+0

Vero, il valore intero e quindi la lunghezza dipendono dalla base del sistema numerico. – Clergyman

+0

Forse non * molto * utile. Ma, potrei usarlo. Mentre analizza una riga di testo utente; Vorrei usare una funzione del genere per dirmi la distanza della funzione 'parseInt' dalla stringa sorgente. Senza dover riconvertirlo in stringa solo per vedere. (es .: parsing 'x + 2464 + y * 42') –

2

è necessario impostare la variabile toString() prima, in questo modo:

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

console.log(len);