在JavaScript中,可以像这样声明多个变量:
var variable1 = "Hello, World!";
var variable2 = "Testing...";
var variable3 = 42;
...或者像这样:
var variable1 = "Hello, World!",
variable2 = "Testing...",
variable3 = 42;
一种方法比另一种更好/更快吗?
在JavaScript中,可以像这样声明多个变量:
var variable1 = "Hello, World!";
var variable2 = "Testing...";
var variable3 = 42;
...或者像这样:
var variable1 = "Hello, World!",
variable2 = "Testing...",
variable3 = 42;
一种方法比另一种更好/更快吗?
当前回答
可维护性问题可以很容易地通过一些格式化来解决,比如:
let
my_var1 = 'foo',
my_var2 = 'bar',
my_var3 = 'baz'
;
我严格按照个人喜好使用这种格式。当然,对于单个声明,或者它只是把工作搞砸的情况,我跳过了这种格式。
其他回答
避免使用单语句版本(单var)的另一个原因是调试。如果在任何赋值行中抛出异常,堆栈跟踪只显示这一行。
如果使用逗号语法定义了10个变量,则无法直接知道哪个变量是罪魁祸首。
单个语句版本没有这种歧义。
var variable1 = "Hello, World!";
var variable2 = "Testing...";
var variable3 = 42;
比:
var variable1 = "Hello, World!",
variable2 = "Testing...",
variable3 = 42;
但它们做的事情是一样的。
我认为这是个人喜好的问题。我喜欢用下面的方法做这件事:
var /* Variables */
me = this, that = scope,
temp, tempUri, tempUrl,
videoId = getQueryString()["id"],
host = location.protocol + '//' + location.host,
baseUrl = "localhost",
str = "Visit W3Schools",
n = str.search(/w3schools/i),
x = 5,
y = 6,
z = x + y
/* End Variables */;
可维护性问题可以很容易地通过一些格式化来解决,比如:
let
my_var1 = 'foo',
my_var2 = 'bar',
my_var3 = 'baz'
;
我严格按照个人喜好使用这种格式。当然,对于单个声明,或者它只是把工作搞砸的情况,我跳过了这种格式。
我们可以使用所有的方法,没有必要只选择其中一种。应用不同的方法可以使代码更易于阅读。
我将展示我Vue.js 3项目中的一个真实例子:
示例1
const [store, route] = [useStore(), useRoute()]
const
showAlert = computed(() => store.getters['utils/show']),
userIsLogged = computed(() => store.getters['auth/userIsLogged']),
albumTitle = computed(() => store.getters['albums/title']);
示例2
const
store = useStore(),
username = ref(''),
website = ref(''),
about = ref('');
const
isAppFirstRender = computed(() => store.getters['utils/isAppFirstRender']),
showToast = ref(false);
正如你在上面看到的,我们可以有一小块变量声明。没有必要声明大块。假设我有12个变量,我可以以一种有意义或看起来更容易阅读的方式将它们分组,而不需要冗长:
const
numberOne = 5,
numberTwo = 10,
numberThree = 15;
const
stringOne = 'asd',
stringTwo = 'asd2',
stringThree = 'asd3';
let [one, two, three] = [1,2,3]
当然,每个人都有自己的风格。这是我个人的偏好,混合使用所有方法。
我个人不喜欢冗长。我喜欢有它所需要的而不是更多的代码。