这两个功能有什么区别

时间:2014-11-26 04:39:47

标签: javascript json

任何人请解释两个代码之间的区别。我正在尝试打印 JSON字符串

1) console.log("Hello "+str);

2)

console.log("Hello");
console.log(str);

这是有效的

此代码提供错误 console.log(“Hello”+ str); 将循环结构转换为JSON

为什么会这样。任何人都可以解释一下这两个代码的区别。

编辑:这是我的代码

firstname="hello"; 
lastname= "hhf";
username= "dffflffl";
email="email@hitemai.com
password= "dddd";

var opts = { 
url: 'localhost:8081/register', 
method: 'POST', 
body: JSON.stringify({first_name:firstname,last_name:lastname, user_name:username,email:email,password:password}), 

}; 

谢谢

2 个答案:

答案 0 :(得分:1)

JSON无法处理自引用对象(循环对象图),因此控制台无法打印这样的东西。

> var str = { x : 1}; str.x = str;
> JSON.stringify(str);

TypeError: cyclic object value

答案 1 :(得分:0)

如果str应该是由JSON.stringify生成的JSON字符串,那么如果要转换为JSON的对象具有对自身的引用或具有循环引用的子对象,则会出现该错误

请参阅:Chrome sendrequest error: TypeError: Converting circular structure to JSON