论JS (a == 1 && a == 2 && a==3)条件成立的七种方法,抛砖引玉

JavaScript015

论JS (a == 1 && a == 2 && a==3)条件成立的七种方法,抛砖引玉,第1张

还有其他的衍生方法,硬写的话论条件成立的100种方法都有可能。。。以上的实现基本是分成两大类,一种是转化成字符串,另外一种数据劫持。大家还有其他的思路实现请告诉我。

Symbol.toPrimitive 是一个内置的 Symbol 值,它是作为对象的函数值属性存在的,当一个对象转换为对应的原始值时,会调用此函数。

Symbol.toPrimitive MDN介绍: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Symbol/toPrimitive

a=2

s=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

希望能帮助到你,有疑问欢迎追问,尽我所能为你解答