The symbol.@@toPrimitive() is an inbuilt method 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 method accepts an optional parameter “hint”.
Return value: This method returns the primitive value of the given symbol object. JavaScript code to show the working of this method.
Example-1:
javascript
// Some symbol objects are created const symbol1 = Symbol( 'Geeks' ); const symbol2 = Symbol( "Geeks" ); const symbol3 = Symbol(123); const symbol4 = Symbol(); // Calling the symbol.@@toPrimitive() method let result1 = symbol1[Symbol.toPrimitive]( "Value" ); let result2 = symbol2[Symbol.toPrimitive]( "String" ); let result3 = symbol3[Symbol.toPrimitive](789); let result4 = symbol4[Symbol.toPrimitive](); // Getting the primitive value console.log(result1); console.log(result2); console.log(result3); console.log(result4); |
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:
javascript
// a symbol object is created const symbol = Symbol( 'gfg' ); // Calling the symbol.@@toPrimitive() method let result = symbol[Symbol.toPrimitive]; // Getting the primitive value console.log(result); |
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 47 and above
- Firefox 44
- Edge 15 and above
- Opera 34 and above
- Apple Safari 10 and above
Reference: https://devdocs.io/javascript/global_objects/symbol/@@toprimitive