概念:
1,不管函数是否申明了形参,在函数内部都可以直接使用arguments对象来直接引用当前调用函数传入的实参;
2,arguments只能在当前调用的函数内部使用;
3,arguments不是一个数组,是一个伪数组对象,类似jQuery对象,可以通过下标访问对象,并且有length属性;
java中判断对象类型:
obj.getClass();
obj instanceof Type
在js中分两种对象
1.基本类型/原生类型/简单类型(通过字面量赋值)
2.引用类型(通过new创建的)
结论:
instanceof只能判断引用类型,如果判断的是基本类型,结果都为false.
typeof 一般用来判断基本类型,如果传入的是引用类型,结果都为object
证明arguments不是数组:
console.log(arguments instanceof Array);
console.log(typeof arguments);
示例代码:
<script>
window.onload = function () {
console.log("加载完成");
show(1,2,3)
};
function show() {
console.log(arguments);
for(var i = 0;i<arguments.length;i++){
console.log(arguments[i]);
}
/*var a = "111";
console.log(typeof a);
console.log(a instanceof String);*/
/*
注意,instanceof只针对对象有效,如果是原生类型,
使用instanceof无效;原生类型只能通过typeof来判断;
*/
/*console.log(typeof arguments == 'object');//typeof比较基本数据类型
console.log(arguments instanceof Array);//instanceof比较引用数据类型*/
}
</script>
网友评论