JS的几个小测试错题改错
- var a=3;
var b=2;
var c=a+++b;
c的值为(5),a的值为(4)
算法过程:a=3 b=2 c=a+++b;
a++后,a=4,但a不参与预算,所以c=a+b=3+2=5;
其实将计算式改成:c=a+b,a++之后更能理解。
2.var a=2,b=1,c=3;
if(aif(b<0)c=0;
else c++;
console.log(c);
c的值为(3);
很惭愧这道题我又做错了,下来想了想,对自己想说句:“妈的!智障。”
解析:var a=2,b=1,c=3;
if(a{ if(b<0)c=0;}
else {c++;}
console.log(c);
c的值为(3);凡是有点编程基础的一目了然,不解释了,丢脸了。
3.var i=0;
if(i=10)
{
document.write(1);}
else{
document.write(0);
}
结果:1
分析:var i=0;
if(i=10)//赋值语句并非判断语句
{
document.write(1);}
else{
document.write(0);
}
然后都懂了吧。是不是有人也和我一样,马马虎虎做完,看完结果一脸懵逼。
4.var arr=[2,3,4,5,6]
var sum=0;
for(var i=1;isum+=arr[i];
sum--;
}
console.log(sum);
结果:14
分析:首先arr的长度为5,再者它是从1开始循环的并非从0开始,所以只循环4次,而且是从arr[1]=3开始的,并不是arr[0]=2开始的。屡清楚这些那一切都好做了,每次相加减一,循环四次。结果:14;
5.var x=1,y=z=0;
function add(n){
n=n+1;
}
y=add(x);
function add(n){
n-n+3;
}
z=add(x);
x,y,z的结果为:1 未定义 未定义
解析:var x=1,y=z=0;
function add(n){
n=n+1;
}//无返回值
y=add(x);//参数传入正确,但函数并没有返回值,为空,所以y显示未定义
function add(n){
n-n+3;
}
z=add(x);//参数传入正确,但函数并没有返回值,为空,所以z显示未定义
当前文章:JS的几个小测试错题改错
转载注明:
http://jkwzsj.com/article/ppoide.html