З наступним JavaScript
if (someCondition){
var x = ...; //Resharper warns that this is a duplicate declaration
}
else {
var x = ...; //Resharper warns that this is a duplicate declaration
}
Але сфери відрізняються? Чому це має значення? Це виключно для JavaScript?
Я не отримую такого попередження з еквівалентним кодом у C #.
Або - Це помилкове попередження Resharper?
Відповіді:
6 за відповідь № 1За замовчуванням змінні в JavaScript пов'язаніобласть дії, не блокувати область дії. Змінні, визначені всередині блоків, піднімаються до області дії, що є дуже поширеним джерелом помилок. і саме те, що відбувається у вашому випадку.
Змінні можуть бути оголошені в області блоку з let
ключове слово хоча для цього необхідний JavaScript 1.7.