'变量'有属性吗?

时间:2013-05-25 04:11:06

标签: javascript variables

变量是否具有属性?

显而易见的答案应该是否定的。如果我尝试将属性分配给变量,则应该给出错误。正确?

如果我这样做:

 var someVariable = 'Cat';
 someVariable.eyes = 'two';   //Gives no error!

alert(someVariable.eyes);     // alerts 'undefined' instead of giving an error!

2 个答案:

答案 0 :(得分:3)

变量没有属性,但是没有。 (如果值是一个对象,无论如何。) 在这种情况下,您尝试设置eyes当前引用的字符串的someVariable属性。

但是,在这种情况下它不起作用。由于原始值没有属性,JS会将原始字符串值转换为对象,并在该对象上设置属性,这几乎立即被静默丢弃。最终结果:原始字符串保持不变。

答案 1 :(得分:1)

“变量”实际上并不存在(除了严格地在范围的定义内),只有对象。并且字符串对象默认情况下不能分配任意属性。