js中关于alert的问题
alert(‘1加到3的值是’+1+2+3);alert(1+2+3+“是1加到3的值”);第一行代码弹出的窗口显示:1加到3的值是1+2+3第二行弹出窗口显示:6是1加...
alert(‘1加到3的值是’ + 1 + 2 + 3);
alert(1 + 2 + 3 + “是1加到3的值”);
第一行代码弹出的窗口显示:1加到3的值是1+2+3
第二行弹出窗口显示:6是1加到3的值
为什么第一行没有进行运算啊?求赐教! 展开
alert(1 + 2 + 3 + “是1加到3的值”);
第一行代码弹出的窗口显示:1加到3的值是1+2+3
第二行弹出窗口显示:6是1加到3的值
为什么第一行没有进行运算啊?求赐教! 展开
1个回答
展开全部
第一行弹出的应该是:1加到3的值是123
js中优先级相同的运算符是从左到右计算的。
因为 '1加到3的值是' 这是一个字符串,字符串加数字,就是连接字符串,所以第一次加1的时候,结果就是 '1加到3的值是1' ,再加2,再加3,结果就是 ‘1加到3的值是123’。
但是第二行一开头是数字相加,也就是1+2结果是3,接着加3,结果是6,6再去加上字符串,任何类型与字符串相加,都会转换成字符串的连接,所以是6是1加到3的值。
第一行想要正确,就加上一对括号,改变运算符的运算顺序,也就是
alert('1加到3的值是' +(1+2+3))
这样的话,就能正确运算了。
js中优先级相同的运算符是从左到右计算的。
因为 '1加到3的值是' 这是一个字符串,字符串加数字,就是连接字符串,所以第一次加1的时候,结果就是 '1加到3的值是1' ,再加2,再加3,结果就是 ‘1加到3的值是123’。
但是第二行一开头是数字相加,也就是1+2结果是3,接着加3,结果是6,6再去加上字符串,任何类型与字符串相加,都会转换成字符串的连接,所以是6是1加到3的值。
第一行想要正确,就加上一对括号,改变运算符的运算顺序,也就是
alert('1加到3的值是' +(1+2+3))
这样的话,就能正确运算了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询