为什么我不能分配const但我可以控制台记录它?

时间:2019-03-23 23:21:03

标签: javascript arrays

我做了一些Java脚本练习,让几个链接按字母顺序排列。

这是HTML

  <a href="#"> a is good </a>
  <a href="#"> c is good </a>
  <a href="#"> b is good </a>

JAVASCRIPT:

const allhref= document.getElementsByTagName('a');
for (let index in allhref)
  console.log(allhref[index].innerHTML);
<a href="#"> a is good </a>
<a href="#"> c is good </a>
<a href="#"> b is good </a>

它看起来还不错,但是当我尝试将txt分配给const时,出现了一些错误(未捕获的SyntaxError:意外的令牌const)。这是代码。

const allhref= document.getElementsByTagName('a');
for (let index in allhref)
  alltext = allhref[index].innerHTML;
console.log(alltext);
<a href="#"> a is good </a>
<a href="#"> c is good </a>
<a href="#"> b is good </a>


感谢您的答复。 有点奇怪,我确实在计算机上对其进行了测试,但有错误。 尝试使用其他在线编辑器,没有错误。 这是代码:

  <!DOCTYPE html>
  <html lang="en">
  <head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  </head>
  <body>
    <a href="#">a is good </a>
    <a href="#">c is good </a>
    <a href="#">b is good </a>
  <script type="text/javascript">        
    const allhref= document.getElementsByTagName('a');
    for (let index in allhref)
      const alltxt = allhref[index].innerHTML;
    console.log(alltxt);
    // console.log(allhref[index].innerHTML);
  </script>
  </body>
  </html>

3 个答案:

答案 0 :(得分:2)

const在JavaScript中是不可变的。您不能将新值分配给const。为此,请将const更改为let。

答案 1 :(得分:1)

const的定义是常量。最初分配后,您将无法更改它。请改用let

答案 2 :(得分:-2)

因为您在for循环之后没有使用花括号({}),并且 alltext 参数的作用域为for循环。如果在循环,循环或条件之后多于1行,则应使用大括号。下面的代码正在工作。

  const allhref= document.getElementsByTagName('a');
  for (let index in allhref) {
      alltext = allhref[index].innerHTML;
      console.log(alltext);
  }