我正在尝试学习Javascript。我遇到了以下代码。
// Random function.
function order_summary(order_object) {
var x, y;
// More code here.
}
当我在Jslint中运行此代码时,它会给我以下错误。
Expected ';' and instead saw ','.
var x, y;
我发现此代码没有任何问题。任何人都可以解释这个错误意味着什么吗?
答案 0 :(得分:3)
两种风格之间有一个非常重要的区别:
var l1 = 1,
l2 = 2;
和
var l1 = 1;
var l2 = 2;
即:在第二种形式中,调试器可以逐个逐步执行每个任务。
在第一种形式中,整行是一个大型表达式,调试器尝试立即执行它。当您具有依赖于早期操作的分配时,逐行方法非常有用。
答案 1 :(得分:2)
Jslint是一种样式执行工具,不喜欢在一行上声明多个变量。要修复它,只需在每一行上声明每个变量。 e.g。
var x;
var y;
jslint不喜欢这个的原因是因为javascript有分号插入。所以如果你不小心省略了这样的逗号:
var x
y = 10;
JS会在第一行的末尾插入分号,你会意外地创建一个全局变量y。
答案 2 :(得分:0)
在任何javascript运行时使用单个var声明多个变量根本不是问题。这只是JSLint抛出的警告,因为默认情况下它建议每行1个var。
如果您选中“Tolerate ..”下的“multiple vars”选项,则会忽略此警告。