Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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中的字符?_Javascript_Jquery - Fatal编程技术网

&引用@&引用;javascript中的字符?

&引用@&引用;javascript中的字符?,javascript,jquery,Javascript,Jquery,最近我在一个网站上发现了一些有趣的代码 <div class="inputArea"> <textarea type="text" id="textInput" class="chatInput lightBorder"></textarea> </div> <a href="javascript:;" class="chatSend" click="sendMsg@.inputArea"><b>Send<

最近我在一个网站上发现了一些有趣的代码

 <div class="inputArea">
    <textarea type="text" id="textInput" class="chatInput lightBorder"></textarea>
</div>

<a href="javascript:;" class="chatSend" click="sendMsg@.inputArea"><b>Send</b></a>

当我点击“发送”按钮(这是一个超链接,但它看起来像页面上的一个按钮)时,它将触发js代码“sendMsg@.inputArea“。它所做的是将文本区域中的消息发送到服务器。它的行为就像sendMsg是一个函数,而.inputArea是传递给该函数的参数。但它似乎没有遵循EMAC标准。然而,它是有效的。怎么可能呢?现在对我来说,这就像是黑魔法。有人能解释一下@字符在代码中是如何工作的吗?

更新的答案 …现在您已经展示了您认为的“JavaScript代码”

这不是JavaScript代码:

<a href="javascript:;" class="chatSend" click="sendMsg@.inputArea"><b>Send</b></a>
<!-- Not JavaScript Code ----------------------^^^^^^^^^^^^^^^^^^          -->


*这就是说,JavaScript对您可以在IdentiferName中使用的字符非常开放,因此虽然不允许使用
@
,但我不能绝对保证没有其他看起来有点像它的Unicode字符。但我怀疑不是这样,因为没有列出任何可能与
@

@混淆的字符,这在JavaScript中一点也不特别,除了它在标识符中无效这一事实之外——例如,不能将它用于函数名和变量名。您不能用javascript声明自定义运算符,因此除非您与构建该站点的人交谈,否则无法知道他们对字符串中的@做了什么


另一方面,许多特殊字符在JS中都是有效的,因此如果需要,可以将函数命名为$,787;甚至是q̊u̐e̜rͅy̎。但是@不是其中之一。

很抱歉我不清楚这个问题,现在我编辑了它。“守则”sendMsg@.inputArea“似乎启动了一个功能。在该函数中,一个AJAX post被发送到服务器。但是,由于函数名中不允许使用@,它怎么可能工作呢?@KehanWang:您所指的不是JavaScript代码。我已经相应地更新了答案。谢谢。你能说得更具体些吗?当我点击按钮时,浏览器是如何理解该做什么的?@KehanWang:它读取属性,然后用它做一些事情。就这些。我认为不值得我(或你)深入研究他们的代码,看看他们用它做了什么;基本上,它只是他们自定义系统中的一个标识符,而不是JavaScript代码。
var obj = {"SendMsg@": "foo"};
console.log(obj["SendMsg@"]); // "foo"