Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么x.push[0]没有产生错误?_Javascript - Fatal编程技术网

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
不能。