Javascript 为什么x.push[0]没有产生错误?
我打错了,用Javascript 为什么x.push[0]没有产生错误?,javascript,Javascript,我打错了,用x.push[0]代替x.push(0)。但它并没有产生错误,并且返回了未定义的,这让我非常困惑 b.push是一个函数,但函数只是另一种值,[]操作员可以尝试访问任何类型值的属性。但是,如果找不到该属性,结果将是未定义的,这里就是这种情况;函数通常没有0属性 var b = []; var someFunction = b.push; console.log('0' in someFunction); // false; function doesn’t have a 0 pr
x.push[0]
代替x.push(0)
。但它并没有产生错误,并且返回了未定义的
,这让我非常困惑
b.push
是一个函数,但函数只是另一种值,[]
操作员可以尝试访问任何类型值的属性。但是,如果找不到该属性,结果将是未定义的
,这里就是这种情况;函数通常没有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
x、 推送是一种功能。。。在javascript中,函数也是对象。。。[0]访问对象上名为
0
的属性,没有这样的属性不是错误,它只返回未定义的。。。因此,没有错误我更喜欢你的措辞,因此我将删除我的答案,以支持你的答案。但是为什么someFunction.0
将返回未标记的语法错误:意外数字
?@Tina:对属性使用点访问时,属性名称不能以数字开头。类似地,[1,2,3][0]
可以工作,但是[1,2,3].0
不能。