在js中定义了一个键值对数组,不遍历的情况下我直接alert这个数组名称,为甚么输出结果是[object object]?

例如:
document.onload=function()
{
var person={"name":“张三”,“gender”:"男"};
alert(person);

}

输出结果是:
[object object]

而且不管person里有多少键值对输出结果都是[object object]

求大神给小弟我分析一下 最好详细点 在此谢谢了

第1个回答  2012-09-08
这是toString()的结果啊~
你要是改成这样:

var person={"name":“张三”,“gender”:"男"};
person.toString = function(){
return '{"name":“张三”,“gender”:"男"}';
}
alert(person);

你看看什么结果?追问

谢谢你的回答! 我知道你的这种写法 ,相当于把tostring重写了,对吧?
但是我想知道是键值对数组里面到底存放的是什么类型的,如果是object类型的 为什么输出的不是 object , 而是 [object
object],这种形式到底是怎样理解的?希望你能给我解答。。。。。。。

追答

你说的是typeof的'object'吧。
还有浏览器不同,输出的也不一样的,你试试?

追问

谢谢 让我试试。

在js中定义了一个键值对数组,不遍历的情况下我直接alert这个数组名称...
return '{"name":“张三”,“gender”:"男"}';} alert(person);你看看什么结果?

js怎么输出数组
可以用alert函数看里面的值的 但是必须用for循环 var array = ["1","2","3","4"]; \/\/your array here for(count=0;count<array.length;count++){ alert(array[count]);} 或 <!DOCTYPE HTML> menu console.log(target) ...

js一个对象数组,如何在不知道KEY的情况下取到值
alert("第一个内容id:" + obj["data"]["data"][0]["question"]);} {"return_code":0,"return_message":"success","data":{"data":[{"id":"1","question":"公主令牌在哪交?"},{"id":"2","question":"公主护使有什么用?"},{"id":"3","question":"角斗场在哪?"...

JS中一个字符串如“[{},{},{}]”所示,大括号中是JSON键值对,请问 这个...
var obj= arr[i];}

该js中为什么 alert(1);一直不执行?
js 代码是从上往下执行 也就是说 下面的代码会覆盖上面同名的代码 你开始定义了一个叫 getName() 的方法 弹出 alert(1), 声明了方法,没有调用 然后 你写了个 var getName; 给他赋值了一个方法 弹出 alert(2)最后 你调用了这个变量 这个变量 也是个方法 跟上面的 同名了,下面的方法就...

js在控制台输出语句的方法是(js在控制台输出语句的方法是什么意思...
在4、脚本里,直接调用刚才的方法,当页面打开后,就会直接执行。5、打开浏览器的开发者工具,点击‘控制台’。6、在这里就可以看到输出的结果了,可以看到这个结果就是一个数组。7、点击展开这个数组,可以看到数组每一项的内容。js调试的时候怎么在console中输出信息用函数console.log(...)函数原型是:...

这是一个js的弹窗,我想要知道调用alert的位置,如何做。跪求大神赐招...
如此就会影响到后续操作中出现的新提醒内容。所以,通常网站内部提醒消息(如题主所给弹窗)是一个自定义弹窗,是JS生成的新dom元素,在该产生提醒时才显示在网页内。因此不能通过查找alert来定位弹窗调用位置,而且也很难猜测自定义弹窗的方法名。如果想查找该弹窗位置,建议在弹窗范围内点右键,选择“...

js的常用输出方式?
首先要对数组理解,数组不是内建的类型,编译器没有办法知道你这个数字到底是什么东西。当然,你可以用指针法输出,或者使用标准库中的迭代器。但实质上都是一个循环,不循环是没有办法的。);}定义数组arr,里面共有5个值,然后用forin循环把它的值遍历出来!主要就是forin循环这里,理解它就好,不...

js怎么循环出变量,然后一个个储存到数组中?
.cname = "jim";alert(dd[2].cname);2、下面输出结果是0,而不是1,是因为数组元素dd[0],dd[1],dd[2],dd[3]对应的内存地址都不同,互不干扰。var dd = [];var a = 0;for (var i = 0; i <4; i++) { dd[i] =a;}dd[0]=1;alert(dd[2]);希望对你有帮助!

js 中问下如何定义一个日期变量并获得这个变量的年份
var d = new Date();alert(d.getFullYear());\/\/ 2013

相似回答