可行的JavaScript变量名称

时间:2011-09-12 17:17:17

标签: javascript variables

这是一个两部分问题:一般和具体。

对于将军来说:我经常发现自己想知道JavaScript中可行变量名的构成是什么?我知道有一些“单词”可以在JavaScript中用作变量;但是我还没有看到一个不可行的变量名列表,或者在创建变量名时要应用的规则。如果我不确定,我通常会谨慎行事并使用晦涩的名字。

很高兴知道可以用作JavaScript变量的东西,以及不能使用的东西。

有什么建议吗?

具体:我想知道我是否可以在JavaScript中使用href作为变量名?它是可行的还是保留的?


事后的想法:也许我可以将这个问题扩展到包含JavaScript函数名称。哪些名称可行,哪些是保留的?如果这两个问题是相关的,我会编辑同时问两个问题。

注意:我不是在询问JavaScript变量中可以使用哪些字符;这个问题已经回答here

4 个答案:

答案 0 :(得分:2)

实际上,你可以使用任何类型的名称作为变量名。

不是通过名称引用变量,而是通过数组索引引用它,因为JS中的所有对象属性都可以通过索引*来访问,以及全局变量只是{{{}的属性。 1}}对象。

* 字符串索引可以包含任何类型的字符序列

所以问题反过来可能更多的是“我应该使用保留字作为变量名吗?” 常识会说你不应该,除非这个名字实际上与构造有关,你找不到合适的替代品。

window

警告!

保留字原生功能不同。 虽然在许多情况下您可以使用用作保留关键字的名称作为变量,但实际上可以覆盖本机功能。 例如,Sarris先生提到window['function'] = 2; window['if'] = 4; window['var'] = 8; alert(window['function'] + window['if'] + window['var']); ,(这是一个本地函数而不是保留关键字),你实际上可以通过Node覆盖它。在某些情况下,这已用于实现“包装”或“修补程序”功能,但不保证以跨浏览器方式工作(例如; MSIE的控制台对象)。

答案 1 :(得分:1)

您可以找到reserved words in JavaScript.

的列表

href作为变量名称当然可以,因为hrefa标记的属性,与JavaScript命名无任何冲突。

如果您对变量是否已在使用中有疑问,可以随时打开开发人员工具(在大多数浏览器中为F12),转到控制台,然后输入名称。在这种情况下,你会得到:

> href
x ReferenceError: href is not defined

没有任何东西在使用它,所以你可以毫无问题地使用它。

如果您确实输入了一个保留字,那么就像是踢了一样:

> finally
x SyntaxError: Unexpected token finally

或者,如果它是一个本地但已经被接受的话,它可能看起来像:

> Node
function Node() { [native code] }

(节点已经定义,它是一个原生函数)

答案 2 :(得分:1)

rules用于变量声明(在codelifter上)

href可以使用

答案 3 :(得分:1)

每种编程语言都有保留字的列表。

这些保留字由构成该编程语言的部分组成。

对于JavaScript,forfunctionif之类的内容是保留字,因为它们在本身语言中具有特殊含义。根据经验,您不能将单词重新用作已经具有该特定语言含义的标识符(名称)。

官方语言规范是一个很好看的地方。有关JavaScript,请参阅ECMAScript specification,第7.6.1节(第7.6节。阐明适用于标识符命名的其他规则)。

你的问题是href是否可以在JS中使用,可以通过查看来轻松回答。