Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 符号是如何工作的?_Javascript_Node.js_Ecmascript 6 - Fatal编程技术网

Javascript 符号是如何工作的?

Javascript 符号是如何工作的?,javascript,node.js,ecmascript-6,Javascript,Node.js,Ecmascript 6,Node.JS v0.11.3声称支持带有--harmony_symbols标志的ECMAScript 6符号(请参阅)。最新草案 属性使用键值标识。键值是ECMAScript字符串值或符号值 我试过下面的例子 var mySymbol = new Symbol('Test symbol'); console.log(mySymbol.name); // prints 'Test symbol', as expected var a = {}; a[mySymbol] = 'Hello!';

Node.JS v0.11.3声称支持带有
--harmony_symbols
标志的ECMAScript 6符号(请参阅)。最新草案

属性使用键值标识。键值是ECMAScript字符串值或符号值

我试过下面的例子

var mySymbol = new Symbol('Test symbol');
console.log(mySymbol.name); // prints 'Test symbol', as expected

var a = {};
a[mySymbol] = 'Hello!';
但最后一行有个错误

TypeError:从符号到字符串的转换


符号是如何工作的?我的示例是错误的,还是Node.JS实际上不支持符号?

您应该在不使用
new
的情况下进行尝试:

var mySymbol = Symbol('Test symbol');
console.log(mySymbol.name); // prints 'Test symbol', as expected

var a = {};
a[mySymbol] = 'Hello!';

我甚至在最新的草稿中找不到
符号
构造函数。这只描述了数据类型。例如,在上面您将看到
空类型
。也没有
Null
构造函数。@Randomblue:这只是
符号
类型的描述。没有像您使用的那样的
Symbol()
构造函数来创建它们。草稿尚未完成:-)作为参考,完全不受支持的内容通常会失败,并显示一条不太具体的错误消息。这个错误甚至提到了符号这一事实是一个非常强烈的暗示,它们是受支持的(至少在某种程度上是这样的;好吧,我一点线索也没有)。