Revision 639867 of Symbol.prototype.toString()

  • Revision slug: Web/JavaScript/Reference/Global_Objects/Symbol/toString
  • Revision title: Symbol.prototype.toString()
  • Revision id: 639867
  • Created:
  • Creator: ziyunfei
  • Is current revision? No
  • Comment

Revision Content

{{JSRef("Global_Objects", "Symbol")}} {{harmony}}

概述

toString() 方法返回当前 symbol 对象的字符串表示。

语法

symbol.toString();

描述

{{jsxref("Symbol")}} 对象拥有自己的 toString 方法,因而遮蔽了原型链上的 {{jsxref("Object.prototype.toString()")}}。

symbol 原始值不能转换为字符串

symbol 原始值不能转换为字符串,所以只能先转换成它的包装对象,再调用 toString() 方法:

Symbol("foo") + "bar";       // TypeError: Can't convert symbol to string
 Object(Symbol("foo")).toString() + "bar" // "Symbol(foo)bar"

示例

Symbol("desc").toString();   // "Symbol(desc)"

// well-known symbols
Symbol.iterator.toString();  // "Symbol(Symbol.iterator)

// global symbols
Symbol.for("foo").toString() // "Symbol(foo)"

规范

Specification Status Comment
{{SpecName('ES6', '#sec-symbol.prototype.tostring', 'Symbol.prototype.toString')}} {{Spec2('ES6')}} Initial definition.

浏览器兼容性

{{ CompatibilityTable() }}

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support {{ CompatVersionUnknown() }} {{ CompatGeckoDesktop("33.0") }} {{ CompatNo() }} {{ CompatNo() }} {{ CompatNo() }}
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support {{ CompatVersionUnknown() }} {{ CompatVersionUnknown() }} {{ CompatGeckoMobile("33.0") }} {{ CompatNo() }} {{ CompatNo() }} {{ CompatNo() }}

相关链接

  • {{jsxref("Object.prototype.toString()")}}

Revision Source

<div>
 {{JSRef("Global_Objects", "Symbol")}} {{harmony}}</div>
<h2 id="Summary" name="Summary">概述</h2>
<p><code><strong>toString()</strong></code> 方法返回当前 symbol 对象的字符串表示。</p>
<h2 id="Syntax" name="Syntax">语法</h2>
<pre class="syntaxbox">
<var>symbol.toString()</var>;</pre>
<h2 id="Description" name="Description">描述</h2>
<p>{{jsxref("Symbol")}} 对象拥有自己的 <code>toString</code> 方法,因而遮蔽了原型链上的 {{jsxref("Object.prototype.toString()")}}。</p>
<h3 id="No_string_concatenation">symbol 原始值不能转换为字符串</h3>
<p>symbol 原始值不能转换为字符串,所以只能先转换成它的包装对象,再调用 <code>toString()</code> 方法:</p>
<pre class="brush: js">
Symbol("foo") + "bar";       // TypeError: Can't convert symbol to string
 Object(Symbol("foo")).toString() + "bar" // "Symbol(foo)bar"
</pre>
<h2 id="Examples">示例</h2>
<pre class="brush: js">
Symbol("desc").toString();   // "Symbol(desc)"

// well-known symbols
Symbol.iterator.toString();  // "Symbol(Symbol.iterator)

// global symbols
Symbol.for("foo").toString() // "Symbol(foo)"
</pre>
<h2 id="Specifications">规范</h2>
<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Specification</th>
   <th scope="col">Status</th>
   <th scope="col">Comment</th>
  </tr>
  <tr>
   <td>{{SpecName('ES6', '#sec-symbol.prototype.tostring', 'Symbol.prototype.toString')}}</td>
   <td>{{Spec2('ES6')}}</td>
   <td>Initial definition.</td>
  </tr>
 </tbody>
</table>
<h2 id="Browser_compatibility">浏览器兼容性</h2>
<p>{{ CompatibilityTable() }}</p>
<div id="compat-desktop">
 <table class="compat-table">
  <tbody>
   <tr>
    <th>Feature</th>
    <th>Chrome</th>
    <th>Firefox (Gecko)</th>
    <th>Internet Explorer</th>
    <th>Opera</th>
    <th>Safari</th>
   </tr>
   <tr>
    <td>Basic support</td>
    <td>{{ CompatVersionUnknown() }}</td>
    <td>{{ CompatGeckoDesktop("33.0") }}</td>
    <td>{{ CompatNo() }}</td>
    <td>{{ CompatNo() }}</td>
    <td>{{ CompatNo() }}</td>
   </tr>
  </tbody>
 </table>
</div>
<div id="compat-mobile">
 <table class="compat-table">
  <tbody>
   <tr>
    <th>Feature</th>
    <th>Android</th>
    <th>Chrome for Android</th>
    <th>Firefox Mobile (Gecko)</th>
    <th>IE Mobile</th>
    <th>Opera Mobile</th>
    <th>Safari Mobile</th>
   </tr>
   <tr>
    <td>Basic support</td>
    <td>{{ CompatVersionUnknown() }}</td>
    <td>{{ CompatVersionUnknown() }}</td>
    <td>{{ CompatGeckoMobile("33.0") }}</td>
    <td>{{ CompatNo() }}</td>
    <td>{{ CompatNo() }}</td>
    <td>{{ CompatNo() }}</td>
   </tr>
  </tbody>
 </table>
</div>
<h2 id="See_Also" name="See_Also">相关链接</h2>
<ul>
 <li>{{jsxref("Object.prototype.toString()")}}</li>
</ul>
Revert to this revision