Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.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/9/extjs/3.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 - Fatal编程技术网

为什么'@';javascript中保留的符号及其用途是什么?

为什么'@';javascript中保留的符号及其用途是什么?,javascript,Javascript,有人能给我解释一下为什么变量名中不允许使用“@”符号以及我应该使用它做什么吗?它不是保留的或特殊的,只是不是有效的javascript标识符字符。出于同样的原因,这种方法也有效: var @foo = 'bar'; // SyntaxError: missing variable name. { '@foo' : 'bar' }; // SyntaxError: invalid label. var obj = { '@foo' : 'bar' }; obj.@foo; // TypeErr

有人能给我解释一下为什么变量名中不允许使用“@”符号以及我应该使用它做什么吗?

它不是保留的或特殊的,只是不是有效的javascript标识符字符。出于同样的原因,这种方法也有效:

var @foo = 'bar';
// SyntaxError: missing variable name.

{ '@foo' : 'bar' };
// SyntaxError: invalid label.

var obj = { '@foo' : 'bar' };
obj.@foo;
// TypeError: can't convert AttributeName to string

var obj = { '@foo' : 'bar' };
obj['@foo'];
// "bar"
这并不是:

var obj = { 'foo-baz' : 'bar' };
obj['foo-baz'];
有效的javascript标识符必须以字母或
$
开头,并且只能包含字母、数字、
$
。属性名称中的任何其他内容都将强制您使用括号表示法


“。变量名的语法无效。可能是Okay的重复,这很有意义。但是,我知道
-
符号是相减的。
@
有什么作用?@idbehold它与符号的作用无关(
@
在javascript中没有特殊意义,如果您好奇的话)-根据,对象键必须是字符串文本、数字文本或标识符名称。由于标识符名称中不允许使用
@
-
等,因此它们必须用引号括起来才能成为字符串文字。谢谢,先生。完美的解释。
var obj = { 'foo-baz' : 'bar' };
obj.foo-baz;