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却是字符串连接而不是相加; 展开
var a =prompt("出生年月");
var age=2015-a;
alert("你今年"+age+"岁")
console.log(typeof age) 可以输出age值
var a =prompt("出生年月");
var b = a + 18;
alert("你成年"+ b ) b却是字符串连接而不是相加; 展开
1个回答
展开全部
很简单,你接受到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类型,但是-依然是在做减法运算操作,所以这里就有了隐式的类型转换。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询