1.如果判断indexOf()==-1的情况:
!~(string.index(‘subString’))
解释:
‘!’是取反的意思。当使用"!!变量"的时候,就是将这个变量布尔化,不过在javaScript的判断 如 if 或 a?b:c中都不要这样做,不过使用布尔化,会显得逼格更高,鲁棒性更强。
‘~’是按位取反,使用时,会将数字加一取反,如~(-1)=(-1+1)*-1,~5=(5+1)*-1,当然机制实际上不是这样的,只不过结果恰好是这样而已。
以下测试均在chrome的控制台下实验:
~(对象)、~(null)、~(undefined)、~(false)=-1;
~(true)=-2
回到正题,当时用indexOf或lastIndexOf的时候,找不到,会返回-1,那么~(-1)=(-1+1)*-1=0,再使用'!'取反则为 !0=true,所以有上面的结论,在程序中虽然可以string.indexOf()===-1来判断,但是使用!~组合会逼格更高,装得一手好逼。
2.parseInt的其二个参数:
其实,这也不算什么装逼,或者属于鲁棒性的范畴。传送门
下次用的时候记得要加第二个参数,不然可能会出现一些莫名奇妙的问题哦~