Questa traduzione è incompleta. Collabora alla traduzione di questo articolo dall’originale in lingua inglese.

L' operatore in dà come ritorno true se la proprietà specificata si trova nell'oggetto preso in considerazione.

Restituisce false se la proprietà è stata eliminata tramite delete ma non nel caso in cui sia stata inizializzata undefined dal programmatore.

Sintassi

prop in nomeOggetto

Parametri

prop
Una stringa o simbolo che rappresenta il nome di una proprietà o indice di un array (i non-simboli verranno automaticamente convertiti in stringhe).
nomeOggetto
Nome di un oggetto.

Descrizione

I seguenti esempi mostrano alcuni usi dell'operatore in.

// Array
var alberi = ["sequoia", "lauro", "cedro", "quercia", "acero"];
0 in alberi        // ritorna true
3 in alberi        // ritorna true
6 in alberi        // ritorna false, non ci sono proprietà in quell'indice su alberi
"bay" in alberi    // ritorna false (devi specificare il  
                  // numero dell'indice, non il valore corrispondente a quell'indice)
"length" in alberi // ritorna true (length è una proprietà degli array)
Symbol.iterator in alberi // ritorna true (gli array sono iterabili, funziona solo in ES6+)

// Oggetti predefiniti
"PI" in Math          // ritorna true, "PI" è il nome di una proprietà dell'oggetto Math

// Oggetti personalizzati
var miaAuto = {marca: "Honda", modello: "Accord", anno: 1998};
"marca" in miaAuto  // ritorna true
"modello" in miaAuto // ritorna true

Devi specificare un oggetto sul lato destro dell'operatore in. Per esempio, puoi specificare una stringa creata con il costruttore String, ma non puoi specificare una stringa literal.

var colore1 = new String("verde");
"length" in colore1 // ritorna true

var color2 = "coral";
// genera un errore (colore2 non è un oggetto String)
"length" in colore2

Usare l'operatore in con le proprietà deleted o undefined

Se elimini una proprietà con l'operatore delete, l'operatore in ritorna false per quella proprietà.

var miaAuto = {marca: "Honda", modello: "Accord", anno: 1998};
delete miaAuto.marca;
"marca" in miaAuto;  // ritorna false

var alberi = new Array("sequoia", "lauro", "cedro", "quercia", "acero");
delete alberi[3];
3 in alberti; // ritorna false

Se setti una proprietà ad undefined ma non la cancelli, l'operatore in darà come ritorno true per quella proprietà.

var miaAuto = {marca: "Honda", modello: "Accord", anno: 1998};
miaAuto.marca = undefined;  //inizializzo manualmente la proprietà 'marca' undefined
"marca" in miaAuto;  // ritorna true, non è stato usato usato delete sulla proprietà
delete miaAuto.marca; 
"marca" in miaAuto // return false, è stata eliminata la proprietà

 

 

 

var alberi = new Array("sequoia", "lauro", "cedro", "quercia", "acero");
alberi[3] = undefined;
3 in alberi; // ritorna true

Proprietà ereditate

L'operatore in ritorna true per proprietà ereditate tramite prototipi.

"toString" in {}; // returns true

Specifiche

Specification Status Comment
ECMAScript Latest Draft (ECMA-262)
The definition of 'Relational Operators' in that specification.
Draft  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Relational Operators' in that specification.
Standard  
ECMAScript 5.1 (ECMA-262)
The definition of 'The in Operator' in that specification.
Standard  
ECMAScript 3rd Edition (ECMA-262)
The definition of 'The in Operator' in that specification.
Standard Definizione iniziale. Implementato in JavaScript 1.4.

Compatibilità con i browser

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Feature Chrome Firefox (Gecko) Edge Internet Explorer Opera Safari
Basic support (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

Vedi anche

Tag del documento e collaboratori

Hanno collaborato alla realizzazione di questa pagina: ertento, Crowbit
Ultima modifica di: ertento,