Skip to content
Related Articles

Related Articles

JavaScript | symbol.@@toPrimitive() function
  • Last Updated : 09 May, 2019
GeeksforGeeks - Summer Carnival Banner

The symbol.@@toPrimitive() is an inbuilt function in JavaScript which is used to converts a given symbol object to a primitive value.

Syntax:

Symbol()[Symbol.toPrimitive](hint);

Here Symbol() is the symbol object whose primitive value is to be found.

Parameters: This function accepts an optional parameter “hint”.

Return value: This function returns the primitive value of the given symbol object.



JavaScript code to show the working of this function.
Example-1:




<script>
    // Some symbol objects are created
    const symbol1 = Symbol('Geeks');
    const symbol2 = Symbol("Geeks");
    const symbol3 = Symbol(123);
    const symbol4 = Symbol();
  
    // Calling the symbol.@@toPrimitive() function
    var result1 = symbol1[Symbol.toPrimitive]("Value");
    var result2 = symbol2[Symbol.toPrimitive]("String");
    var result3 = symbol3[Symbol.toPrimitive](789);
    var result4 = symbol4[Symbol.toPrimitive]();
  
    // Getting the primitive value 
    console.log(result1);
    console.log(result2);
    console.log(result3);
    console.log(result4);
</script>

Output:

> Symbol(Geeks)
> Symbol(Geeks)
> Symbol(123)
> Symbol()

In the above code, it can be seen that the optional argument “hint” can be value, string, any integer value etc.

Example-2:




<script>
    // a symbol object is created
    const symbol = Symbol('gfg');
  
    // Calling the symbol.@@toPrimitive() function
    var result = symbol[Symbol.toPrimitive];
  
    // Getting the primitive value 
    console.log(result);
</script>

Output:

> function [Symbol.toPrimitive]() { [native code] }

In the above code, it can be seen that the parentheses should be used for “hint” argument otherwise it gives the result like above output.

Supported Browsers:

  • Google Chrome
  • Firefox 44
  • Edge
  • Opera
  • Apple Safari

Reference: https://devdocs.io/javascript/global_objects/symbol/@@toprimitive

full-stack-img

My Personal Notes arrow_drop_up
Recommended Articles
Page :