prompt输出是字符串为什么可以减不能加

<scripttype="text/javascript">vara=prompt("出生年月");varage=2015-a;alert("你今年"+age+"岁")c... <script type="text/javascript">
var a =prompt("出生年月");
var age=2015-a;
alert("你今年"+age+"岁")
console.log(typeof age) 可以输出age值

var a =prompt("出生年月");
var b = a + 18;
alert("你成年"+ b ) b却是字符串连接而不是相加;
展开
 我来答
小天判定
2017-01-19 · TA获得超过303个赞
知道小有建树答主
回答量:313
采纳率:0%
帮助的人:159万
展开全部
很简单,你接受到a并不是一个int类型的,prompt默认返回的是一个string类型的字符串,所以当a+18的时候已经是在拼接了,所以你首先要把a转化成数字类型,可以使用parseInt(a),然后你的代码应该是var b = parseInt(a) + 8;...
追问
第二个其实我明白,那为什么身为字符串的a在第一个里面却可以被2015减
追答
这是语法问题,var b = a + 18;因为a是string类型,所以编译器默认你的+号是在做拼接,而不是在做加法运算。但是var age = 2015 - a的时候,尽管a是string类型,但是-依然是在做减法运算操作,所以这里就有了隐式的类型转换。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式