javascript - 在多行变量声明的第一行末尾写入逗号会在 Javascript 中引发错误

标签 javascript jquery frontend variable-declaration web-frontend

我在我正在处理的应用程序中编写了以下变量声明

var $currentPage = $(".js-page") 
        $form = $("#new_location"),
        $body = $("body"),
        $submit = $form.find(".js-submit"),
        $elevationAngleKnob = $(".js-knob-elevation-angle"),
        $sunbathingTimeKnob = $(".js-knob-sunbathing-time"),
        $sunbathingStartKnob = $(".js-knob-sunbathing-start"),
        $sunbathingEndKnob = $(".js-knob-sunbathing-end"),
        $currentTimeKnob = $(".js-knob-current-time"),
        $nearestTimeKnob = $(".js-knob-nearest-time"),
        $editLocationForms = $(".edit_location");

如果我不以逗号结束声明的第一行,代码就可以正常工作。

如果我用逗号结束第一行(人们可能认为这是正确的),那么我会得到这个奇怪的错误:

Uncaught ReferenceError: $elevationAngleKnob is not defined

您认为问题出在哪里?

最佳答案

我怀疑您正在尝试在与这些变量声明不同的函数中使用$elevationAngleKnob。当您在第一行末尾添加逗号时,所有这些变量都是局部变量,如果您尝试在另一个函数中访问它们,您将收到错误。如果没有逗号,自动分号插入会将其更改为:

var $currentPage = $(".js-page");
$form = $("#new_location"),
    $body = $("body"),
    $submit = $form.find(".js-submit"),
    $elevationAngleKnob = $(".js-knob-elevation-angle"),
    $sunbathingTimeKnob = $(".js-knob-sunbathing-time"),
    $sunbathingStartKnob = $(".js-knob-sunbathing-start"),
    $sunbathingEndKnob = $(".js-knob-sunbathing-end"),
    $currentTimeKnob = $(".js-knob-current-time"),
    $nearestTimeKnob = $(".js-knob-nearest-time"),
    $editLocationForms = $(".edit_location");

这将 $currentPage 声明为局部变量,其他所有内容都是对全局变量的赋值,并以逗号运算符分隔。

关于javascript - 在多行变量声明的第一行末尾写入逗号会在 Javascript 中引发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31665591/

相关文章:

javascript - 如何将没有特定事件的函数绑定(bind)到动态添加的元素?

javascript - 如何避免 "this"引用DOM元素,引用对象

javascript - 停用模态后如何停止YouTube视频?

javascript - 在引导的 Firefox 扩展中设置全局错误处理程序

javascript - 通过 json 发送 3 个变量未正确发送

Javascript 在手机上缩小

jquery - 为什么 JQuery $.grep() 不能与选择器一起使用?

python - Django - 按钮网址

javascript - 在 Yii 上缓存静态文件

css - 在 Bootstrap 类上使用自定义 css 是坏习惯吗?