var a=[]和var a={} 有什么不同啊
 发布于 7 年前  作者 heguangda  7371 次预览  最后一次回复是 7 年前  来自 问答 

为什么有的var a= [];时 a.push(1);可以成功执行 而var a= {}不可以

JBLHM(}PA3`ISCYYKJ~Q2QY.png

8 回复
axetroy

先别急着想造坦克,飞机,大炮。

看一看JavaScript的基础,基本类型

来自酷炫的 CNodeMD

zhunrong

是认真的么?[]是数组,{}是对象,数组有push方法,对象没有。初次在这里逛,竟然遇到这个问题。至少也要看看书啊

PanZhangOne
var a = [];

变量a为字面量创建的数组,继承Array.prototype原型链

var b = {}

变量b为字面量创建的对象,继承Object.prototype原型链

数组的原型链上有push方法,而对象没有

Zzzzzzj

一个是array,一个是object,这是javascript中的类型问题吧

heguangda

@Zzzzzzj 但是我用typeof查看大家都是object类型的呀

LynanBreeze

typeof()用于判断"number"、“string”、“boolean”、“object”、“function” 和 “undefined" 对象,数组和null返回 “object” ,函数返回"function”

判断是不是数组使用instanceof 例如

var arr = []; console.log( arr instanceof Array) true

In the Java programming language, arrays are objects (§4.3.1), are dynamically created, and may be assigned to variables of type Object (§4.3.2). All methods of class Object may be invoked on an array.