Javascript JS对象未定义问题 变量X={ a:[{姓名:约翰,电话:777},{姓名:约翰,电话:777},{姓名:约翰,电话:777}], b:[{姓名:约翰,电话:777},{姓名:约翰,电话:777},{姓名:约翰,电话:777}], c:[{姓名:约翰,电话:777},{姓名:约翰,电话:777},{姓名:约翰,电话:777}], d:[{姓名:约翰,电话:777},{姓名:约翰,电话:777},{姓名:约翰,电话:777}] } var str=JSON.stringify(X); 警报(str);
这个物体怎么了??它警告“未捕获引用错误:未定义john”Javascript JS对象未定义问题 变量X={ a:[{姓名:约翰,电话:777},{姓名:约翰,电话:777},{姓名:约翰,电话:777}], b:[{姓名:约翰,电话:777},{姓名:约翰,电话:777},{姓名:约翰,电话:777}], c:[{姓名:约翰,电话:777},{姓名:约翰,电话:777},{姓名:约翰,电话:777}], d:[{姓名:约翰,电话:777},{姓名:约翰,电话:777},{姓名:约翰,电话:777}] } var str=JSON.stringify(X); 警报(str);,javascript,Javascript,这个物体怎么了??它警告“未捕获引用错误:未定义john” 为什么???你需要引用约翰的名言。否则,它指的是尚未创建的变量/对象: <script type="text/javascript"> var X = { a: [{name:john, phone:777},{name:john, phone:777},{name:john, phone:777}], b: [{name:john, phone:777},{name:john, phone:777},{name
为什么???你需要引用约翰的名言。否则,它指的是尚未创建的变量/对象:
<script type="text/javascript">
var X = {
a: [{name:john, phone:777},{name:john, phone:777},{name:john, phone:777}],
b: [{name:john, phone:777},{name:john, phone:777},{name:john, phone:777}],
c: [{name:john, phone:777},{name:john, phone:777},{name:john, phone:777}],
d: [{name:john, phone:777},{name:john, phone:777},{name:john, phone:777}]
}
var str = JSON.stringify(X);
alert(str);
</script>
如果先前定义了john
,则您的代码将有效:
var X = {
a: [{name:"john", phone:777},{name:"john", phone:777},{name:"john", phone:777}]
...
现在,
john
是一个表示字符串“john”的变量,JSON是有效的。尝试name:'john'
,您希望它是一个字符串
如果只编写john
,它将被解释为查找名为john
的变量(可能包括函数)。因为它找不到具有该名称的变量,所以会说它没有定义
如果值类似于
123-456-78
(将被解释为123减去456减去78),则phone
也是如此。如果只有数字,那么您的解决方案与现在一样好,否则请使用'123-456-78'
更改X,如下所示。对象属性名称应为单引号或双引号。字符串值也应该被引用
var john = "john";
var X = {
a: [{name:john, phone:777},{name:john, phone:777},{name:john, phone:777}]
...
john需要加引号,因为它是字符串而不是变量identifier@meouw您应该让答案而不是注释+1
对象属性既可以表示为普通字符,也可以表示为字符串。
-from。因此,name:'john'
完全正确。
var X = {
a: [{"name":"john", "phone":777},{"name":"john", "phone":777},{"name":"john", "phone":777}],
...
};