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 createdconst symbol1 = Symbol('Geeks');const symbol2 = Symbol("Geeks");const symbol3 = Symbol(123);const symbol4 = Symbol();// Calling the symbol.@@toPrimitive() methodlet 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 valueconsole.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 createdconst symbol = Symbol('gfg');// Calling the symbol.@@toPrimitive() methodlet result = symbol[Symbol.toPrimitive];// Getting the primitive valueconsole.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
