diE*_*cho 27 javascript operator-overloading
我在关于SO的问题上阅读了以下内容:
'7'+ 4给出'74',而'7' - 4给出了JavaScript
为什么会这样?
cle*_*tus 30
+是串连接操作,所以当你做'7' + 4你强迫4转换为字符串并将其附加.-操作员没有这种模棱两可的态度.
如果您想明确使用parseInt()或parseFloat():
parseInt('7', 10) + 4
Run Code Online (Sandbox Code Playgroud)
为什么将基数指定为10?因此'077'不会被解析为八进制.
And*_*ndy 24
'+'运算符是为字符串和数字定义的,所以当你将它应用于字符串和数字时,数字将被转换为字符串,然后字符串将被连接:'7'+ 4 =>'7' +'4'=>'74'但' - '仅为数字而非字符串定义,因此字符串'7'将转换为数字:'7' - 4 => 7 - 4 => 3
Del*_*ani 16
该+运营商在JavaScript中超载进行级联和加法.JavaScript确定要执行哪个操作的方式基于操作数.如果其中一个操作数不是类Number(或number基本类型),则两者将被转换为字符串以进行连接.
3 + 3 = 6 3 + '3' = 33 '3' + 3 = 33 (new Object) + 3 = '[object Object]3'
该-运营商,然而,这只是对数字,因此操作数总是在操作过程中被转换为数字.
| 归档时间: |
|
| 查看次数: |
1726 次 |
| 最近记录: |