js中函数的参数传递是值传递还是引用传递?怎么判断参数的类型? 财富值8

2016-11-01 11:59发布

function initarr(n){     var arr = [];     for(var i=0;i<n;i++){         arr[i] = parseFloat(prompt("第"+(i+1)+"个数"));     }     return arr; } function sumAndAvg(arr){     var sum = 0;     var avg = 0;     for(var i in arr){         sum = sum+arr[i];     }     avg = sum/arr.length;     document.write("sum = "+sum);     document.write("avg = "+avg); }

一个简单的函数,比如我在此刻定义一个
var a = 10;
sumAndAvg(a);
实际函数是想要一个数组的参数的,但是这种情况下怎么判断穿进去的参数是什么类型?
这样的设计有什么优点或者有什么缺点应该怎么克服呢?

9条回答
段曼 - 我很好
2016-11-01 11:51

原生不检查参数类型,这是由于js是弱数据类型的语言。
一般情况下,js作为浏览器端的支持的时候,输入参数类型是写代码的人预先就想好的了,所以一般不会出现这种问题。但是如果涉及用户输入或者交互产生数据的时候,就有可能会出现题主的情况。
做法就是通过自定义方法判断数据类型之后在进行处理。
下面是几个类型判断的方法,抛砖引玉:

一周热门 更多>