您的位置:首页 > 运维架构

The in operator

2016-06-13 15:40 337 查看
The 
in
 operator returns 
true
 if
the specified property is in the specified object.


Syntax

prop in objectName


Parameters

prop
A string or symbol representing a property name or array index (non-symbols will be coerced to strings).
objectName
Name of an object.


Description

The following examples show some uses of the 
in
 operator.
// Arrays
var trees = ["redwood", "bay", "cedar", "oak", "maple"];
0 in trees        // returns true
3 in trees        // returns true
6 in trees        // returns false
"bay" in trees    // returns false (you must specify the
// index number, not the value at that index)
"length" in trees // returns true (length is an Array property)
Symbol.iterator in trees // returns true (arrays are iterable, works only in ES6+)

// Predefined objects
"PI" in Math          // returns true

// Custom objects
var mycar = {make: "Honda", model: "Accord", year: 1998};
"make" in mycar  // returns true
"model" in mycar // returns true


You must specify an object on the right side of the 
in
 operator. For example, you
can specify a string created with the 
String
 constructor, but you cannot specify
a string literal.
var color1 = new String("green");
"length" in color1 // returns true

var color2 = "coral";
// generates an error (color2 is not a String object)
"length" in color2


Using 
in
 with deleted or undefined properties

If you delete a property with the 
delete
 operator,
the 
in
 operator returns 
false
 for
that property.
var mycar = {make: "Honda", model: "Accord", year: 1998};
delete mycar.make;
"make" in mycar;  // returns false

var trees = new Array("redwood", "bay", "cedar", "oak", "maple");
delete trees[3];
3 in trees; // returns false


If you set a property to 
undefined
 but
do not delete it, the 
in
 operator returns true for that property.
var mycar = {make: "Honda", model: "Accord", year: 1998};
mycar.make = undefined;
"make" in mycar;  // returns true

var trees = new Array("redwood", "bay", "cedar", "oak", "maple");
trees[3] = undefined;
3 in trees; // returns true


Inherited properties

The 
in
 operator returns 
true
 for
properties in the prototype chain.
"toString" in {}; // returns true


Specifications

SpecificationStatusComment
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.
StandardInitial definition. Implemented in JavaScript 1.4.


Browser compatibility

Desktop 

Mobile

FeatureChromeFirefox (Gecko)EdgeInternet ExplorerOperaSafari
Basic support(Yes)(Yes)(Yes)(Yes)(Yes)(Yes)


See also

delete

Object.prototype.hasOwnProperty()

Reflect.has()

Enumerability
and ownership of properties
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: