JavaScript中的符号?

时间:2019-01-03 08:49:50

标签: javascript ecmascript-6

我在Google上搜索了很多有关新原始类型“ Symbol”的信息,但仍然无法理解其实际用法。我了解的是:

  • 它们是原始类型,就像整数或字符串一样。
  • 它们不是构造函数,因此您不能使用new Symbol()语法。

但是为什么要使用它?字符串/整数/布尔的用法很清楚,但是Symbol()的用途到底是什么?

此外,对于此代码:

var data1 = Symbol();
var data2= Symbol('dummy');

为什么Symbol('dummy') === Symbol('dummy')为假?

1 个答案:

答案 0 :(得分:0)

此代码falseID=1 VAR1=6 VAR2=9 VAR3=12 VAR4=16 while read FILE;do sort -k${ID},${ID} < ${FILE} | awk -v ID=${ID} -v VAR1=${VAR1} -v VAR2=${VAR2} -v VAR3=${VAR3} -v VAR4=${VAR4} 'BEGIN{OFS="\t"};{print $ID,$VAR1 > "tmp1";print ${ID},$VAR2 > "tmp2";print ${ID},$VAR3 > "tmp3";print ${ID},$VAR4 > "tmp4"}' awk 'FNR==NR{a[$1]=$1;next};{if(($1 in a)==0){print $0 > "tmp5"}}' output1 tmp1 cat output1 tmp5 > foo && mv foo output1 join -e "NA" -a1 -a2 -t $'\t' -1 1 -2 1 output2 -o auto tmp2 > bar2 && mv bar2 output2 join -e "NA" -a1 -a2 -t $'\t' -1 1 -2 1 output3 -o auto tmp3 > bar3 && mv bar2 output3 join -e "NA" -a1 -a2 -t $'\t' -1 1 -2 1 output4 -o auto tmp4 > bar4 && mv bar2 output4 rm tmp? done < files.list sort -k1,1 output1 > foo && mv foo output1 ,因为每个符号都是唯一的。

即使您使用相同的描述(虚拟),它们实际上也是两个不同的唯一符号。

它们用作标识符。

您可以了解有关它们的更多信息here