Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.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,使用以下语法创建的对象:{prop1:val1,prop2:val2}与使用以下语法创建的对象:{'prop1':val1,'prop2':val2}之间有什么区别 还有,下面的代码是否有效 var val1 = 10, val2 = 15; var tmp1 = { prop1: val1 }; var tmp2 = { 'prop2': val2 }; alert(tmp1['prop1']); // I expect 10 alert(tmp2['prop2']); // I expect

使用以下语法创建的对象:
{prop1:val1,prop2:val2}
与使用以下语法创建的对象:
{'prop1':val1,'prop2':val2}
之间有什么区别

还有,下面的代码是否有效

var val1 = 10, val2 = 15;
var tmp1 = { prop1: val1 };
var tmp2 = { 'prop2': val2 };
alert(tmp1['prop1']); // I expect 10
alert(tmp2['prop2']); // I expect 15


旁白:对不起,我想不出一个更好的题目来回答我的问题。这反映了我缺乏JavaScript知识。

没有任何区别,尽管字符串版本允许您使用无效字符作为标识符

可以使用字符串执行此操作:

{ 'prop-1': val1, 'prop-2': val2 }
但不是作为标识符:

{ prop-1: val1, prop-2: val2 }

是的,这段代码是有效的。

在您的示例中没有区别。如果您的任何属性名称包含空格或特殊字符,或者是:

建议使用以确定JS代码段是否有效
{ prop1 with spaces: val1, 6prop2$-^: val2 } // illegal 
{ 'prop1 with spaces': val1, '6prop2$-^': val2 } // correct