javascript - 求解释 :console.log(1+ +"2");输出的是3
怪我咯
怪我咯 2017-04-10 16:01:07
[JavaScript讨论组]

求解释 :console.log(1+ +"2");输出的是3

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(3)
PHP中文网

等同于: 1+(+'2')
+'2'+ 是一元操作符,对 '2' 进行Number()操作,转为数字的2,所以等于3


对于非数值应用一元操作符,该类型会像Number()转型函数一样对这个值执行转换。《JavaScript高级程序设计P38》


迷茫

http://javascript.ruanyifeng.com/grammar/conversion.html
2.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中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号