一、今天遇到一个面试题,自我感觉是会,但是却做错了。人都是这样,自我感觉良好,其实也就预警自己已经忽视一些细节以及一些自我感知。
面试题:
1 var i=0,j=0,k; 2 for(;i<3,j<5;i++,j++){ 3 k=i+j; 4 } 5 console.log(k);
求k的值,当时想都没想,直接认为是4。但是结果却是8。这是因为什么?都逗号的缘故。
逗号的作用是连接表达式,如果多个表达式:f1,f2,f3.....fn 的时候作为判断条件的时候,最终这个表达式的值是由第n个表达式决定即最后的表达式的值决定。
这就是解释上面的问题。当j等于5的时候表达式:i<3,j<5返回的是false 所以这时候 i,j的值都是4。
注意:
1、js中基本数据类型传递的值。
2、对象类型传递的是地址。