java中多个变量声明_在JavaScript中声明多个变量

在JavaScript中,可以这样声明多个变量:

var variable1 = "Hello World!";

var variable2 = "Testing...";

var variable3 = 42;

...或像这样:

var variable1 = "Hello World!",

variable2 = "Testing...",

variable3 = 42;

一种方法比另一种方法更好/更快吗?

#1楼

这样操作时,它的可读性更高:

var hey = 23;

var hi = 3;

var howdy 4;

但是这种方式占用的空间和代码行更少:

var hey=23,hi=3,howdy=4;

它可能是节省空间的理想选择,但是让JavaScript压缩器为您处理它。

#2楼

我唯一但必不可少的逗号用法是在for循环中:

for (var i = 0, n = a.length; i < n; i++) {

var e = a[i];

console.log(e);

}

我去这里查看在JavaScript中是否可以。

即使看到它起作用,仍然存在一个问题,即n是否在函数中是局部的。

这验证n是本地的:

a=[3,5,7,11];

(function l () { for (var i = 0, n = a.length; i < n; i++) {

var e = a[i];

console.log(e);

}}) ();

console.log(typeof n == "undefined" ?

"as expected, n was local" : "oops, n was global");

有一阵子我不确定,是否在语言之间切换。

#3楼

在组织的每个范围中通常使用一个var语句 。 所有“作用域”遵循相似模式的方式使代码更具可读性。 另外,引擎无论如何都将它们“提升”到顶部。 因此,将您的声明放在一起可以模仿实际上会发生的事情。

#4楼

我认为第一种方法(多个vars)是最好的,因为您最终可能会发现(从使用Knockout的应用程序中),这在我看来很难理解:

var categories = ko.observableArray(),

keywordFilter = ko.observableArray(),

omniFilter = ko.observable('').extend({ throttle: 300 }),

filteredCategories = ko.computed(function () {

var underlyingArray = categories();

return ko.utils.arrayFilter(underlyingArray, function (n) {

return n.FilteredSportCount() > 0;

});

}),

favoriteSports = ko.computed(function () {

var sports = ko.observableArray();

ko.utils.arrayForEach(categories(), function (c) {

ko.utils.arrayForEach(c.Sports(), function (a) {

if (a.IsFavorite()) {

sports.push(a);

}

});

});

return sports;

}),

toggleFavorite = function (sport, userId) {

var isFavorite = sport.IsFavorite();

var url = setfavouritesurl;

var data = {

userId: userId,

sportId: sport.Id(),

isFavourite: !isFavorite

};

var callback = function () {

sport.IsFavorite(!isFavorite);

};

jQuery.support.cors = true;

jQuery.ajax({

url: url,

type: "GET",

data: data,

success: callback

});

},

hasfavoriteSports = ko.computed(function () {

var result = false;

ko.utils.arrayForEach(categories(), function (c) {

ko.utils.arrayForEach(c.Sports(), function (a) {

if (a.IsFavorite()) {

result = true;

}

});

});

return result;

});

#5楼

“耦合之上的凝聚力”的概念不仅可以用于对象/模块/功能,还可以更普遍地应用。 它也可以在这种情况下使用:

OP建议的第二个示例将所有变量都耦合到同一条语句中,这使得不可能采用其中的一行并将其移动到其他位置而不会破坏东西(高度耦合)。 他给出的第一个示例使变量分配彼此独立(低耦合)。

“低耦合通常是结构良好的计算机系统和良好设计的标志,当与高凝聚力结合使用时,可以达到较高的可读性和可维护性的总体目标。”

因此,选择第一个。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值