JavaScript函数参数中的'\'含义是什么?

时间:2011-04-19 11:36:38

标签: c# javascript asp.net

我被要求记录一些代码。一些javascript函数传递像

这样的参数
onclick='showhide(<%#String.Format("\"#customer{0}\"",Container.DataItemIndex) %>);'
  1. 代码中“\”的目的是什么?
  2. 他们是一些特殊的逃脱角色吗?如果删除代码,代码会失败吗?

5 个答案:

答案 0 :(得分:8)

他们正在“转义”引号,因此它们可以包含在字符串中。否则,它们会与字符串的开始/结束引号混淆。

http://en.wikipedia.org/wiki/Escape_character

答案 1 :(得分:3)

这看起来不像(纯)JavaScript,而是像生成 JavaScript代码(可能是ASP.NET)的其他语言一样:

假设<%# %>是用于将包含的语句的结果插入到文本中的语言代码,这意味着

的结果
String.Format("\"#customer{0}\"",Container.DataItemIndex)

将写在函数调用的结束括号和左括号之间。

这意味着转义字符\在此处不在JavaScript中使用,而是在宿主语言中使用(可能是C#或VB.NET)。其含义可能与JavaScript相同,但是:它会转义双引号以允许它在字符串文字中表示。

答案 2 :(得分:2)

  
      
  1. 代码中“\”的目的是什么?
  2.   

对我来说似乎是逃避序列。假设这是C#代码,代码中的字符串:

"\"#customer{0}\""

由编译器解释为:

"#customer{0}"

(此包含双引号)

当这是response.written时,输出将变为:

onclick='showhide("#customer_1234");'

答案 3 :(得分:1)

是的,这是一个逃脱角色。

在这种情况下,它正在逃避“角色。

答案 4 :(得分:1)

这是上面代码中使用的转义序列。

以字符串\"编写时相当于"。即,

<%#String.Format("\"#customer{0}\"",Container.DataItemIndex) %>

如果DataItemIndex9

,则

将呈现类似内容

"#customer9"