在多行变量声明的第一行末尾写一个逗号会在 Javascript 中引发错误
Writing a comma at the end of the first line of a multi-line variable declaration throws an error in Javascript
我在我正在处理的应用程序中编写了以下变量声明
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
为局部变量,其他都是对全局变量的赋值,用逗号分隔。
我在我正在处理的应用程序中编写了以下变量声明
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
为局部变量,其他都是对全局变量的赋值,用逗号分隔。