论文的事忙得差不多了,总结一下这段时间面试时的问题

1.下面的输出结果是什么?

1 var a = [1,2],  b = [3],  c= 6;
2 function test(a1, b1, c1){
3        a1= [];
4        b1[0] = 4;
5        c1= 7;
6 }
7 test(a,b,c);
8 console.log(a, b, c);

这个题能够分清两种数据类型就差不多可以做出来了,数组是引用数据类型,本质是一个对象通过一个地址值被引用,test()没有改变数组a的属性(索引值),也没有改变a引用的对象地址值,所以a不变,输出还是[1,2]

b的索引值发生了改变,相当于改变了它的属性值,所以输出的b变成了4

c是一个Number类型的值,在test()中的操作,实际是把c的值复制了一份拿去操作,不影响本身的值,所以还是6

最终结果是:

[1,2] 4 6

 

posted on 2018-04-24 15:49  会搔耳朵的猫  阅读(169)  评论(1编辑  收藏  举报