Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8234651
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 7, 20262026-06-07T18:33:16+00:00 2026-06-07T18:33:16+00:00

Is defining JavaScript variables inside if-statements correct? if(a==1){ var b = 1; } else

  • 0

Is defining JavaScript variables inside if-statements correct?

if(a==1){
    var b = 1;
} else {
    var b = 0;
}

I know the code above will work, however, WebMatrix highlights the variables.

Should I define the variables outside the if-statement? Or the first option’s correct? Or it doesn’t really matter?

var b = '';
if(a==1){
    b = 1;
} else {
    b = 0;
}
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-07T18:33:19+00:00Added an answer on June 7, 2026 at 6:33 pm

    As of the official release of ES2017 spec (2017-07-08), EcmaScript does support true block scope now using the let or const keywords.


    Since ECMAscript doesn’t have block scope but function scope, its a very good idea to declare any variable on the top of your function contexts.

    Even though you can make variable and function declarations at any point within a function context, it’s very confusing and brings some weird headaches if you aren’t fully aware of the consequences.

    Headache example:

    var foo = 10;
    
    function myfunc() {
        if (foo > 0) {
            var foo = 0;
            alert('foo was greater than 0');
        } else {
            alert('wut?');
        }
    }
    

    Guess what, we’re getting a ‘wut?’ alert when calling myfunc here. That is because an ECMAscript interpreter will hoist any var statement and function declaration to the top of the context automatically. Basically, foo gets initialized to undefined before the first if statement.

    Further reading: JavaScript Scoping and Hoisting

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Does defining functions inside a loop affect performance? Like var doSomething = function(element){ $(element).whatever();
A bunch of my JavaScript code is in an external file called helpers.js. Inside
I have some working Javascript code that generates an RDF/XML document using variables picked
Javascript allows defining a function as function Name() { content; } and var Name
Reading Crockfords The Elements of JavaScript Style I notice he prefers defining variables like
Consider this (rather pointless) javascript code: function make_closure() { var x = 123, y
I'm just getting started defining and implementing external javaScript libraries and I'm a little
When defining a string in a class using Code First, the default for the
Possible Duplicate: Javascript: var functionName = function() {} vs function functionName() {} Way 1:
I currently have the following javascript code (loosely modeled after how a similar objective

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.