为什么有的var a= [];时 a.push(1);可以成功执行 而var a= {}不可以
@axetroy 好的
是认真的么?[]是数组,{}是对象,数组有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基础类型有哪些
@LynanBreeze 多谢