JavaScript中为何函数对array()与array[]区别处理?tweets(i)失效原因
为什么
tweets(i)执行失败,而tweets[i]能正常运行?顺便聊聊数组相关语法的区别 先解决你代码里的具体问题,这个其实很好理解:
你定义的tweets是一个数组,用的是数组字面量[]创建的:
var tweets=["hi","who","when","where","bye"];
在JavaScript里:
- 圆括号
()是函数调用的语法,只有当某个变量是函数或者方法的时候,你才能用()去调用它,比如alert()、console.log()都是函数调用。但tweets是数组对象,不是可执行的函数,所以你写tweets(i)的时候,JS引擎会报错——它找不到可以调用的函数体,自然运行失败。 - 方括号
[]是数组的索引访问运算符,专门用来读取或修改数组中对应下标位置的元素。比如tweets[0]取第一个元素"hi",tweets[i]就是取下标为i的元素,这完全是数组的标准用法,所以能正常输出内容。
再来说你提到的array()和array[]的区别(先纠正个小细节:JS里标准数组构造函数是大写的Array(),小写的array()不是内置的,除非你自己定义了这个函数):
Array()是JS内置的数组构造函数,用来创建数组实例。比如new Array(3)会生成一个长度为3的空数组,Array("apple", "banana")会生成包含两个元素的数组。不过实际开发中,大家更偏爱用数组字面量[],因为写法更简洁,可读性也更高。[]有两个核心作用:- 作为数组字面量:直接创建数组,比如
[1, 2, 3],这是创建数组最常用的方式。 - 作为索引运算符:访问/修改数组元素,就是你代码里
tweets[i]的用法,通过下标定位到数组里的具体元素。
- 作为数组字面量:直接创建数组,比如
最后再给你划个重点:
- 别搞混
()和[]的用途:()是给函数用的,[]是给数组(还有对象的属性访问)用的。 - 创建数组优先用
[],比Array()更直观不易错。
内容的提问来源于stack exchange,提问作者user276800
相关产品推荐
相关产品推荐

