在Javascript中,为什么需要用'';,但如果它未链接到对象,则不会?

在Javascript中,为什么需要用'';,但如果它未链接到对象,则不会?,javascript,razor,syntax,parameter-passing,Javascript,Razor,Syntax,Parameter Passing,例如,请参见此问题及其答案: . 答案是正确的,但没有澄清原因,我想理解。如果传递的参数是例如var b=1 或者var b=“xpto”它可以工作,但是如果它是var b=@object.Name 返回“xpto”,它需要周围的”。有什么解释吗?谢谢。这与JavaScript语法有关 如果你写: console.log(foo); console.log('foo'); 您将得到:uncaughtreferenceerror:foo未定义 如果你写: console.log(foo);

例如,请参见此问题及其答案: . 答案是正确的,但没有澄清原因,我想理解。如果传递的参数是例如
var b=1
或者
var b=“xpto”
它可以工作,但是如果它是
var b=@object.Name

返回“xpto”,它需要周围的
。有什么解释吗?谢谢。

这与JavaScript语法有关

如果你写:

console.log(foo);
console.log('foo');
您将得到:
uncaughtreferenceerror:foo未定义

如果你写:

console.log(foo);
console.log('foo');
它将打印
foo


重要的是要认识到razor在服务器上运行,因此您的浏览器看到(并输入JavaScript)的内容是:


而不是

<a href="#" onclick="Edit('@Interest');">edit</a>

1)作为指导,不要向基于页面的JS代码中注入值。有太多问题了。将数据属性插入到页面中。2) 按照您的方式,它将注入值(不带引号),而您需要在Javascript中使用字符串文字
@object.Name
不返回
“xpto”
它实际上只返回
xpto
(引号由调试器添加以显示-因此您知道它是一个字符串)。谢谢。我还喜欢@TrueBlueAussie在评论中提供的见解。