2016-05-16 15 views

risposta

4

C'è un modo per accedere direttamente a [[PrimitiveValue]] di tipi di oggetto JavaScript, ad es. String o Number?

No, non c'è.

Il valore primitivo viene ottenuto da JS quando l'oggetto viene utilizzato in un contesto che richiede una primitiva e lo fa chiamando il metodo valueOf sull'oggetto. I contesti che richiedono una primitiva, come menzionato nei commenti, includono +numberObj, '' + stringObj e "casting" tramite Number(numberObj). Si noti che costrutti come Object(false) && true do non convertono l'oggetto booleano in primitivo, né lo if (Object(false)) (che quindi ha esito positivo).

Nota anche valueOf può essere sovrascritto, nel qual caso non ci sono casi in cui il valore di base sottostante può o verrà recuperato.

4

In un certo senso, poiché per quanto riguarda lo standard ES6, [[Primitive Value]] è un algoritmo di conversione interno, non un risultato, prendendo un valore di input da elaborare e un argomento facoltativo che specifica il tipo preferito del valore restituito. L'algoritmo viene in genere utilizzato nella conversione automatica dei tipi e non sempre restituisce lo stesso tipo di dati per un determinato input.

Gli algoritmi [[Primitive Value]] possono essere suddivisi in standard ed esotici. L'approccio standard è quello di impostare il tipo di risultato preferito predefinito su "numero" se non fornito. Gli algoritmi esotici come implementati per Date Objects forniscono il proprio valore predefinito per il risultato della conversione.

Ovviamente la conversione di un oggetto String in un tipo di dati stringa (ad esempio "" + strObj) o un oggetto numero in un tipo di dati numerici (ad esempio + numObj) è banale se e quando necessario. Nella maggior parte dei casi è probabile che sia fatto automaticamente per te.

Problemi correlati