We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

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

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

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

The following examples show some uses of the in operator.

// Array
var alberi = ["sequoia", "lauro", "cedro", "quercia", "acero"];
0 in alberi        // ritorna true
3 in alberi        // ritorna true
6 in alberi        // ritorna false
"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

// 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;
"marca" in miaAuto;  // ritorna true
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: Crowbit
Ultima modifica di: Crowbit,