为什么x.push [0]没有产生错误?

时间:2017-05-17 01:50:05

标签: javascript

我输错了,使用ASP.NET_SessionId代替x.push[0]。但它没有产生错误并返回x.push(0),这让我非常困惑。

test

1 个答案:

答案 0 :(得分:4)

b.push是一个函数,但函数只是另一种值 - []运算符可以尝试访问任何类型的值的属性。但是,如果找不到该属性,结果将是undefined,这就是这里的情况;函数通常没有0属性。

var b = [];
var someFunction = b.push;

console.log('0' in someFunction);  // false; function doesn’t have a 0 property
console.log(someFunction[0]);      // undefined for the same reason

console.log('length' in someFunction);  // true; functions have a length property!
console.log(someFunction['length']);    // 1; just like someFunction.length