扫码关注官方订阅号
求解释 :console.log(1+ +"2");输出的是3
走同样的路,发现不同的人生
等同于: 1+(+'2'):+'2' 的 + 是一元操作符,对 '2' 进行Number()操作,转为数字的2,所以等于3
1+(+'2')
+'2'
+
'2'
2
3
对于非数值应用一元操作符,该类型会像Number()转型函数一样对这个值执行转换。《JavaScript高级程序设计P38》
http://javascript.ruanyifeng.com/grammar/conversion.html2.3 自动转换为数值 当JavaScript遇到预期为数值的地方,就会将参数值自动转换为数值,转换规则与“强制转换为数值”相同。 除了加法运算符有可能把运算子转为字符串,其他运算符都会把两侧的运算子自动转成数值。 '5' - '2' // 3 '5' * '2' // 10 true - 1 // 0 false - 1 // -1 '1' - 1 // 0 '5'*[] // 0 false/'5' // 0 'abc'-1 // NaN 上面都是二元算术运算符的例子,JavaScript的两个一元算术运算符——正号和负号——也会把运算子自动转为数值。 +'abc' // NaN -'abc' // NaN +true // 1 -false // 0
http://javascript.ruanyifeng.com/grammar/conversion.html2.3 自动转换为数值 当JavaScript遇到预期为数值的地方,就会将参数值自动转换为数值,转换规则与“强制转换为数值”相同。
除了加法运算符有可能把运算子转为字符串,其他运算符都会把两侧的运算子自动转成数值。
'5' - '2' // 3 '5' * '2' // 10 true - 1 // 0 false - 1 // -1 '1' - 1 // 0 '5'*[] // 0 false/'5' // 0 'abc'-1 // NaN
上面都是二元算术运算符的例子,JavaScript的两个一元算术运算符——正号和负号——也会把运算子自动转为数值。
+'abc' // NaN -'abc' // NaN +true // 1 -false // 0
2被前边的加号转换了。应该是js在运算的时候如果两边类型不相符,会尝试转换
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
等同于:
1+(+'2')
:+'2'
的+
是一元操作符,对'2'
进行Number()操作,转为数字的2
,所以等于3
2被前边的加号转换了。应该是js在运算的时候如果两边类型不相符,会尝试转换