Почему следующий фрагмент выдаст ошибку?
"use strict";
(function a() {
console.log(typeof a); // function
console.log(a = 0); // error
})();
Почему этот фрагмент не выдает ошибку?
"use strict";
(function() {
function a() {
console.log(a = 0); // 0
}
return a;
})()();
Почему немедленный возврат функции вызывает ошибку?
"use strict";
(function() {
return function a() {
console.log(a = 0); // error
};
})()();
Являются ли функциональные выражения единственным случаем, когда это происходит?Почему они не могут быть переназначены?