189 8069 5689

JS的几个小测试错题改错

  1. 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

其他资讯