Ho bisogno di un array tipizzato, in particolare un Float32Array, di tutti gli zeri. Stavo pensando che avrei dovuto cancellarlo manualmente, ma ho notato che quando l'ho dichiarato, era già stato azzerato. È qualcosa che è specificato nelle specifiche? Posso fare affidamento su questo comportamento?Gli array Javascript sono stati inizializzati su 0?
risposta
Secondo JavaScript's Typed Array Specification, contents are initialized to 0. Quindi dovresti essere in grado di fare affidamento su questo comportamento.
Tenere presente che gli array digitati don't have very good cross browser support yet. Chrome, Safari, Firefox e Opera lo supportano, ma Internet Explorer ha introdotto il supporto solo in IE10.
Vorrei anche ricordare che gli array digitati sono attualmente extremely slow in Safari rispetto ai normali array. Per questo motivo, probabilmente stai meglio evitando gli array digitati a meno che tu non stia mirando a Safari. Utilizzando matrici normali, tutti i valori di matrice vengono inizializzati come undefined
.
Per impostazione predefinita gli array contengono null
se li si costruisce con una dimensione. Dal null == 0
potresti potenzialmente considerarlo riempito con 0
o qualsiasi altro valore di falsy. Tuttavia si incontrano problemi se si tenta di chiamare metodi sui numeri, ad esempio .toString
. O se lo si esegue attraverso una funzione che prevede un modulo numerico come parseInt
.
Idealmente, si dovrebbe sempre inizializzare una matrice in modo da sapere esattamente che cosa contiene, anche se personalmente non ho mai sentito parlare di array tipizzati in JS ...
* Gli array di default contengono null se li costruisci con una dimensione *: no. Prova nella tua console: 'var a = []; a.length = 5; console.log (a [3]) 'o' var a = new Array (5); console.log (a [3]) ' – KooiInc
Entrambi mi danno un array pieno di' null's, a meno che non mi fraintenda? –
Forse c'è una differenza tra browser? Nella console di Chrome 'console.log (a)' mostra '[non definito × 5]' – KooiInc
- 1. Gli interi sono sempre inizializzati a 0?
- 2. Gli indici array sono basati su 0 in VB6?
- 3. Gli array javascript sono effettivamente implementati come array?
- 4. Inizializzazione del brace dei tipi numerici. Sono 0 inizializzati?
- 5. I membri di una struct C++ sono inizializzati su 0 per impostazione predefinita?
- 6. Come ottenere una richiamata quando un elemento personalizzato * ed i suoi figli * sono stati inizializzati
- 7. Quali sono gli stati del thread Dalvik?
- 8. Ottieni l'elenco di tutti gli elementi in un array JavaScript
- 9. Gli array di lunghezza variabile sono possibili con Javascript
- 10. Combinatorics: genera tutti gli "stati" - combinazioni di array
- 11. Gli array non devono essere inizializzati staticamente da un inizializzatore di array. Perché?
- 12. Perché i tipi di riferimento non sono inizializzati su null?
- 13. Come vengono confrontati gli array Javascript?
- 14. Javascript - Reimposta setInterval su 0
- 15. Gli array Haskell sono troppo rigidi?
- 16. Come forzare l'esecuzione del proprio evento javascript, indipendentemente dall'ordine in cui sono stati aggiunti gli eventi?
- 17. Perché gli oggetti tipo array sono utilizzati in Javascript su matrici native
- 18. Gli array basati su stack sono possibili in C#?
- 19. Quali sono gli stati possibili per un contenitore docker?
- 20. ValidationSummary rimane visibile dopo che gli errori sono stati corretti?
- 21. Gli esempi a cascata non sono stati compilati?
- 22. Gli oggetti nidificati non sono stati salvati da Spring JpaRepository
- 23. Come scoprire quali eventi JavaScript sono stati attivati?
- 24. Se entrambi [0] == 0 e 0 == [[0]] sono veri del perché è [0] == [[0]] falso?
- 25. Come contare gli oggetti array JavaScript?
- 26. Gli array di stringhe sono mutabili?
- 27. Perché gli array non sono espandibili?
- 28. Come sono gli array di indici MongoDB?
- 29. PHP controlla se gli array sono identici?
- 30. Perché gli array di configurazione sono parametri accettabili in PHP e Javascript?
Cosa intendi con "azzerato"? – KooiInc
puoi mostrare il tuo codice? javascript non ha array digitati. Un array contiene tutto ciò che decidi di inserirvi; per esempio. '[1," ciao ", {a: 3}]' è un array valido in javascript. – jackwanders
Questo è ciò che ottengo nella console di Google Chrome. 'a = new Float32Array (10)' restituisce '[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]'. Sto usando array digitati perché sto lavorando in WebGL. Sono diversi dall'array standard e dato che è principalmente per WebGL, è un po 'esoterico. Avrei dovuto specificarlo. – SharkCop