Мы проверим, что на самом деле происходит, когда вы объявляете
var
иlet
один за другим.Case1: используя
var
Теперь откройте окно консоли Chrome, нажав F12 и обновите страницу. Расходуйте каждые 3 функции внутри массива. Вы увидите свойство, называемое
[[Scopes]]
. Разместите это. Вы увидите один объект массива с именем"Global"
, разверните его. Вы найдете свойство'i'
, объявленное в объект, имеющий значение 3.Вывод:
- Когда вы объявляете переменную с помощью
'var'
вне функции, она становится глобальной переменной (вы можете проверить, введяi
илиwindow.i
в окне консоли. return 3).- Объявленная вами анонимная функция не вызовет и не проверит значение внутри функции, если вы не вызываете функции.
- Когда вы вызываете функцию,
console.log("My value: " + i)
принимает значение из его объектаGlobal
и отобразить результат.CASE2: использование let
Теперь замените
'var'
на'let'
]
Сделайте то же самое, перейдите в области. Теперь вы увидите два объекта
"Block"
и"Global"
. Теперь разворачиваем объектBlock
, вы увидите там 'i', и странно, что для каждой функции значение ifi
отличается (0, 1, 2).Заключение:
Когда вы объявляете переменную, используя
'let'
даже вне функции, но внутри цикла, эта переменная будет не будет глобальной переменной, она станет переменной уровняBlock
, которая доступна только для одной и той же функции. Именно поэтому мы получаем значениеi
для каждой функции при вызове функций.Для получения более подробной информации о том, как работает ближе, пройдите через удивительный видеоурок https://youtu.be/71AtaJpJHw0
Как сказал Николас, MariaDB не поддерживается SonarQube - все еще в версии 7.
Решение для запуска SonarQube в сочетании с XAMPP заключается в изменении базы данных от MariaDB до MySQL. Здесь вы найдете шаги для его изменения:
https://gist.github.com/odan/c799417460470c3776ffa8adce57eece
MariaDB не поддерживается SonarQube, см. требования .