学习JS时候发现的:
<input type="text" value="1" id="plus">
获取到value值,类型是String。然后不进行值类型转换,直接进行自增,得到的结果却是Number型的2
,按理说应该是'11'
才对
console.log(document.querySelector('#plus').value);
原因是++
,--
都是做值自增,值自减
以 i++ 为例
都知道,i++
表示i = i + 1
如果i
为Number 类型,比如 i = 1
,结果二者并无异同,自然都是数字2
关键是,如果 i
是 String 类型,例:i = '1'
,
- 对于
i = i + 1
,结果会变为'11'
,涉及到隐式转换,+
的作用就表现为字符串间的拼接 - 而
i++
,表示i = i + 1
,按i = i + 1
逻辑上一推理,最终结果也应该是'11'
,但是结果却是2
!这是因为i++
做的是值自增