记录--JS隐式类型计算

//如果一个为string,则将另一转换成string,再字符串拼接
//如果对象为{} [] 则将两个转换成字符串string,再拼接
[]+[]          =""
[]+{}          ="[object Object]"
{}+[]          =0     //js把{}当成一个代码块,so:{}+[]=+[]=0 

//js中+和-开头的的变量会被转换成Number类型,不是number类型的会转成NaN
+[]            =0
+{}            =NaN
+""            =0
+"a"           =NaN
{}+{}          ="[object Object][object Object]"
true+true      =2

//先计算第二个操作数,再取非
!+0 =true !+[] =true //先计算+[]=0 而!0=true (非0等于true) !+1 =false //非1为false !+2 =false //boolen与[]或{}相加时,转换成字符串再拼接 1+[] ="1" 反之同理 true+[] ="true" 反之同理 1+{} ="1[object Object]" true+{} ="true[object Object]" 1+{a:1} ="1[object Object]"

  附加: return this.srcFileList.slice(index).concat(this.srcFileList.slice(0, index)) 返回一个数组,不会改变原有数组结构。(用于el-image组件大图预览定位当前图片)

原文地址:https://www.cnblogs.com/qlnx/p/13994571.html