为什么可以';我命名一个JavaScript函数';函数';?

为什么可以';我命名一个JavaScript函数';函数';?,javascript,function,Javascript,Function,我有一个输入按钮,当用户点击时,它应该改变背景。这里怎么了 <input type="button" value="" onclick="function()" id="sqr1" /> <script> var vsqr1 = document.getElementById("sqr1"); function function() { vsqr1.style.backgroundColor = "#000"; } </script> v

我有一个输入按钮,当用户点击时,它应该改变背景。这里怎么了

<input type="button" value="" onclick="function()" id="sqr1" />

<script>

var vsqr1 = document.getElementById("sqr1");

function function() {
    vsqr1.style.backgroundColor = "#000";
}


</script>

var vsqr1=document.getElementById(“sqr1”);
函数函数(){
vsqr1.style.backgroundColor=“#000”;
}

函数
不是函数的有效名称;将代码更改为:

<input type="button" value="" onclick="changeColor()" id="sqr1" />

<script>

var vsqr1 = document.getElementById("sqr1");

function changeColor() {
    vsqr1.style.backgroundColor = "#000";
}


</script>

var vsqr1=document.getElementById(“sqr1”);
函数changeColor(){
vsqr1.style.backgroundColor=“#000”;
}

“函数”是一个保留字。您不能将其用作函数名。

您不能调用函数,因为当您执行onclick=function()时,它看起来像一个匿名函数(您可以将脚本放入其中),请将该函数重命名为更有意义的函数,它将起作用:-)

这里已经有几个人找到了正确的答案,但为了进一步解释:

什么是保留字?

大多数编程语言留出(或“保留”)一个简短的单词列表,不允许将它们用作变量名。有时这些也被称为“关键字”

它们为什么存在?

在编程语言中,它们被赋予了特殊的含义,编译器或解释器会专门监视它们,以便解析代码。此外,使用这些单词作为变量名会使代码很难为人类阅读!(理论上可以设计一种不需要保留字的语言,但这会使解析器的实现复杂化,并产生一些令人困惑的代码)

在哪里可以使用保留字?

在JavaScript中,不能将关键字用作变量名,但可以将其用作对象属性的名称。那么比如说,

var delete = {foo: 3}; // Forbidden
var foo = {delete: 3}; // Allowed
Javascript中的保留字是什么?

从ECMAscript 6规范开始,JavaScript中的

  • 等待
  • 中断
  • 案例
  • 阶级
  • 抓住
  • 常数
  • 继续
  • 调试器
  • 违约
  • 删除
  • 否则
  • 枚举
  • 出口
  • 延伸
  • 最后
  • 为了
  • 作用
  • 如果
  • 进口
  • 瞬间
  • 新的
  • 返回
  • 超级
  • 开关
  • 这个
  • 试一试
  • 类型
  • 变量
  • 空虚
  • 屈服

函数
是一个关键字,不能将其用作函数名。使用不同的名称,如
changeColor
等。想象一下给你的狗取名为“where is”,每当你问别人哪里在哪里时,你认为他们会理解你吗?不,他们不会。如果你给一个函数命名,javascript也不会理解你的意思。当我看到这篇文章的标题时,我只是笑了。)我的五段代码,一些我见过的最可怕的代码是用javascript编写的。我至少很高兴函数不能用来命名函数我想你提出这样一个问题,感觉很不自在。我建议你试着用意大利语写它:)你将能够生成一个名为function的函数,但是用另一种语言。