Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么var clientPeople=<;%-JSON.stringify(serverPeople)%>;;console.log(客户端人员的类型);作为对象而不是ejs文件中的字符串返回_Javascript_Node.js_Ejs - Fatal编程技术网

Javascript 为什么var clientPeople=<;%-JSON.stringify(serverPeople)%>;;console.log(客户端人员的类型);作为对象而不是ejs文件中的字符串返回

Javascript 为什么var clientPeople=<;%-JSON.stringify(serverPeople)%>;;console.log(客户端人员的类型);作为对象而不是ejs文件中的字符串返回,javascript,node.js,ejs,Javascript,Node.js,Ejs,此代码在ejs文件中运行: 问题是为什么 var clientPeople = <%- JSON.stringify(serverPeople) %>; console.log(typeof clientPeople); //returns as an object not a string var clientPeople=; console.log(客户端人员的类型); //作为对象而不是字符串返回 var clientPeople=''; console.log(客户端人

此代码在ejs文件中运行:

问题是为什么

var clientPeople = <%- JSON.stringify(serverPeople) %>;
console.log(typeof clientPeople); 

//returns as an object not a string
var clientPeople=;
console.log(客户端人员的类型);
//作为对象而不是字符串返回
var clientPeople='';
console.log(客户端人员的类型);

这应该返回字符串

,因为它是一个带有JSON键/值的对象
stringify
不会将整个输出包装在一个字符串中。嗨,Seyi,我不需要它是字符串,我只是想了解为什么JSON.stringify(serverPeople)没有转换为字符串谢谢你的回答,因为它是一个带有JSON键/值的对象。EJS中的stringify将返回JavaScript对象文本,您将其传递到一个变量中,以便在客户端(即浏览器)上处理。因此,这将导致
var clientPeople={“y”:“这是我们从stringify得到的”}。从服务器获取后,这将被视为浏览器上的JS对象文本。我希望你能理解。谢谢你,塞伊,如果我的理解是正确的,请告诉我。是否将返回javascript对象文本?那么这就是ejs的行为了?@Hui,是的,有点,这是因为环境,它是一种服务器语言,可以动态地创建内容供客户端/浏览器处理。
var clientPeople = '<%- JSON.stringify(serverPeople) %>';
console.log(typeof clientPeople);