Lets speak you have 5 script files each of castle do different things, however contain few of the exact same variables. I'm at this time doing a food on JS and decided just to keep different parts that the food in different files, part lessons reuse variables, and the just reason I might think of that I obtain this error is the you can't have more than one var x , also if it's in one more file, which provides no sense to me. Therefore if this is no true, then why to be I getting this error: can not redeclare block-scoped variable. My key language is C#, and you have the right to have the same variable name used almost everywhere the place, granted it would certainly be very confusing but you deserve to still perform it. So what specifically does this error mean in mine case?


If friend create worldwide variables the aren't within a role they need to be uniquely called to prevent clashing. Like, friend shouldn't be internationally declaring other innocuous favor "x" or "name" or something. Those should be within features or nature of one object.

You are watching: Cannot redeclare block-scoped variable

Use const and let over var.

That said, you should minimize creating worldwide variables as lot as possible and usage reusable features which return worths that deserve to be accessed throughout her program.

It's difficult to provide much more advice without see the code, though.

It depends on the border of the variables asserted with var, if they are claimed outside that a function then yes, they will have an international scope. Block limit is not role scope and you can accessibility var from exterior a block. The error you're getting can be specific to part linting, or you're in 'strict mode' which is optional, comes automatically with modules (ES6 import), and also serves to prevent overwriting worldwide variables and also failing silently. Otherwise the is possible to re-declare var's and pollute the an international scope, which is component of the problem, they often tend to take it on the value of the last record in i beg your pardon they to be read into memory. If the scripts room for external records then the writer has more than likely accounted because that this, if lock are internal scripts--pointing at her own records -- you may want to look at namespacing. This is exactly how a properly written library favor jQuery stays clear of conflict, everything is easily accessible through an object or function return, so you prefix your methods like $(...) or jquery.

See more: 【Solved】 How To Delete A Snapchat Group In 2 Ways, 【Solved】How To Delete Snapchat Group

With a few exceptions most modern js should be written using const, and let in instances where you'll have to re-declare a change or assign to it.