运行以下 JavaScript 程序段后,变量x的值是_______.var x="4";x+=5; [A]4 [B]5 [C]9 [D]"45"重点是 为什么选D

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 02:18:51
运行以下 JavaScript 程序段后,变量x的值是_______.var x=

运行以下 JavaScript 程序段后,变量x的值是_______.var x="4";x+=5; [A]4 [B]5 [C]9 [D]"45"重点是 为什么选D
运行以下 JavaScript 程序段后,变量x的值是_______.var x="4";x+=5; [A]4 [B]5 [C]9 [D]"45"
重点是 为什么选D

运行以下 JavaScript 程序段后,变量x的值是_______.var x="4";x+=5; [A]4 [B]5 [C]9 [D]"45"重点是 为什么选D
var x="4";x+=5; x = "45";
var x=4;x+="5"; x = 9;
x+=y 就等于 x = x + y 而不是 x = y + x;
请注意二维运算符两边的值,以 第一个数字来判断结果类型.
当然你要问
4 + "cao" =
所以以上过程的实现是
var x="4";x=x+5;
就相当于
var x="4";即初始状态为{值:'4',类型:'string'}
然后x=x+5;即 x = x + (5).toString();
所以是x为"45".
而var x=4;x+="5";
var x=4;即初始状态为{值:'4',类型:'number'}
然后x=x+5;即 x = x + parseFloat("5");
所以是x为9.
再看var x=4;x+="cao";
var x=4;即初始状态为{值:'4',类型:'number'}
然后x+="cao";即 x = x + (isNaN(parseFloat("cao")) "cao".toString() :parseFloat("cao"));
所以请注意这里的"+"号不仅仅是数学上的加号,而且还是javascript的连接符.

D

这里是当做字符串来进行处理的,字符串的+就是拼接运行以下 JavaScript 程序段后,变量x的值是_______。 var x=4; x=6; x+=5; [A]5 [B]9 [C]11 [D]15 这道题是C x=x+5 x=6+5=11 可不可以理解为 这道题因为有了 “” 所以当成字符串处理??var x="4";这句定义x就是一个字符串了,后面的+...

全部展开

这里是当做字符串来进行处理的,字符串的+就是拼接

收起

D

javascript是弱类型语言.
只要你没有显式转换类型, 用+号时,都会认为是字符串拼接.数字变量都会被转化为字符串
x = "4"; x += 5; 最后结果x是45
因为x是一个字符串, 5被换转为字符串
需要显式转换
x = parseInt(x);//转换为int
x += 5; // x == 9

因为如果你把
var x="4";
x = parseInt(x);
//有了这一步x才变成了数字类型,否则他是以字符串去做计算,那么“4”+5 就是两个字符串连接,
//那么结果就是45
//如果x = parseInt(x);
//那么结果就是9