-
-
Notifications
You must be signed in to change notification settings - Fork 3.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[js] 第27天 说说你对arguments的理解,它是数组吗? #96
Comments
object like array |
js不能像java一样实现重载, js中每个函数都会有 arguments他的特性和使用方法 特性: 1.arguments对象和Function是分不开的。 2.因为arguments这个对象不能显式创建。 3.arguments对象只有函数开始时才可用。 使用方法: 虽然arguments对象并不是一个数组,但是访问单个参数的方式与访问数组元素的方式相同 例如: arguments[0],arguments[1]... |
arguments并不是一个数组, 但是它有length属性以及可以以下标的形式取值 |
arguments 不是数组,是类数组。
|
用来获取函数参数 es6 显式提供 arguments.callee 在匿名函数中指向这个函数 |
|
严格模式禁用了arguments.callee |
arguments是个伪数组,它有数组的length以及下标取值;但是它不能用数组的一些方法,例如:Array.push()之类的 |
|
一般情况下不会对 |
类数组对象(js权威指南)记得第一次啃书就看的这一节,所以这个名词记得非常清楚 他是一个对象,是类数组对象(js权威指南),他有着和数组几乎一样的api,比如length,自增key,增加一个key自动增加length,使之可以用arg[0]来访问数据 |
是的,目前好像只有这2个情况会产生类数组对象 |
|
[...arguments] |
arguments并不是一个数组, 但是它有length属性以及可以以下标的形式取值 |
arguments是一个类数组对象,只能在非箭头函数内部访问,可以通过Array.from(arguments)将arguments转化为数组,它和数组的区别是除了length和索引访问跟数组一样之外没有push和pop等方法。 |
他是个类数组 |
arguments对象不是一个 Array 。它类似于Array,但除了length属性和索引元素之外没有任何Array属性 1.arguments对象和Function是分不开的。 |
简单来说:
|
arguments是类数组,可以以下标去获取arguments[0],也可以通过Array.from(arguments)或者 Array.prototype.slice.call(arguments)转成真正的数组 |
arguments 是实参列表,它是一个类数组,并不是真正意义上的数组,它拥有length属性,但不能使用数组上的方法,如push,pop,unshift,shift,slice等,arguments.callee 是用来得到函数本身的一种方法,在严格模式下被禁用,通常情况下我们会将arguments转为数组使用,方法如下: |
当我们在函数内部调用时, 尽管 虽然 示例: function sum() {
console.log(arguments); // 输出:[1, 2, 3]
const argsArray = Array.from(arguments);
console.log(argsArray); // 输出:[1, 2, 3]
argsArray.forEach(num => {
console.log(num);
});
}
sum(1, 2, 3); 总结起来, |
不是数组,是类数组对象,可以通过下标访问,具有 length 属性 |
第27天 说说你对arguments的理解,它是数组吗?
The text was updated successfully, but these errors were encountered: