Declaring variables / constants within or outside of a loop?
up vote
1
down vote
favorite
Which strategy would be better?
// Creating the constant OUTSIDE the loop.
const expected = "Some String";
let expectedFound = result.some((element) => {
return element.textContent === expected;
});
// Creating the constant WITHIN the loop.
let expectedFound = result.some((element) => {
const expected = "Some String";
return element.textContent === expected;
});
Usually one says that one should declare variables as close to their actual usage as possible. But I'm not sure concerning the shown situation.
Wouldn't it be better to create the constant only one-time?
Can't it cause (theoretically) a problem a create lots of variables when the array is very large?
javascript arrays algorithm
add a comment |
up vote
1
down vote
favorite
Which strategy would be better?
// Creating the constant OUTSIDE the loop.
const expected = "Some String";
let expectedFound = result.some((element) => {
return element.textContent === expected;
});
// Creating the constant WITHIN the loop.
let expectedFound = result.some((element) => {
const expected = "Some String";
return element.textContent === expected;
});
Usually one says that one should declare variables as close to their actual usage as possible. But I'm not sure concerning the shown situation.
Wouldn't it be better to create the constant only one-time?
Can't it cause (theoretically) a problem a create lots of variables when the array is very large?
javascript arrays algorithm
inside - the variable is local, so no use outeside of it.
– Nina Scholz
Nov 22 at 8:37
For strings it's probably fine, I would recommend not to re-create an array from a literal on every call though.
– Bergi
Nov 22 at 9:05
add a comment |
up vote
1
down vote
favorite
up vote
1
down vote
favorite
Which strategy would be better?
// Creating the constant OUTSIDE the loop.
const expected = "Some String";
let expectedFound = result.some((element) => {
return element.textContent === expected;
});
// Creating the constant WITHIN the loop.
let expectedFound = result.some((element) => {
const expected = "Some String";
return element.textContent === expected;
});
Usually one says that one should declare variables as close to their actual usage as possible. But I'm not sure concerning the shown situation.
Wouldn't it be better to create the constant only one-time?
Can't it cause (theoretically) a problem a create lots of variables when the array is very large?
javascript arrays algorithm
Which strategy would be better?
// Creating the constant OUTSIDE the loop.
const expected = "Some String";
let expectedFound = result.some((element) => {
return element.textContent === expected;
});
// Creating the constant WITHIN the loop.
let expectedFound = result.some((element) => {
const expected = "Some String";
return element.textContent === expected;
});
Usually one says that one should declare variables as close to their actual usage as possible. But I'm not sure concerning the shown situation.
Wouldn't it be better to create the constant only one-time?
Can't it cause (theoretically) a problem a create lots of variables when the array is very large?
// Creating the constant OUTSIDE the loop.
const expected = "Some String";
let expectedFound = result.some((element) => {
return element.textContent === expected;
});
// Creating the constant WITHIN the loop.
let expectedFound = result.some((element) => {
const expected = "Some String";
return element.textContent === expected;
});
// Creating the constant OUTSIDE the loop.
const expected = "Some String";
let expectedFound = result.some((element) => {
return element.textContent === expected;
});
// Creating the constant WITHIN the loop.
let expectedFound = result.some((element) => {
const expected = "Some String";
return element.textContent === expected;
});
javascript arrays algorithm
javascript arrays algorithm
asked Nov 22 at 8:36
michael.zech
1,02911125
1,02911125
inside - the variable is local, so no use outeside of it.
– Nina Scholz
Nov 22 at 8:37
For strings it's probably fine, I would recommend not to re-create an array from a literal on every call though.
– Bergi
Nov 22 at 9:05
add a comment |
inside - the variable is local, so no use outeside of it.
– Nina Scholz
Nov 22 at 8:37
For strings it's probably fine, I would recommend not to re-create an array from a literal on every call though.
– Bergi
Nov 22 at 9:05
inside - the variable is local, so no use outeside of it.
– Nina Scholz
Nov 22 at 8:37
inside - the variable is local, so no use outeside of it.
– Nina Scholz
Nov 22 at 8:37
For strings it's probably fine, I would recommend not to re-create an array from a literal on every call though.
– Bergi
Nov 22 at 9:05
For strings it's probably fine, I would recommend not to re-create an array from a literal on every call though.
– Bergi
Nov 22 at 9:05
add a comment |
2 Answers
2
active
oldest
votes
up vote
1
down vote
accepted
Given your example, creating a variable inside the some
function is not really creating a variable inside a loop as it will be deleted upon exiting the function (so, at the end of each "iteration").
I'll go for the declaration inside the some
function.
add a comment |
up vote
1
down vote
Technically this is not a loop, even though it is similar in structure and functionality. Loops in JavaScript would be for
, for ... in
, for ... of
and while
. Those statements' body is a block. For instance:
const expected = "Some String";
let i = 0, expectedFound = false;
while(i < result.length) {
if(result[i].textContent === expected) {
expectedFound = true;
break;
}
i = i + 1;
}
would have a similar functionality to the some
method.
some
is an Array method that gets passed a callback function. This has various differences but I'm not sure how they play out in this specific scenario. For instance, it would probably be very bad for performance to declare a variable inside of the block, but I'm not sure how it would impact the case of the Array method callback function.
As a rule of thumb, I'd say if you're trying to squeeze performance out of JavaScript, you'd probably be better off with optimized loops than with Array methods. But that's a very important if. Unless we're talking about way over a hundred HTML elements, or of running this code several times per second, I don't think optimizing it should be a priority.
Some reading I found on the matter: https://hackernoon.com/javascript-performance-test-for-vs-for-each-vs-map-reduce-filter-find-32c1113f19d7
add a comment |
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
accepted
Given your example, creating a variable inside the some
function is not really creating a variable inside a loop as it will be deleted upon exiting the function (so, at the end of each "iteration").
I'll go for the declaration inside the some
function.
add a comment |
up vote
1
down vote
accepted
Given your example, creating a variable inside the some
function is not really creating a variable inside a loop as it will be deleted upon exiting the function (so, at the end of each "iteration").
I'll go for the declaration inside the some
function.
add a comment |
up vote
1
down vote
accepted
up vote
1
down vote
accepted
Given your example, creating a variable inside the some
function is not really creating a variable inside a loop as it will be deleted upon exiting the function (so, at the end of each "iteration").
I'll go for the declaration inside the some
function.
Given your example, creating a variable inside the some
function is not really creating a variable inside a loop as it will be deleted upon exiting the function (so, at the end of each "iteration").
I'll go for the declaration inside the some
function.
answered Nov 22 at 8:40
Zim
1,0341717
1,0341717
add a comment |
add a comment |
up vote
1
down vote
Technically this is not a loop, even though it is similar in structure and functionality. Loops in JavaScript would be for
, for ... in
, for ... of
and while
. Those statements' body is a block. For instance:
const expected = "Some String";
let i = 0, expectedFound = false;
while(i < result.length) {
if(result[i].textContent === expected) {
expectedFound = true;
break;
}
i = i + 1;
}
would have a similar functionality to the some
method.
some
is an Array method that gets passed a callback function. This has various differences but I'm not sure how they play out in this specific scenario. For instance, it would probably be very bad for performance to declare a variable inside of the block, but I'm not sure how it would impact the case of the Array method callback function.
As a rule of thumb, I'd say if you're trying to squeeze performance out of JavaScript, you'd probably be better off with optimized loops than with Array methods. But that's a very important if. Unless we're talking about way over a hundred HTML elements, or of running this code several times per second, I don't think optimizing it should be a priority.
Some reading I found on the matter: https://hackernoon.com/javascript-performance-test-for-vs-for-each-vs-map-reduce-filter-find-32c1113f19d7
add a comment |
up vote
1
down vote
Technically this is not a loop, even though it is similar in structure and functionality. Loops in JavaScript would be for
, for ... in
, for ... of
and while
. Those statements' body is a block. For instance:
const expected = "Some String";
let i = 0, expectedFound = false;
while(i < result.length) {
if(result[i].textContent === expected) {
expectedFound = true;
break;
}
i = i + 1;
}
would have a similar functionality to the some
method.
some
is an Array method that gets passed a callback function. This has various differences but I'm not sure how they play out in this specific scenario. For instance, it would probably be very bad for performance to declare a variable inside of the block, but I'm not sure how it would impact the case of the Array method callback function.
As a rule of thumb, I'd say if you're trying to squeeze performance out of JavaScript, you'd probably be better off with optimized loops than with Array methods. But that's a very important if. Unless we're talking about way over a hundred HTML elements, or of running this code several times per second, I don't think optimizing it should be a priority.
Some reading I found on the matter: https://hackernoon.com/javascript-performance-test-for-vs-for-each-vs-map-reduce-filter-find-32c1113f19d7
add a comment |
up vote
1
down vote
up vote
1
down vote
Technically this is not a loop, even though it is similar in structure and functionality. Loops in JavaScript would be for
, for ... in
, for ... of
and while
. Those statements' body is a block. For instance:
const expected = "Some String";
let i = 0, expectedFound = false;
while(i < result.length) {
if(result[i].textContent === expected) {
expectedFound = true;
break;
}
i = i + 1;
}
would have a similar functionality to the some
method.
some
is an Array method that gets passed a callback function. This has various differences but I'm not sure how they play out in this specific scenario. For instance, it would probably be very bad for performance to declare a variable inside of the block, but I'm not sure how it would impact the case of the Array method callback function.
As a rule of thumb, I'd say if you're trying to squeeze performance out of JavaScript, you'd probably be better off with optimized loops than with Array methods. But that's a very important if. Unless we're talking about way over a hundred HTML elements, or of running this code several times per second, I don't think optimizing it should be a priority.
Some reading I found on the matter: https://hackernoon.com/javascript-performance-test-for-vs-for-each-vs-map-reduce-filter-find-32c1113f19d7
Technically this is not a loop, even though it is similar in structure and functionality. Loops in JavaScript would be for
, for ... in
, for ... of
and while
. Those statements' body is a block. For instance:
const expected = "Some String";
let i = 0, expectedFound = false;
while(i < result.length) {
if(result[i].textContent === expected) {
expectedFound = true;
break;
}
i = i + 1;
}
would have a similar functionality to the some
method.
some
is an Array method that gets passed a callback function. This has various differences but I'm not sure how they play out in this specific scenario. For instance, it would probably be very bad for performance to declare a variable inside of the block, but I'm not sure how it would impact the case of the Array method callback function.
As a rule of thumb, I'd say if you're trying to squeeze performance out of JavaScript, you'd probably be better off with optimized loops than with Array methods. But that's a very important if. Unless we're talking about way over a hundred HTML elements, or of running this code several times per second, I don't think optimizing it should be a priority.
Some reading I found on the matter: https://hackernoon.com/javascript-performance-test-for-vs-for-each-vs-map-reduce-filter-find-32c1113f19d7
answered Nov 22 at 16:11
Pablo Barría Urenda
2,02241020
2,02241020
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53426799%2fdeclaring-variables-constants-within-or-outside-of-a-loop%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
inside - the variable is local, so no use outeside of it.
– Nina Scholz
Nov 22 at 8:37
For strings it's probably fine, I would recommend not to re-create an array from a literal on every call though.
– Bergi
Nov 22 at 9:05