var a=[]和var a={} 有什么不同啊
发布于 1 个月前 作者 heguangda 1150 次浏览 来自 问答

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

JBLHM(}PA3`ISCYYKJ~Q2QY.png

9 回复

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

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

来自酷炫的 CNodeMD

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

var a = [];

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

var b = {}

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

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

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

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

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.

typeof 不能用来区分对象和数组,[] instanceof Array来判断是否为数组。你可以先学下js基础类型有哪些

回到顶部