论文的事忙得差不多了,总结一下这段时间面试时的问题
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