阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      JS symbol valueOf()

      概述

      **valueOf()** 方法返回当前 symbol 对象所包含的 symbol 原始值。

      语法

      symbol.valueOf();
      
      

      描述

      在 JavaScript 中,虽然大多数类型的对象在某些操作下都会自动的隐式调用自身的 valueOf() 方法或者 toString() 方法来将自己转换成一个原始值,但 symbol 对象不会这么干,symbol 对象无法隐式转换成对应的原始值:

      Object(Symbol("foo")) + "bar";
      // TypeError: can't convert symbol object to primitive
      // 无法隐式的调用 valueOf()
      
      Object(Symbol("foo")).valueOf() + "bar";
      // TypeError:  can't convert symbol to string
      // 手动调用 valueOf() 方法,虽然转换成了原始值,但 symbol 原始值不能转换为字符串
      
      Object(Symbol("foo")).toString() + "bar";
      // "Symbol(foo)bar",需要手动调用 toString() 方法才行
      
      

      规范

      SpecificationStatusComment
      ECMAScript 2015 (6th Edition, ECMA-262)Symbol.prototype.valueOfStandardInitial definition.

      相关链接

      目录
      目录