javascript - 在 Javascript 中定义变量时使用 var 关键字

标签 javascript html

我在这里阅读了一些关于在定义新变量时使用 var 关键字的文章。这些帖子提到如何在函数中使用 var 创建具有局部范围的变量,而不使用 var 关键字创建具有全局范围的变量。大多数帖子建议始终使用 var。我有几个问题:

  1. 我正在学习 JS,我正在尝试编写一个脚本来计算按钮被点击的次数(请参阅下面的代码)。如果在函数 totalClickselse 部分我使用 var numclicks = 1; 那么下面的代码就不起作用了。如果我省略 var 关键字,它就可以工作。这是因为要使代码正常工作,numclicks 需要是一个全局变量,还是有其他原因?这是应始终使用 var 规则的异常(exception)情况,还是有另一种编程方式。

  2. 第一次点击按钮时,输出为NaN。我不清楚为什么它不是 1?按照代码的逻辑,变量似乎在写入文档之前设置为 1。我知道如果我在函数语句之前添加 numclick = 0; ,这个问题就会得到解决。但我不清楚为什么这样可以解决问题。

非常感谢您的帮助。

代码

<html>
<head>
    <title>Count number of clicks</title>
</head>
<body>

    <form>
        <input type="button" value="click here" onclick="totalClicks();">
    </form>

Total clicks: <span id="numclicks"></span>

    <script type="text/javascript">
        function totalClicks(){
            if (window.numclicks) {
                numclicks++;
            }
            else {
                numclicks = 1;
            }

            document.getElementById("numclicks").innerHTML = numclicks;

        }
    </script>

</body>
</html

最佳答案

  1. 第一次定义 numclicks 时,它需要在任何函数之外,这样它才能成为全局的。使用 var 同时仍在函数内定义变量不会使其成为全局变量。在函数内对全局变量使用 var 会使它成为局部变量。

  2. 您有一个 ID 为 numclicks 的元素,因此 window.numclicks 默认指向该元素。

关于javascript - 在 Javascript 中定义变量时使用 var 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8548468/

相关文章:

javascript - jstree - 通过 ajax 加载上下文菜单

javascript - json 劫持与 IE>10 或 chrome >30 相关吗?

php - Onclick 返回确认在 Jquery Mobile 中不起作用?

html - 如何定义宽度并使用最大宽度

html - 将鼠标悬停在另一个元素上时如何更改元素的颜色?

javascript 动态生成的表与 onclick 事件无法正常工作

javascript - 应用图像过滤器加载 fabric.image 的 fabric js 子类

javascript - 使用 SVG 的线性双色平滑和锐利渐变

javascript - 无法在小部件撇号中保存图像

javascript - 上传前图片预览-IOS