Open In App

JavaScript Symbol unscopables Property

The Symbol.unscopables property in Javascript is a well-known symbol that is used to specify an object value of whose own and inherited property names are excluded from the environment bindings. 

Syntax:



object[Symbol.unscopables]

Property attributes: This property holds an Object and it is not Writable, Enumerable and Configurable. 

Return value: Check the variable appears in the lexical scope variable. 



The below examples illustrate the Symbol.unscopables properties in JavaScript:

Example 1:In this example, we will see the output If all property are set to false. 




// JavaScript to illustrate Symbol.toPrimitive 
let obj1 = {
    val: "Have",
    val1: "FUN"
};
obj1[Symbol.unscopables] = {
    val1: false,
    val: false
};
with (obj1) {
    console.log(val1);
}
with (obj1) {
    console.log(val);
}

Output:

"FUN"
"Have"

Example 2: In this example, we will see the output If any property is set to true. 




// JavaScript to illustrate Symbol.toPrimitive 
let obj1 = {
    val: "Have",
    val1: "FUN"
};
obj1[Symbol.unscopables] = {
    val1: false,
    val: true
};
with (obj1) {
    console.log(val1);
}
with (obj1) {
    console.log(val);
}

Output:

"FUN"
Error: val is not defined

Example 3: In this example, we will see all the unscopables




let list = [];
 
with (Array.prototype) {
      list.push('unscopables');
}
 
console.log(Object.keys(Array.prototype[Symbol.unscopables]));

Output:

[
  'copyWithin', 'entries',
  'fill',       'find',
  'findIndex',  'flat',
  'flatMap',    'includes',
  'keys',       'values'
]

Supported Browsers: The browsers are supported by JavaScript Symbol.unscopables properties are listed below:

We have a complete list of Javascript symbols, to check those please go through the Javascript Symbol Complete Reference article.


Article Tags :