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 2017 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
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) |