Symbol.toPrimitive 是一个内置的 Symbol 值,它是作为对象的函数值属性存在的,当一个对象转换为对应的原始值时,会调用此函数。
Symbol.toPrimitive MDN介绍: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Symbol/toPrimitive
a=2s=new Array()
s[1]=s[2]=s[3]=''
if(a in s){
alert(a)
}
a=3
if(a in {1:'',2:'',3:''}){
alert(a)
}
暂时想到这两种
弹出的结果:a=2b=2为什么呢?
1、先执行var a=1此时a=1
2、var b=++a此时b=2a=2
解释:
加减在前 先加减后赋值
加减在后 先赋值再加减
++a属于加减在前的情况,此时a自增等于2,然后赋值给b,所以b也等于2
所以最后alert出的结果都是2
希望能帮助到你,有疑问欢迎追问,尽我所能为你解答